diff --git a/Examples/BatteryStateful.ipynb b/Examples/BatteryStateful.ipynb index 7346a079..d8e3734b 100644 --- a/Examples/BatteryStateful.ipynb +++ b/Examples/BatteryStateful.ipynb @@ -9,7 +9,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "2.2.3\n" + "3.0.2\n" ] } ], @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -88,22 +88,22 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[]" + "[]" ] }, - "execution_count": 9, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABkCUlEQVR4nO29d5glR3k1fqrDTZM3Z+0qoIxAEpJA5CSBDMLGQcYYjLGFMbZxAH+S8Q+D/cmWzc/ZxracAGMTTDAZGWQQRghJK8Qqr+Jq8+7szu7szNzY3fX90f12V3dXh3vnppmp8zx6NNs3VXdXv3XqvIlxzqGgoKCgsLKgDXoACgoKCgr9hzL+CgoKCisQyvgrKCgorEAo46+goKCwAqGMv4KCgsIKhDHoAeTFmjVr+Pbt2wc9DAUFBYUlhXvvvfcY53xt9PiSMf7bt2/Hzp07Bz0MBQUFhSUFxtgzsuNK9lFQUFBYgVDGX0FBQWEFQhl/BQUFhRUIZfwVFBQUViCU8VdQUFBYgVDGX0FBQWEFQhl/BQUFhRUIZfwVhhJPTs/je08cG/QwFBSWLZTxVxhK/P23n8R7P3P/oIehoLBsoYy/wlBivmGhYdmDHoaCwrKFMv4KQ4lq00bTcgY9DAWFZQtl/BWGErWWjaatjL+CQq+gjL/CUKLestGyVX9pBYVeQRl/haFEtWnDdjhsRy0ACgq9gDL+CkOJWtN19raU9KOg0BMo468wlKi1lPFXUOgllPFXGEoEzF/JPgoKvYAy/gpDB865Yv4KCj2GMv4KQ4d6KzD4KtZfQaE3UMZfYehArB+AivVXUOgRlPFXGDpUm5b/t5J9FBR6A2X8FYYOdYH5tyzl8FVQ6AWU8VcYOtSaguavmL+CQk+gjL/C0EHJPgoKvYcy/gpDB9Hhq4y/gkJvoIy/wtCBErwAZfwVFHoFZfwVhg6hUE/l8FVQ6AmU8VcYOlSbKs5fQaHXUMZfYegQDvVUxl9BoRdQxl9h6KA0fwWF3kMZf4WhQ1VF+ygo9BzK+CsMHWpNG4y5fzdVSWcFhZ6ga8afMaYzxu5jjH3Z+/cqxtg3GGOPe/+fEt57I2PsCcbYbsbYVd0ag8LyQK1pY6xoAFDMX0GhV+gm8383gEeEf98A4DbO+VkAbvP+DcbYeQCuA3A+gKsBfJgxpndxHApLHLWWjfGyCUA5fBUUeoWuGH/G2BYA1wD4J+HwtQA+6v39UQBvEI5/knPe4Jw/DeAJAJd1YxwKywO1lo3RogHGFPNXUOgVusX8/wLAbwMQn9T1nPNDAOD9f513fDOAfcL79nvHYmCMXc8Y28kY2zk9Pd2loSoMO2pNG5WCDlPXlOavoNAjLNr4M8Z+BMBRzvm9eT8iOSZ9wjnnt3DOL+WcX7p27dqOx6iwtFBr2agUDBR0TXXyUlDoEYwufMeVAF7PGHstgBKAccbYxwEcYYxt5JwfYoxtBHDUe/9+AFuFz28BcLAL41BYJqg2bUxVCjB1pmQfBYUeYdHMn3N+I+d8C+d8O1xH7v9wzt8M4IsA3uq97a0AvuD9/UUA1zHGioyxHQDOAnD3YsehsHxQb9koe7KPMv4KCr1BN5h/Em4G8GnG2NsB7AXwEwDAOX+IMfZpAA8DsAC8i3NuJ3+NwkpDtWmhYuooGJqq7aOg0CN01fhzzr8N4Nve38cBvCLhfTcBuKmbv62wfFBrusy/oGtoKYfvssCpeguPHDyFy09fPeihKHhQGb4KQ4d6ywlkH+XwXRZ4x8fuxU/d8v1Q3SaFwUIZf4WhgmU7aNoOyqYO01AO3+WCH+47CQBoWMr4c86H4joo468wVKBGLmWT4vyV8V8OsB1XvmuonRz+8rbHcfbvfj1UunwQUMZfYahAsgBp/spYLA9YjnsfGy11P7/6wCEAwIMHZgc6DmX8FYYKIvMvGCrJa7nAI/6oD4HcMWicv2kCAHDvMycGOg5l/BWGCmT8KwUdRWX8lx0U8wfGSm6Q5U5l/Jcenpqex91Pzwx6GMsS1L+3VFBx/ssRw+DoHDSI0Ow+PDfQcfQyyWtZgnOOl//p7QCAPTdfM+DRLD/Um4Lso2r7LDvUFfP3/VjVpjXQcSjm3ybufOr4oIewrFFtKs1/OUMx/4D5LzRUtM+Swp1Pusbf1GXFSRUWC5J5iqamZJ9lCBW9FSyAtZYNxxlcBrsy/m3i+EITAMBV1YGegJK6TF1DQdfRGHAstEJ3sZjY9n+4/Ulsv+Er4Ev84RMXwNoA57cy/m3ihGf8LYer7NMegGr5mJpi/ssFlnAPF8P8/+TW3QCAU7XBauWLhXgNFgao+yvj3yZmPOMPLI7FKMhBhsLQGQqGW9htkFtjhcWjKjwni9nJjXshkkfm6ose0yAh+rGqA9T9lfFvE2Hjr1hptyHKPkXDnZ6K/S9tLDQCdltfBPMfL5sAgKOnGose0yAhMv/qAAvdrWjj7zgcn75nX1sRJSeqTd/Zq5h/9+HLPjpTxn+ZQIxqWUyS13jJNf5HTi115m9jwlvIBhnuuaKN/5cfOITf/uz9+Pvbn8z1fsfhOFFtYdNkGYAy/r0A1YAxdVfzB6DCPZc4ROa/mFDP8bIr+xydW/rMf6riGv8FxfwHg2PeJDpRbWa808Vc3YLtcGyaIOOvjFK3Qczf0BkKem+M/3zDwql6q6vfqZAM0am5mGdGY+6O+2iXNf/5hoVdXsnpfqBpOZisFAAA1YZi/gMB6ctkZLJwfMFdLDZOlgCoIlW9gK/5a71j/v/ns/fj3Z+4r6vfqZAM0am5GOZPO+1ua/7v/Pi9uPZv7+jbTn5YmP+KLu/QEiJL8oB2CJs92Ud1Jeo+WrYDXWPQNBYY/y5r/odO1jA/QMa10iA6OBcT6kkx8d1m/t/3svYbloOSqXf1u2VoWg6mRlzmX1Oa/2BAjNLQ8l2GmQVXKtg4oTT/XsGyOQzNXYxpR9btSpDVpo35ujL+/ULTdp8TXWOLemZIMjq+kE+mzQuSGvtVeqJh2ZjyZB/F/AcEuvB5mSU5rtaMujduMWFrCnK0bO4b/YD5d/cBqbVszCnm33PM1VteH2bXuI4WjUUxf1o4elUWuh/lpi3bgcOBibIJxpTmPzDM1lwmn1e+IWZAzpq6kn26jpbt+DIcGf9u14OpNm3MN6wlXyZg2HHhB/4br/vr7/rkaqzUJePfI9LVj5BiGnvR0FAxdRXtMyiQ8c8ba0vbzknPWaMcvt2H5TgwPeZfNFz9tdsO31rTBueDTbBZKXj86LzvWxsrmV2RfXolz/SD+TdF4180VJz/oBAY//aYPyVoKM2/+2haXDD+3Y/24Zz7D5xy+vYHvvEfdtmnD2SOzr9g6Bgp6CrDd1A41a7s4006Mv61ptL8uw3Lics+3dyONz3NFXDzNhQCPHF0Hm/5l7u7HsVGi/dYyei4tk/LdmA5bjBA03Z6Uu+pH8mEIvMvF4xQAly/saKNf/vM34HG3Btn6kzJPj2AZQfMvxdJXqJhU8w/jJ17ZvCdx6ax5/jCor9L9KdQdE5lEcyfWD8Rr17o8/3oNUC7i6KpoVLQVUnnQcE3/jlvQL1lo2TqYIyhZOhK9ukBmrYThHr2QPYRF3oV7hkGOR9pR7wYiIZ0/4kaCoaGsql1vKuoRYx/t6QfUerpj/EPEkvLpj7QXKEVa/xbtuMbgryJFg3L8XXoUkEZ/17Ash3f6PdC9qkq5p8IkiC6IYeJxnnfTBUFXUOl0LmD05dcvWCLbunz4rn2Q/bxo31MHSVTH2iJmBUb5y8agXYcvhSBUjI1VdunB2iJSV5G95O8lOyTDKrB0426R6Ikuv9EDabOMFJ0HZycczCWL6vedjh+/iP34EVnrQEATPrBFt2ZE+Iupx8O36bI/AdMIFes8Re7C+XdetVbDkqmx/yV7NMTuHH+Ec2/q8w/MPjzqrhbCMT8uyL7CMZ5vmFh3VgRlYIBy+Fo2o5PorJwqtbC7Y9N4/bHpgEIsk8PmH+/Nf+yqS1tzZ8xtpUx9i3G2COMsYcYY+/2jq9ijH2DMfa49/8p4TM3MsaeYIztZoxdtdgxdAJK6R4rGblbqYnMv9yBs+Z7Tx7L9O7f+LkH8M6P39vW9y4VvPVf7sb2G76S+h7LETJ89e4neYn+HcX8w6C6+6e6IPtEgyEKhoaRgvvstNO9KtoqlRIsuzUnxF1OP6N9fM1/KRt/ABaA3+KcnwvgCgDvYoydB+AGALdxzs8CcJv3b3ivXQfgfABXA/gwY6z31ZQioEk1UTZRb+ULHWtYDoodMv+jp+p40z/ehd/69K7U933i7r342oOHl2XrQmJvaRAzfDWNwdRZz6J9VImHMLrJ/KPPRkF3k5qA9vrWRnd9411m/ieq/ZV9xAzfUmGJO3w554c45z/w/p4D8AiAzQCuBfBR720fBfAG7+9rAXySc97gnD8N4AkAly12HO2CjD91B8qzAtdbNkoe8y+2qfnTe3ftP5nr/Y8fnc/93csJLSHUE3CzfFW0T378130H8Ptfehi7D8/hZM4+FQQyyl1x+EbumalrGCm4xr+dxCbaoRMmuxztc+hkzf+7Hxm+ZGfKBR0lQ0fD6k3OQh50NdqHMbYdwHMB3AVgPef8EOAuEADWeW/bDGCf8LH93jHZ913PGNvJGNs5PZ3NGtuB5V3woJ1a9oQUmX/ZbI/50zb40Gwdb/vXuzM/e8+emdzfvZzQsh2/TSYAlEwdtVb3jDRFdk1WTBybX9odoWS47dGj+OKuA7jqL76DF9z8P219NpB9us/8TYOhUtS932mD+UcWkTGviXu3cmwOnKxhrGRAY/3R/Om6lE0dZU8GG1S+UNeMP2NsFMBnAfw65/xU2lslx6RLH+f8Fs75pZzzS9euXduNYfrwmb/XGi7P9qvREkI92zT+4vd/a/c0Hjo4G3uP43BQEMRDB9Mu4fKFZTuhEtsTZQOnat0z/rTIn7l2FAdPLu1esDLM11u+Ea827bYWOF/26YrxDxvSQsfM3/2e33vdeXjbldtx7sZxAN1j6QdP1rB5soyCofWlsBude6VgoOz1DhiU9NMV488YM+Ea/n/nnH/OO3yEMbbRe30jgKPe8f0Atgof3wLgYDfG0Q5oO0myT57Vt2HZKJqdhXpGJ7ysh8B80wIlRg6yycMgEZV9JsomTta6V7+d7sMZa0dxUNjy9wLffPgIXvqhb/W1B/FCww5JmLc+dDj3Z6t+kpd87jkOz10JlYgRRceZupvR6o6xfc1/x5oR/N7rzseI5zfoFks/cLKOzZNlFA2949IT7YAMfdHQAuM/IKdvN6J9GIB/BvAI5/zPhJe+COCt3t9vBfAF4fh1jLEiY2wHgLMA3L3YcbQLCvWkyZSHxdcF5t+upz4qXcg+Oys4n5ZzDkGaAYnKPhNl08/EzsKjh09hOqO5d71lo2ho2LqqjOMLzZ6G6z5+dB57jlf7yuyiEUwHTuRf4OYzmP/L//TbeN5N34wd/6f/fQqfuHtv6BgZ58myG51TMDT/WcvD/H/53+/F9hu+gpYQHQMExf665Zw9eLKGzVNlFA2tb7JPydSgaQwlkn2WqvEHcCWAnwXwcsbYD73/XgvgZgCvYow9DuBV3r/BOX8IwKcBPAzg6wDexTnv+9mLNcaBfEzCzfAl5t+e7BOd8LJMx9k+J5wMClaKg8tywsx/slLAyWo+4/8LH92Jv/mfx1PfU23aqBR0bPJacfaS/RPBsJw+Mv/IvDrSRr/baobDd8/xKo7Nx3dh//crj+DGzz0QOkbPBpU/dx2+unSMMnz1AXfHQs+paUSN/+Kv6XzDwmythU0k+/TB+Lvzz7U5gewzGKK36CQvzvl3IdfxAeAVCZ+5CcBNi/3txcCyg+5CQL7Vt2HZ/ja2aAaeek3LzlaMGv+ZhRaqTcufCEA4xG45M3+X3ct5R8tyQj2V22H+p2qtzBj1hYZ7zQPjX8fpa0dzjrw9tLxFzu5jNEdUUsnb77Zh2WjZHBrrPNTz+HwDq0eLAOLGXwz1bCfOvxlh/tRjtxua/5FT7rXZMF7qG/OvtWzf6C952WepghxJoxQ9kGMyuQ7f8I3LO2Gii8t7/nMXznv/raFjZOTWjBaXdcVQausnfc1x/AcdcI3/XN3KZUAblpO5iC80LYwWDWz2jP+Bk9Wco24fAfPvn/EXZZ+iofkGLgtkkMfLJqw2tH0RP9h70v87KvuYgsbdTpw/nU+0x0PSfZ6ttnDdLXdi30z2fRXLKxcNvS+77VorIJDlguYfGwRWsPGnDN98SSOOn5ZODCR9EkaRR+ckrXXdWLEj5j/MGauiMUmLqrBsHmP+QDYb5dy9P1mL8ULDRqWoY/14CQBwtA1ZJIqvPXAITxydS3zd6jPzt2wnNG9OXzuaW/ahuUMBEO0MedwjUD/cd8I/1mjZYCyIpjN1Bl1jKJvtNTAhQlQw3Dlh6Bp0jSXe5y/efxDff2oGH/72k5nfTfdF0xgK/WL+guxTWg7RPksRYnchIJv5k8HyM3zN9mJ080x4mujrx4ttRx58/r79uOD3bsWT08OZHCY+WNGUfQLn3GvYIWr+rjHKkn5ctpq9GBPzLxgaCoaG+QwWetsjR/CFHx6QvnbD5x7AR7/3TOJn6Tz7ZfwXInLKjjUVzNZauOrPv5NZTZPYOBnrTsYsOtvrXgVcYvu0mxsp6m1F+5C/J5z4pyWSNSIJtCClgc7R0Fj/ZJ9mXPYZlH9vxRp/csKN+g7f9Bvgh65FZJ+8q3ae0M3ZWgu6xrBqpNh2BMB/3edGyz5+JJmJDhKiRptk/Gk3RtU8gYD5n8ww/vTgZjN/yw85HC1md1L62J3P4JbvPCV9rdayU+8T+ZX6JftEF7Ida0YAALuPzGHPsXQZhMjJWNG93u0Yf7rmoYAFr/cFRbTQPXXLOnfC/KPGX36faQczlsf48wEw/5btXxNK8lLMv8c4OlfHO/5tpx9O2Yo5fNNvfFCHOyr75JsweSb8sbkmJsomygUN9TYnIumGeSNj+g1R14ym7AfH3XM2tLjsk8X8Sb/NZP4N2w85dFlo+vtth0sNIeccTStdZiKC0T/mHzb+GybK/t8nMko90HUb8bJw7Yjmn+QDILkNCN8jCosmsqR797RSWDzzL5l6osN3zpNOSc5NA5VV0Blrq4zIiYVmxzvsestGRTl8+4uP3LEHtz50BB+/y92m+w7fnNE+NNmKfm2f9mSfWsvGlqkyPvK252H1SCH2Oucc//v4NC45bQrFDspF07b+4OxwZq3WQ8Zf/pARUw6HenrMP8N4NfMy/6blZ5qOFIxMP4nlOFLmHuw0ku9Ty2f+/Yncip7Lay7YgBee6dbBz8r0pfMhPTq6YCUv2NxPTJwVksPqlsv8id3SeyptNi2f9RL8orJP0nNHCWp52gXQOeoaQ9FMlpKieN3ffBev+NPbc703imrT9q9JSRn//mCVZ3BJlyRDM1I0wHLU9aDJVhJq+wBAPbfs48aXv/TsdTFWBQAPHjiFg7N1vPq89SiZ7W1BOefYe9zd1h/qcdZqpxAf1kTZxzOSYpLXeE6HLz249P+9x6tSrb4qMP88so9l81DvB//3WtmLTf81/+BcGANWjxTw1z/9XADAcUl8vohGlPlHxpxkbEWDGQ5Vdosgljy5hr6vZLZXqI+YfyFS7C+JHNECmLRYiQgZfyN/i8n9XuLcv97xNL77+LFcnyHUPDkMcBcxxvLbkG5jxRh/YjRk/OnBNHXP2dMm8+/E4UsLRksy+amQ20vOXouSocN2eKKRjGJmoenHtx8aWuafR/P3ZB9dovlnyFmB7OOgYdl48Ye+hXd/8oehHUPTctC0HT/ZaCSP8Xe4lPnTfW9aTqLR6LfmL57LSMEAYwwTZRO6xnB8ISvzOZ35iwZKrEJJ193UWUj2IYZLyVlEeAopzloZZJr/RNlMnA8k++R5dmhMusawdaqCw6fqbe24P/ilh/Hmf74rNeIrirpHAgH4vcDb2Ql1EyvG+NNNnZ4n4x9IDHlkFr8DjxFh/jk1/5qw3WtJjAFt/cZLZrCw5JyIFM6nMeDg7HAyf9FANhPi/GWyT9HQUTb1TM3fl2FaNr5y/yH/+K79QQE9ksZE5p8l+9gO98cV+j3vvu8+PIcLPnArHpYU4us3858X/BdkYDSNYdVIATMLGczfm9+0MDqR3Wlo8RZkLLru68ZKmG9Y/i7p6KkG1o0VoXv6Cy0YeaNqiOmfrLWgscBnAACrR5PPh2Qf2W4tCj/UkzGcvWEMnANPdFBK/bZHjma/Ce4OvSokeQHuopaX5HUbK8b4k3E9FmP+Wi6ZhV4nw0zyT+5on1YQ3yvebJqAdKzgjQfIv7DQZ7evHsGhk/WOEnR6jTyyT1PYjYmYrGRn+dL9qVsOfrjvpH98l/A3GXqSNvI4fFu2XPOn8zm+0ITtcOw7UcVHv7cHv/GpH/q/Q5+TLR55sXPPDG747P257ikx/4Kh+b4swJV/ZGUZRNBcK3tzNHrOSQ57uu5rx9zMXtqBHpmrY/14yc9+t3zjr+cy/pTrMVttxbLB0xYzypVp5rjmjsD8n7XezfJ+LEe0nLgLAfJr9i3bDR4gEgi49kdGBvuBFWP8iUUfOeUaR8t2wDxGkadOD70ulnQG2pF9rJjzCwgMYct2YGgMmsYCZ3LOSUUOxa2rKqi17NzlEPqJRg6H7yOHXPZM2bcEt7JnPtmnaTnYtX8Wl+9YhbPWjYaMP22vg2iffMzfljhso9EmtaaN/7hrLz5/3wH80VcfAdAd5v/t3dP45D37chkYOpe1o0W/dj7gMuXjGQ7faLRPtMFIyGEvGO9mxPifrLrF8k5WW1g/nsD8c5wLGfymHc74BtzFbKbajF1Xzrm/KORh07QoGxrDaatHUNA17M5h/KM5BHmNv9/IxRSNP5PKwP3AijH+xNAXmja+fP8hNIXSwXm2ovFQz/Zln4pw0wmWz/yD8ZTaTP4gJrZ1VVCvJguHZ+v4zL37c31/N5BH87/tkaOYqph47rap0PHxHPV9xGu1a99JPHvLBJ61fgxPH1vwj/vM32O3Y0W3f3Maq06UfSL3ZqFpYWrE9U9QGKDVhWgfWrDyZG/Xmm5W7aqRQqhm1OqRIo5nyj7pmn8tYfGm67DOM/6ztZbvV1s3XvLlGlHzb7dufpRprx4tgvN4BNjTxxb888gj+xDz1xiDqWs4fe0IHj+SLfuIuyqgnVwfz/hHmb+SfXqLasvGRNnERVsm8MdffxSW7cD0JmYe5k+TvGSEZZ/c5R1aduimE1oCYyW5I6hfkm9SkJHZtqoCADiUQ/f/mX/6Pt7zn7v6VhJCNB6yLTnnHN/afRQvO3tdSN8F3NZ9szkdvoQLNk+gXAhLDFS/RmT+nKfnYCQ6fCXMn475EWVdiPOn65an5WTNiyG//sWn4+0v3OEfXzVSwEym7GPD1Jk/B6MRafXQ/ZNr/oBr/Kme0HrR+IuyT455Ld5PmewDuIEOTcvxdfqP3fmMP/580T7u/2mMGydKuWohUdAHjaUd6ReQMH8l+/QW9aaNsZKBS05bhdlqy60sSRKOoWcaWnqdmH9B98K08hp/IcTws+98gR/rT86zlu34DKdt5u99Bxn/PLH+T3mMuB8NLIBk2SB43cHJagtnrR+LvZansmeUTW6aLMfKANBCVxGifYB4cpTjcHxx10GP9TtS4x29N9VmkO0bRJQtPtqHMsOzfBM0hnLBwOsu2oSrzt/gH68UsntP1L2ihVRaIxbtk6T5e8/FuvGA+VMAwvrxoj8nL9g8AQBePH228RfZsGmEyQA9O8fmm/ijrz2CV/7Z7fi7bz+Jj925B9c+ZzPWjBZy7S6CaB/332tGi5khsUAw11aNFDBZNvPLPk0KF48wfyX79BZUSrVkaqi1bLSEGjJ5EjwavuYfhGmVzWyHIRAPMbzktCn89tVnAwgeJLHMcalN5m9737FxogxDY7li/YnYtZtJ3CnEc5HJIBSJU5HsjnI5fCPXaqpixlgm/caoEO0DBIvCwZM1HJ2r4z/u3otf+8R9+NQ9+2A5HC3HwVy9hav/4jt48MBs7Hzc7w6M/6m6hYZld4X5065krpHtx6k1Lb9SpAhDY5mVOqlcORnCuPGP6/wA0LTd8W2YcJn/sflmwPzHSrho6yS+/usvwvUvOh2Au6tt2ulNy53Ibium+Xtlo2cWmn4l0f//v3fj7A3j+P1rz4epa/lkHz/O3/3+NWNFHF9oZDrXyRasHy+11dfDD+oQFjMl+/QBNU92KZk6LIf721yAkkZyav6C/rhtVQVPH8vWCKMhhkDQxpEmadOKM/92Hb4FQ8P68VJbsf79qisiLq4y2YeMXFniF5nw2FXaAh1lepOVAopmOBOUGH6lGGX+7ntecPP/4LKbbvMbvMwsNGB7BePufeYEHj08h5u+8kjsfADX8Ipz6Nh8sytx/sQq85AMV/aJ17Qh45Y2DGL+GgvLNNFxABHN3zvnDeMlTJRNPDU9jyNzdRR0zc/OPmfDuB/1Q+QpjZm3IuQgSfY5vtDAZDmoRXTZ9ilUCgYMneWSfei+kFN6zWgRLZvnjix70+XbUM6xqwp+z/2cLhQuNHOOtRdYOca/6RWa8mSb+boVOHxzMH9f9hGM/zkbxvDo4ezogAWKMhGccCQ5BdE+cYdv/lBPio9n2DRZwoE2snz71UJONBiyba6vh0qYf576PlHNf7JsomTofngdAMxR0S+veBlFtkT9HrbACGnctFBQmQQp87dsP1Jpeq4hRPt0zuxqvsM3m/mLpQNEUNhkmuO5btkomlpMo4+OA5Br/kVDwxlrR/Dk9DxO1VqYqJhgkhoLRHDSM6PDvx11+E5VTDDmZi1TBjgAvylPXjZNzF/zZZ9ATkpDw3Lw81fuwM9ecZrbzjUngfLzWDTF/PuKesvNrCPDOle3/Icij+bfsGwYGgtln567cRyHZuuZdWeqEcYJBBOAJnpTlH3adCbTQ21oLvM/mrOBB9D9crJHT9Xx6Xv2xY6Lxlk22ekBksk+ExX3oUxz+kbPw9A13z9Dvz1ft7zQXvf4aILmT4zQ0JhvBGl8lCQY0/xbNmpN24+4OjbXyB3nf3SuniiDBNE+2fepHkkgIhgJBl1EwyvHEI3O8b9bzNOQhHoWTR1nrB3Fk9MLOFW3Eqtq5unBGyUHUeZv6JrXF8AK+axOX+tWMS3kNKhihi/gMn8gTx0kOxT1V8sbmEHzSjgfleTVB1B5Bd/4N1pCa7gcmr/lhFg/4Bp/AHj4UDy7U0SQXCQwfz3K/B0U9PDWOG8OAS0ghu76IbIcaqKm2c12kZbt4LI/vA2//dn7cSISWtiyue/zkE32qiQMjtAJ8wfihmbOM0rESCmsMbptJymuJRR1I+mOygpEr3G1YaFhOb6Dc3q+4Rv9NKP74IFZXHbTbfj0zviCCQQEIE+0D/UnjkKPJFrJ0LAcT/MPx+X742iKso+Y5BXkv5yxbhTTcw0cPFnz+2RE4d+TlHlH84POJZr05x7TYhINlbBOkn2iDF2s7QPkM/5u2RUeZPoX2tf8xWZFhqZkn54jcPjGmX+e8LOGZYe89ADwLC8y5cnpBdlHfFQlso8RCUlrSZl/e6GehqblakQtGrtuav53PHnc/ztqHBuW42ePyjT/WoscvnGjQQx9LiUsVW78w6025xtWKEY7qZ56oLNbgvEPvyf6wJ/wFoUtU57xF2SfNKP7yXv2AgCeSWg7SL+bpwxyrRnUihfhM/8UI1Nv2Sgauq9/xwu7yXduYdnHlV127TuZWFKZEhgPn6onLookK231rqWMWVO+AGUUl0wNm7wS1jIp5XtPHMO57/867noqmKN2RPNfTbLPXLLxD1o/Ulnm/AXhAtlH1PwV8+856l4TBYqkETX/kplcIjb4fJz5U1LPbIbss9CIR7IUoszfkmn+7pg++KWH8OZ/uivx+33ZR3eTVbLC3MTU+Lpl41c/cR8+5RmhxUCsixKd0C2vBWbSljzN4UvXPW1Rk+12oixzrt4KGSWxnrq4GyJ2v9CwfQMhGn9ZHX+6pqNFAyVTc+vcCG0c3/FvO/Hx78e7flFdmBGJ0XZ/1507uZK8WvJEQp3mWprm3woz/7RQT5nmXzA0bPBaYzo8uZkK3ZOf+Ps78RfffEz6niBp0TX+M5KidAXdJTmnai1cetoU/u5nLvGdyqYWn2O3Pz4NANj5zAn/WJT5T1UK0BhSE+JkNb7adfiKzN9Usk/vUYvKPnXLX4FLZtgxKEPDcnzWQigargM5TY44cLKGOz22IbJO0v2IDTSEOP+ioUETcgj+9Y49+O4TyaVjRUaRR0M8sRCMd+9MFV/adRD/57MP5AqPS8MeIZs2ynYpiS0pnb2aovkXIs5xGaTG35TIPiLzF4y/uPU+7PlMxPsqsrvDs/HqjyRzlQu6163KCjH/Wx86gt/9rwdDn2lajh+ZtZDAHv0krxzGP0n2yaX5ezvbJM0/qRObb/x1DatGgz4VScZfdN7e+tBh6XtokSf/iSxBzY2ScXCq3sKFWybwsnPWBa8ZDN9/agbv+c9d/qJO4xd3736Gr3fOulcEL83hG8v0byPaRwzM8MeqZJ/egnMek32atuMnj+RxQjVadoz5A9kJSK/+s9vxr3fsARBx+JLsQ0leViD7UA5B7u2kwCiIEaVhRtip3L57Ovj7sWnZ22P4j7v24rAknFQspRBdSEjWMhKYfz0l2od2SWnnJbLRor+IhqOm5iKOSHpfzYvUIVC99miJYsKRuXpssSFJqmSSM9IOQj0TFi1xByaTdVq24xuGXLJPSy77+Jp/quzj7sy0hIVCvL7R8g5uXXqGVRXR+CfIPsIzFI3iiX4/yT6yhbFgaKi3bMzVLb/pPIGeo8/cu983zFHGLp5jtHMcNZCRIVravez1J8iTyyFGkYljVcy/h2jaDhwOL84/OGVDi8osaaFwceYPZBt/ceKGQj1pK24JDl8h+aNc0LHQtHK1ixMdvqauweHpLE90Ht719Iz/d57fmllo4nc+/wDe8i9xGerpYwv+9Y2yGcpgdmWp5Dj/NOafKvu0HKFPbLgEBz34842w8de8yJ96yw45NMkoi1Fc1VZwzabnGolOvpKho+I5AemhTmL1omNRFscvMso8BeialiON8/dLNqTMibrXZCRJ829ajtCPIpzhKzo/6R4kyz7h7FYZaKHZMlWWvk6fpfskhnsCwXMNuAs+jRMILzi0O9WEkNSpSiG1dwQltcVLu2cTNVmbUlf2Ucy/Z6g33YteNvVIXY1AZgF6w/xFiL8dxF7HHb6AuyB94u59udrFRWUf+r4k0AQmXL5jFYB8fYapWcZjkQJY9ZaNg7M1nLXOdYJHY8ob3s6m4G3Xo6DfLhkpxj/1nBxsGC/h+aevxt+86WIAcYfvXL2F0YhRIs1WtnVPkn2m5xqJEVXUurDatP17m9SFLIv5i7+ZZfzJNyDL8CWmmR3toydq/g3L8aPVxPvQtB0UhHtW1Mn452D+CcafCBH93kVbJ2PvMXXNL8UwETH+Ionyjb9FORfBeTkRzR9ws8nTjH8034d2ql994FDiZwh0/cXnPG9Yai+wIow/sbayEOcPBIwoD/OnhyMK1/gnP5gik9UiyR2APMkr+jnC73z+Aak0YzlueWpNCwpzpYV7Rhn0+vFS7jZ2cwkhh/tP1MA5cOa6Uf98RPjM35Cn3teaFkqmFrpGhDzMv2m5evcnrr8CV3p9a8VFnXPuMf+woSB5TXbvxfsqLoxH5+qJ0WElj2CI14lqzEdB3bUmyiYWmhnGPyPUM0iSizPuPJp/3SM3fqhnVPO3bIwW46G6jUggBCUvJoV6ijvvZNknqAB69/tegU/84uWx9xQMzc+5iJZYFp8jWjSJ2IlzyI/zZ6LsU0glc4HmH+7o997P3O+XJE8Czft4qKcy/j1D3Xf2BIk/QOB0zZNUVU9g/uNlM7W/7OrReLN2IAj3kiV5AfKol/+4a29Ioye0bO5/n4z5/+FXH8H2G77i/zu6MExVzNyNtZMMGVUSpTj3qIFvWm5ddorPjsJ1ViY4CfXsrNCGUB6D4Dt8W250TsvmsXK85LCTM39B9vGM82TF9Ji/PKGqZGqoFPTQnDiVQA6IuW5bVZFeezqWp9ewnyQni/bx4/zj1+/+/Sexa99JP6AhKSegaTn+rkmcW4dma35mLBAsNIkOXz1b9hEbLa0bK0nnRUHX/AU2uqCHZR/3PpANEHf3QYZvmPmfSIneS+roB2TvnFuyUE8V7dNbBDdMzvyj8oAMTUmSF+C2XUxjCpQ4EgU5m+nGu8YxmISyXQYgT/yybMdnEzLn6C3feSp2LoDb5Btw6+C4ESrtMX8x4/aQ10PAN/5OlPlzQfOXMP+E7NSkc4qCFhcR4n09ekrOEsteYa7oruecDWOhRYquzaaJsmv8W47UwJVMN9pHXCSTyMHxhSZMnWHDREku+3g71jWjBVQzNOW0JDkjxeH7+r+5A9f+7R3e2JNDPd3ChGT83dc453jk0Ck/2REIDHpynH9cc48iqaObCPG1kWL4nEXZZ74eZv7ijs1yeEh/B1wiVG0m15GK1vgS52waCXR/TxLq6ZGhQXTfWxnGX9DpRE3ZFKp6AunMP032EXuXRpGka0YLu4klnQH5QwyEMy0J4iSOykky0ASm+RYw/+yIEtH4P3o42OYenK2BMWCz56STxflTqKfMiNcSwhQBl5kZGkvV/C2bhx4qIHhAD5ys4cUf+hYAJGr+0UX1itNXh/5dbbrlPTZMlDA938Bcw4o5Gun7ShHZJ4kcHJ9vYNVIwWX2UtnHPd/Vo8XMhTmtNlKeDF8AmCwXgs5bPM78fc3fu39H5xo4UW3hnA1j/vuKmQ7fYI7XEuab2NI0CeKzEn0uQ8zfW1Tp+olzyOY8JjP6pUQS7lk02scUxpHl+6NFU/QxmDnvTS+wMoy/kJUnMgaKS87D/JNkH3I2JWnhSTfVZ7OSDF9ArvkD8pZxlhN8NlowTgSxi6jxnRop5JZ95gRG+46P3+sz3EMn61gzWvTHHWWZbtVSPVQvR0RSjDohK3PZcpzQQw8EhkYsv0FF3Qjlgqf5R86d2hISak0bBUPD2tEijp5q4GS16csdouzhMv/wtaRrFGWZx+ebWD1STOwlTIvx6pECmpaTmoeRJvsk1eiP4sLNEwLzD79GO19TcNjTdRWZPy3ASZKOGO2TNN/oPid9R/S1aJBASPP3nsuo4xdwZR89UnyOqoQm1ZGi+U+EUcxZyTL+tsThm/a89horwvgHxae0UKXBTV4FxiTN//tPHceHv/0EvrjrII4vNEMTl5BVd4Zu6s0/dmHouB/tYzvgnMccvomyj8z4C6w3TR8P+xfC4W1kBLNAD9Gf/PizcbLawhEv3v/gbA2bJkrBjiaiL9NvGpom1Z6p6moSspLXbI4YiyOn3JNC5nHUL0CFucRFdbXHxkVUm5Zr/MeKODbfwMxCExdsmsCfvPHZ+MqvvUj4Pi22iNHciBqz4wtNrB4tYKQg1/S/8/g0dI35NWvSpB9Zi0BCnqqeBV3DszaMCnH+8ftHsh3dh8e8irbnCMb/Z5+/HYDbFUv6OyLzTzgfX/NPcAhHv0d0Irufi0f7+I3dRYevE2bhAPwy1Cckxn/nnhm89zP3AwiIxcvPWYcPvO48ANnGX+wb7o/V36mvIObPGLuaMbabMfYEY+yGXv4W6XfRbeQmb4Im1c//6/95HB+6dTd+7RP3uZ9PYf7Jxp/jVeetx3WXbQsdF+UZMbqBkKR/yx6Ylh00pin4voT4ZKKHv9EK6+NTFdcAVVsW9p+o4l4hBT6KuXoLJVPzGRItModm69g4UU5so0eavKEnMP+Wlc78M5LXbMeJMWsq5UH5C3/0Yxf6kUAEX/P3rus//OwluPU3XhwzorWm7Togx4twuHvekxUTP/m8rVg/Hhg6CvUMnZtnmKMa9oJXa2ikaKARYfYHT9bwH3ftxZsv34bTVnvGP6WyJ8lWsgU0T7TPORvHvE5ecuZPUT2iw36m2kRB10Khlm++fBue/qPXYmpEHuggGr4kskG74TTNX5y/0fwb0aE632iBc+7r8aKWbztOzPhPebKPrFKv2NydiKCmMfzclTtQKejZso/DQ2NzzyPs++snBmL8GWM6gL8F8BoA5wH4acbYeb36vWhKNoGYfxASGNyA+YaFu5+egSh9PibcfAJpm0myTyvCsgmikWxJHFxlP5RMw/bVFf+4rMiV5YgO3+TKmQHzt0MLzWTFRLmg48EDp/DCP/4W3vh335OeC53nWMmM1WU/PFvHxslSULYiwhzJp6EnpLPXUqJ9gGzZR8biDD34vQ3jJfz0Zdti74mGel5x+mqsGS3GFt9qy0ZBd2UfwmQlbuCKRpz5B+cQPk6VYun9YjLYnmMLcDhw9QUbfYemzC9A8CPaJLvTJM1fXGxoUfSbuUQ1/1CSnpe81rBizlbGmLSOvwxJsg9JKWmaf3iXHH6feI/nGxYWmrbfyEZ0+Nqcx+YDLWQnJYZcvHzR38yT7yMGZhCMHD66XmFQzP8yAE9wzp/inDcBfBLAtb36MTHaR0Qg+3iav8Cqv/fEsZCROm11BW+7cnvsu4l1RBOnCFZEyycwxqBrDJbjSDVOMggvPmstPnjtBcG5JMk+vsPX/b/MUIpdw8RrQZq/iKTJSCUS/I5MloN6y8Z8w8Ka0aI/DhnzN71Qz041/0aa7OM4Mf0WCBb2pGxR6sTkl5eIxG+L4yt6sg+BJAIA+JWXnYmCV+YgadcGyPwgmrSvAMWwrx0LFqI0Wc6f42Z8rvmaf+SekJ/hhtecg/e82m0r6mv+0lBdHQWd+QZ0QehL3Q7IwCadz2ytBcbkFV4JRD4Yiy8SIvGYq1shoyzOIdsJZ/cC8HcsM5LibqT3/+V1z4lFM+Ux/i07Hl0UZPpzHDxZw3cfT67h1W0MyvhvBiAWMN/vHQuBMXY9Y2wnY2zn9HS+ujMyBGVYw6dLYX+yJK99J4K49e2rK7j9vS/Di85aG/vurDBEUZKJglq4Bb09BTbjGcLRohGOkJDKPnGHrywyhpif2DIScCtKRh+0JFZ2yquMGTB/28+InKyYidFGFOqpe/1ko3BZZMrDnin7cOiSHRZdO6oQGUWJMnybNjQWLJ5RA07XbN1YIPFMlgPm/56rzsZj//c17mcTjFZ0/G5dHB0V77zFaCtqAr92tJjYaF5EPuYf/v157/emKqb/nqCwW3zsBUNDpWiEKo1GfSN5sOv3Xo3ffNWz0LTlTuy9M1VsmignJoEBgdEsGXpspyFe57m6FSoMJzJ/x+GI8rKRgo6ioUmN/6maBVNneP1Fm2Kvjedh/o4TauTinkdQ4+uav/pfvPmfk6v3dhvt37nuQLYvjFkEzvktAG4BgEsvvbRjj4hYdjY0CJZc2I3+/vOfuijGDkQElSOTjH+4Zo8IKj0bxDXHNf+RqPFPCvVMifMXx0JjLfiRGxyMsRjrrjXtWNo84DYnHy8FY2pajp8Us6pS8CezGO3DOfeT2AyNxR54zjkWMph/MVP2iUduAIEvhjKPo6DCXAtNC2UzMCSyMgmmrmHNWGDwReYvIuk8pH4QQ/MzZ0XjcWze1dPHy4bvQ0hz+KYyf10u+/gd5oTFStbMhe5fwdAwUjT8rNmFDo0/EK6oOhYxiHtnqn5FzySQVh6VX4Dw3J9vWH4mNRAmRW6IdNwmrBktShu6zNVbGC/J21NOlE3sS+jJQLAleQViaXdyMkcj/3qFQRn//QC2Cv/eAuBgr36sEanHceNrzgmxfNPThsVj9JmLt02laphZ2aeyCeb/rhfB4jt8E4y/uGhJo30c0eGbrCGSQSbn67ff+zK/cUXUYCXF/M/VW9gyWQ75Saic8WSlINUw6fyKhlvVU1Y3xnZ4OvPPMv48/mABgU776vPWSz9HRv5ktRVy1MoiuwqGhkrBwKhnAJOMf1KORnQ3Rpr/+ZsmYGgMX33gMC45bRUAl/mvGS2AMeYnV6U6fCU9pglJiVtkxEUDTguouFCIiU2jRd3fgSw0LKnfIw/ERjpRCWXvTBUvOzu+yxZB8zzKpIHwdZ6vW34m9frxYkg2dTiH7NFcM1rwPyMiWhVWxETZxIM5ZB9ZS0ogXCxvvm4lOsy7iUHJPvcAOIsxtoMxVgBwHYAv9urHopr/O15yBt79yrNC7yka4VaOdcv2Ndw0ZDJ/K3kVd1mw6PCNJ3mNFvWQIZLVoLEEp3K0SYwVYjqe5m87KJoaNk+W/aJZUakiSfaZr7tsrxBi/u6knxoxA+YvGA/RoW1oLNZUJOh0lsz8s5rU2HY8YUfEWevHpMdpkZ2JhPKmlZZe5+n+SYYvSfO3naBnhO1wWI4rha0fL+G1F27Ep+7Z5y/ux+YbWOP9Di3MaUl4jZT5avoJhXLNX1x0yRiKSV503YuG5oWlBlVSO2X+wTmF51mtaWN6ruFHOCWBnhXZbk9crA7N1nwJZ+NEOZzklbBbXD1aDO0WCNFmQCI6dfhGS7u7v5OdbNkNDMT4c84tAL8C4FYAjwD4NOf8oV79XtNy42vTQsdKph5j/jIWFUVRDxyfMrQcebQPEBi0wOEbj/aJyj5NO1473LKDqAVTMMoLDSskFRADb0hKIcRknwSJodq0Q7uRph3IPlOVQixzmcYCuMbT0JjE8UgN7rvP/P/xLZfiE794ReLnyN9zeLYekrlkBpzOec2Y69hOWqzS5CuxnAcQEJLLdqzCfMPyQxKPzTf80iBJhlJEo+X4oa1RkC8kifmLETuyhLCmIJuOhmQfOxbtkxdJ57TXk06SfDQEMv6y9Z7m+bkbx3GqbmH3kTkUdA2rRwqxaB8ZYVg94jL/o3N13Cm0Jj1VtzBels/R0aJbHiXa+zg0rjTZR/RTNPJVCV4sBhbnzzn/Kuf8WZzzMzjnN/Xyt8jYpbH4ktccQvxMWtIRIdotKgrZVo9g6i7z9zV/SXmHkaIR03Gj0k9LzPD1HvSnphdw/u/dio96jWSAiOxjyI0/GRyZb8HV5t3wPj8rumX7MdGuwzce7SMm7Rh63OFLIYwjadEdORy+sgf5Veetx/PPWC35hAvSu/edqIaK8MnuPV3jtWNFTFbk2q/7ncFnV0W2782I8af7EA06mJ5r+GGlI75DOF3zl/WbAITaPtHrLpF96BKS8W9YNv7Rqw1V0F3Nn+5XlpM+DbTTjJKMgyfdQIvNkxmav3fdZPf8su1TAICrL9gAALj76RmsGimgZOrhOH9J9A3gMf/5Jj5yxx68/aP3gHOOP/rqI7j3mROxDPHoeNJLkMRVgEAmDe7Nsmb+/QZpq2komnpIuqEORVlIc7A63jY/utUjUKSJLK6ZmKcb7ZPOysVQT9qJfO6+AwAQav9IW0vZ9aDJR6UKZIam3nLAuWsww8y/hUrBXRDEEFaC6NCWRfsE8sMiMnwlrCoPKHSz2rSxWjDUab2E3/7CHXjfNecmfueONaO4/sWn419/7nl+di6B7nW0OqQYdOA4HMcXmr5z2e2UlS77UA9eGQLNP3z9/EVXMOCMMWgsMP7/esce/AMZf8/hu9Cw3BLZzW7IPuFzormdtaMo+Mw/fs/ffMVpuOOGl/tROXtn3IWdmr4TbM6ln18zWkDTdnB4to5q08Y9e0741yCrZlFaiRhZ/amALAW7cWX8u4g0VkQoRpl/TtmHauhLyyk4cS1fxOrRAo7PN6QZvmdvGMMrz12Pi7dNxcYRY/52EEJGqe0UKig6JQPmb8eYP7FAMoa1VnwCkrGoFPTQondioelnRgKBL4MghtoaWryef1VihKIoGFr6g+XIH+QsrB8P4vZXCwlcsntP1+zibVP40eduSfxOXWP4ndeei5eds843vHQfyPhEI9BE5j/ftGA73L+m5PTNZP4SJzWAxNwLX/aJ7LgMTfOTvKpCeClFJrVsjtlaC5yn37M0kMQWLXedlJMTBc1z2XrPGMPmyTI2TpT8RWbVSMH168VCPWXM373u+71dyMe//4z/WnK1UqoPlnyPWg4PtXAEwpn+tDDML3fZp5/Iw/xLpo56jPnn0zOTJAm/w1YC8187WsT0fEPq8B0rmfint16KDROlmD4fNf6Ww2MOX4LYjNrXm20ndm6U4fkzl58GQM78/eJhBbdAHmNetE+1iamR4KGI1uwPGldr0sJuvuafFeqZwvydDpm/GLcvyj7SpjIdhN/RuZKcRlEd0dLAIvOnYmQiqy5nVF1t5GL+0VBPN7ch+jlNC0I9RdJUNHTf2B/xSmR3avwn/UzacFRNUk5OFJTJnubkZ4zhPKHukIz5S43/iHuvDni5Pt97Mtg9R6vCEsTQ5yTYjuNX8RTHBITlYcX8uwhZo48oXFYQ1fzzXZ5iREskyIy6iDWjxVBLwKRFQtNYyPBQqV+CLYR6RifzcSFeOdw7IDymM9eNYs/N1+AFZ672fiN+PqJMwFjQLH56vhFm/npE9hFkLV1naCXIPmkSQkF3709SZUsrgcVloVzQ/WS/1RnhdWZCvkYaaGGj745q/kUZ8yctXjA0IxlVV+upzN9zwkscvnQvRegskOaiDdcD4+8W9Bvt0OFL5bCjLROTcnKioGcla7f3gdefDwA4e/1YjPnbCXOGdiWUZT0baswjZ+V5ZJ+WRPYJdmWOMv69gCvhpE/SGPPP8RlCEvMPGqvLL/PasSLqLcfvGJXGLMWHMFp7vmUHRc2iD7LI/C0x2ifh4aKSwDJDQ0aaGHrB0PDfDx/BgwdOherfG1qY+YsObVOLx/lXfTkpXfY5Vbdw5vu+Jn096UHOg3VeYTZifIlj0Ns3dHQdifk3Y5q/7v0/YP5zUuaf3s0rTaY0/GifiOafEKqpCbszcZdZ0INSFGT805z0aaB2l9ECatGcnCTQ/JWFaoq4YPMEvnfDy/Geq86OM/+EUE8KtqB7RbWh6DMy+PcvpRWszOFL/3bH5X53v4z/oJK8+oo8zts487dzJ1oUTbkeHTSlSJB9xsLby7SsvoKhAR6Jj7JymSOJIDb+9uP8U4y/oWso6FpCW8GwkS4aOp4+toD140X8wot2+O9zo5jEJC+B+XuGhXPuL1TzOR2+BPGzhKRQzzxYP17EE0fnE1tuysaQF3TNyJEeDfWUav4Nak8YPJ4TZSM1jrxu2dLmMoA8cQuAF7kl7/lLcf5isTmR+R/1fEqdOnwBebP0vJq/7/DNcc+DAo66m1/h+ciSIsRkzv7XXrgR68eL+KnnbY29Jo43TfOXdQ4TkzIp0msuoVVqt7EimH9SC0YRRS/Nn1DP6fAFsjX/pAxf3/h7LRDT6pcXDS2UEh/6HUnNECA+iVtCqGfaubm1/ePso9oMM/+gaFol9LBGwzkDQxc0mBdfrzYtMJacHAWEWXfUcek4HFxSzz8v1o/lZP4dGH/aLZEz+dBsDX/89Uf9/ItA9pFp/oExXz1SxHFJvRlCGvPXtHAED2E+oTCbLjB/cbdBGb6AwPwXYfwnymasemYjR04OEDwr7dzyqDTjcDnzl4X5Vgo63vGSMxIT+/LLPuF7JAZO0C5LMf8uomHJ+62KMPVw5mk7Dt8k5k9ZgkmsnKQAim1OlX1MHVMVoDZrS6J9eMyRBLiVSB89HJShthwHjpBZmoSkrl7RqBya8NG+uFSzKBgfMX/dj3awHQ56xhYaNkYKce059J2C3t6IRCtRZEqnzJ9kn1UZzH8qoZxDGmihpl3Fb316FxaaQniv7/ANmD+RBnEntGqkIC02Rqhb6c1w3CY6cUe7LFFNY6LxD+YB1fMHgE/dsw+GxhKbtuTBZMWMdcyi4IyszHo/w7eNey5mpY8U3TlYMpNlHxHZ5DHb4WvZ8Z4TNKZq0/bvz3yKvNdNrAjm37Cy9XtT00L1Ndpx+MqY/849M/jRD3/Pf10GYv4HZ7ON/2jR8I1UXPaRM/9ookxLSChLM/7lgi4tIubH4wuaPxAPfzOEVn+A0JbPYCEHV/C96Y1cgHBIYHShJUPVKfP/qedtxQdff36mhHH6WnlxuDygXQXJKNFKriLzp76zYkLR6tECTlZbibkOWaHJuqSgXlKSlsj8xQgjV/YhecPBu152pj8nO8FkuSCN9slDuqglaTvhvbSzpLltJ4QHyzKlsxI+aWeaxvzdnJ/wd9M9OyVIPf2SfVYI87el1Q5FmEbYYOVZMAhFIx7ts+d4UOEvyeG7qlIAY24XLBpDEj70E8+GZXP8yF9/N8YMWgmJZBQtwpjbrN2yue+QSltoKgVd2iieDEE5YvyjKe+mroXj/AXN35CUGkjSnkUc8hZIINn4d8r8d6wZiSVjyXB6jvckYe1YeFcx4zHewOEbMH9aLEXmT9FCJ6rNUHgqod7KYv7x5Lqk2jy6xvzdlDjXTD3cqOadLz0j8ffyIEnzzyOv0am0c8vH/X7bLQDlxFBP8nuJzuEsIpiV6Q94mfiShkMaC5MbJft0EXk0fyMiVTQSGrbLUDQ1VBfCN0x0zqWFcJYM3ZcG0hy+52wY941c1PhbthNrDwcE2vza0SKOzjVgOQ4adlhrlqFiyhOKAs3fnTa0gMSZvxYK56QFp2TqoVID8w0Ldz55XNoRKoqtU0Gtl2hDGzJqnSR5tYNNGSUH0jAaKQtA1VQD2ScwHgsNt7y0SBpWeTuHmQW58c/KZdEl7TPdOk3y+v8B8w87fMdKJp67bRI/fdm2XOVP0jBRcTX/rz94GDMLTbzp8m25kyvJId2O7DNeCieWyZq5EEpm2PhnEcF80T5yklY09BDzTwvp7SZWhPHPk+Tllg8IHo665WTuFvzP6nHN/1TI+KdH8ZDxz2KuuubW3SeH4P8+Po0DJ2pwuPwhICO9dsw1/i2bxwqKyVAu6NI2dtWmjZKpBTXfvQdwPGL8zYjEIJYy8Ns82hzv/+qD+NwPDqBs6rjUq8eShF97xVmwHI6/v/3JWLKXs0jmnxedhJKevX4Mu4/MxQgA1YuneUm5HBTtE00mohpBM5JSw5xzd463qfnPJ8k+LOzwfcmz1uK9V53t+6g+/8tXpp5zXkyWC2haDv7ljqdxfL7hGv8czyoAXLRlEtc8eyN+45XPyv17tEOlZzMtMbBc0HFKYOBZtiCI9mnP4Qt4YczemEaFZjm9xsow/q1s560pJCZZXuXM/A5fPab5iyt5mvGniZ5VeI4wKhTWuuGzD+AAOYuFB2bn774ShsbwL999GkDgWLaECqKpmr+ph2QWgusgDKYMhaZFnemGHi7vEPRQ1kNdpQ55UU61lu2PMQkFQ8NlO6bw97fH2RUZtU7j/HuJz/7yCzBft2JdtCiBSLwPbuCAG+c/FjHK5DCWRfxEs4VliFZTbXlzYVQSp6+HQj0trBop4ILNE6nn2Qmo5MX+mWrQYzdnoEXB0PC3b7q4rd/zmb/3bFqSBu6EaORZXubfTA31jMs+9Fky/qtGCn5pll5jZRj/3LIP91kUkK3zEWTMX5R9kqJ9gIBRZIW2EUZLhq8J0vf+3Au247UXbvTfQ4aUKicSi7Qc7rOZNOdmKSF6qdq0URFkAmL00fhyU9cwb8UdtG5tn0DzF1lnVnat+3k5uwokgO7GL1z3vK345D378Jlfen6sOmdejBbd5i9HvdBIwklf8xeMv6FnM3+Z8RdktSREC+qlldHWhdpM1UZ6h7XFgDJpj8w1/N9otLHjbhfjfj0hj/mnhAdHr2WWLQjamqbLPrI5WjA0316sGilg70x1UUmLebHso33+7c49aFhOZkiaWGOjkUMaEVE0NRw4WcMffvUR/5jowElzrtJreWPIxXrqx+YaeNuV2/GB158vdVjSA0VZuy3b8VnFuvFkpl00dKl2WW1aqJiBsaDrFA31jBZ2q7fcGjKGxkIlbMXSAFlhlu645E61gPlnfkVbuPmNz8aem6/BpdtXLSrSB0je/Ylzo+Qx//m6FcucnfKCA45L2gtGK4TKYOgslOEbdPGSh3qKzH8xsfxpICZuO9yvFJpX9ukEtEMlAuRm+MrfGw33zPJv5Ivzl/f2KHrZ60BAgvoh/Sxr49+0HPz7XXvxynPX4c1XnJb6XkOQI+qt7IdJBD3At3hlX4Gw5p/K/L0FJm/PztGigfm6hRMLTSw00+USCocrF3RozGUefmPwsRTjb2rSqIUo8w9kH4nDVxI5xRgLMX+Rda7JSLACBObfkmv+3Wb+3cRoycCZ60Zx5Zmr/RDcaOctqj0jY/66xjBZNjFTTZZ9sph/K8T84128xPdSJmy95XRcwiELolzocPc83NIjvdlpULQSPZu2pMomIS77ZCgHXvZ6WrRPUnn3gqGHZB+gP07fZS37FAwNn7r++SgIjsYk+KVVLYH55y7sFi89kFvz92Wf/Mb/v588guf+wTcApBvxcIilhpbj4OicKz+kZbNGu5oR5iOaP030iVioZ1hiaLSCUFsxzl/sepRVWgGQb60/ducevP8LbhO4PvS87himruGbv/kSAMCPfvgOHDhZQzEyYGo2MleXh2BOVgqYrcUZYR6yEtX8gy5eSaGeQTx8p926shCVC+cbljtXUub0on+zZPrPpmv85e+LSl25GjtFCscBwJd2HcQ3Hj6Cv7zuOYn9vItG4IynTPD5hgV51+nuYVkbf8ANJ8sDShdvOU7u+iIE8SGmDmChaJ8URtq27BNhhGtTmH+QXKV5ETgc0/UGVo0UUn+P+hlHa+jM1y2/FAIQGOEY84/U7G9YDkretRTj/MUyFaszHL40LgBo2sHn/vhrj/p/DzPzF0FyR5RcuD0lHJyqtUItJQkTZTNWCA0IWGJaeYxotA/JColx/o7jN4xPK7i3GETlwmrDzhWWvajfLBtBqGdCnD8QN/a5WrpKyo6/9zO7UG85eNPl2wDIfXvis+jLPo3eM/+l8bT0AabASAMHWr7LI4tpD8X5pyRvUXhebodv5GFNk31ed9EmjBUN/OSlW2HorkEW2wMmjsnQ4PB4DZ2FiBzR9DV/WYZvONqHDJ0ulBcWM5VzOXwpkUZgV2LhsV6HenYLxHijvqCSqWO+YWGuYYVKZBNkSVFAUEIizTEb1fzJ4SuTdCjUk763XOiVBi9h/m0kV3YCkfk7KQ2AogtpHuZfkDD/cza4/QT+4fYn3e+VXG9xYaFikgtK8+8fpLJPzkl4eDaI5Khbbs35sFHKDvVsR/YRkSb7nLZ6BA988CrsWDPi1S7imJ5vpH4GCCY67YCIJc5FMkJvfM053vvDYzc1LRTaKFZVpUXWsp0I8+882ofQ6ySvboG07ujuq2ho0g5shKlKvBwCEJT7kNWkIUSjfdIqqeoag+Pkr7DZKQpCsULAnWe9jPYB3N2TL/ukVIKNXst8zD+e6U/Pzrd2TwMAnrU+Hjggfvc679lMK9/dLSjj74HkCFH2ySvFHBHC+BotJ5aenRrtYyxO9sljNIFAipmeyzb+YuTCl3YdxHnvvxWPHZnDQsMKOene8ZIzsOfma2L5CbE4f6E3gthVirTqyYqZS1pIivYJznFpGH+qJCmG5wLuonvYm0sy4+/KPsnMP834RzuoLWRo/pbT/g64E4ilQVzmnz+zvrPfMwPZx5aXdAY6Y/6uXBomJsciSXnnCp3Fgs8F301ReAt9cPgq4++h4IcgOrkbShDe/7rz/L/rlh2ru54mRbfL/KPb9LyfM3SGz/7gAPafqPnsInFMfm15G3/7rScAAE9Nz8PJ2bO1YIQL3dWFB9oQSjrXWjaet30K//mO5+c6h6wU+mFM8pLh+hefjj9547Px3qvODh0vGkGjG5nmP1kxMVe3fH/KfMPCyWozKLthJt+bKPP/5iNHsHas6LdTFKF5Dt/AkdxbGYZQbdq5uu4t7vcM329iJ5R0BjrU/CP5MS3bwcxCEy951loArkQrk2npfMum7l+PqmL+/YNYdiBP5UsR52wYxz++5VIArmHac3wBAPD+HzkPb7tye2pCFT1YefvDUgjlm6/Yhgc/eFWuzwDuIkGG5dXnp8cRiMyfSkITW8rTvKNgaGjYDjj3kuZajhDtQ5q/g1rTxrrxEs5aP5brHCicju5PtFbNUjH+W1dV8JPP2xrbMYkGR6r5e4b6Y3c+A9vhuOGz9+M5v/8NfPdxV1JIZ/6BE/7Rw6fwv48fw9tfuEMaBaczVw/Pkzm8WIgRP/N1K3dVz06xcbKMU3ULp+qt1EQq8VqK+SlpKBrhTP/jHut/ybPWwtAYzt0on+d0fUdLhk/u+lHWedlH++QFOVybYgmENmIHaWtct2zs9gzmj128ObH5AyFg/vkMF0lKqyqFjroo/dorzsIlp63KGJM78anDGBCUI8jqi0Cfb1oOdtz4Vbz07LVoWI7/kPvlHWyOestJjVCRQcymjma7LhXjnwTxfspkH5pLv//lh7F2rIjHj8wDAP7rhwcBZGv+tFjS/HzluesS3usShXZ9X51AnE8nPEbey8Vm+2q3QOAzx6puM5cM2acslCTJgjs3A7mG/Ddbpsp418vOlEo+gFAavWj4eTT9iPNXzN+DL/tY+erfRCEmID16eA4bxkuZht/9XHuyz9UXbADgRvK0A8oM3ZSj+QYtZKIvY7qNtn3iw/vt3dNhhy/tsDzZp13jXzSDdpvRGihL3fiLWcSTZXm0D8HUGdZEykSnXUsx94J06KRIMV2DZ/zd69xTzV+QfU5ISl50G9u9TPh79sygZScb//XjRRgaw4aJUlvVfUXZZ3refX7WjhXxG696lv/sxj4nMH9T11AwNBXt008YglFqtCn7AALzb9l49PAczt6QT8rwjWLO3zp34zj23HxNbqmEQOnjG3IYf1rIxK0nMf88mn/0YaHcB0Bg/l6oZxpbTfpuesCm55eX8T9zXWD8ZTsskUxwHpa9ioaWev6m0HDo+HwDhsZiIboEw4vWqrd6z/zJ4asxYMbrfJdWnXSxOG2Va/x//8sPA0iWV1593gZ86z0vxYbxUu7S1dEkrzzZ9EBgZ0jyGSnoKtqnn5DJPkU9/ySkB2ShaeHJo/M4J0Hfi8KP9ulTemqemvSkz4sTsB3mH100xRrtRiTUs92a8G44nXt/ok6x5WT8ZVEo4rWvWzbEQqFZi2jZ1FH3mPyx+QZWjxYSI12ovLkf6tlD5n/h5glcuHkCo0UDMwse8+/hsxC9TluEPhEiNI1h66oKiqaWP9M/Eup5aLYOxrKNP9kOGttI0VBJXv2EKTp8O5B9iPk/cmgOTdvBObmZf3sO38UiD/OnbNw5wbhS85F8mn/4XBYaVizahxaWtmUfQxPyD8IPSFLkxlJBVuXQbasquGiLW1q50XJCuRSVjOtYKuioNYn5N1PLe7iZxnYQ6tlD5v9Tz9uGL/3qCzFSNPye171cbER8/8ZX4K3PT6/5tX31CLavztfBrRiJctt/oob1Y6XMnVOUAI4UjL7IPsrh68EUQz3bjPMHAiO+a99JAMDZ6+XOndjnqLZPShZwN5G01RdBY5qvdyb7RK/bXMPyt/IU7TPnG//2HvSiGTxgtUhHr6XO/LNQMDR85G2X4bl/8A3UWzbEBOxSHubvXa9jC83U/BC3xpDTdo2rxWCkaPi7y14VkiN88zdfjHrLyUWEfk8I485CIRLnv/9EFZuncuy0I7k+laLuF97rJZTx90CyDzW50DXWljEh5n///pPQNYYz1uVjC7Ta53X49gMkxYh66FyOPgCEgkQuizJ/Wlja1fzFaJ/6MjT+d/3OK/xyyjLQvalbTqhcQ1aCW9nUUW26ZZOPzzdS+xET86fr249d6UhBx74Zt+91pUeF5AhnrsvvL8vTYIkgSpIAcOBkDRdvS+9QBwRG3+wz81/UXWWMfYgx9ihj7H7G2OcZY5PCazcyxp5gjO1mjF0lHL+EMfaA99pfsXaubg8RMH/eUXGpQPO3ccbakbZ6AQC9f8A+98svwMfffnmu99K5R51Ops5yF7hKOkZGihaTjjR/T46oRWSfpZLhm4b14yVsnEhmi2Kim1hDzLKTFwzAXWSpbPKx+UZqLaWix/zrXjP1JN9ANzFSNHzD2atCcr2GWArdst1OdVtyMH9a633Hb1FfEpr/NwBcwDl/NoDHANwIAIyx8wBcB+B8AFcD+DBjjJ7yvwNwPYCzvP+uXuQYugJR9mna7WcZigavnUicduv5d4qLt03hhWetyfVeOpdomYqRopGLCcmuXbS8w3ynmr/wgEVln34YqUHD7/Vr2aGS2NFqklHQIjuz0ES95WBNWj8H4f73MuxShGjwR3rUOazXKHqOcsfhODLXgOXwRIeyiJZfet2dvyMFoy9JXou6s5zz/+ac0yi/D2CL9/e1AD7JOW9wzp8G8ASAyxhjGwGMc87v5G6nkY8BeMNixtAt+GUHPNmnXSZODyUAbBzP1hIJS0X2ASAtBSCDzGCUIn0L5rziWp2EelIIYrVphxaa5cD884BCCi3H8St5RrOdo6BFdr+XuJfmXKb7P1tr9TTMU4TYUUzWWnIpgOZi03b8BMnNOaLryPjTs1Ep6kuuk9fPA/ia9/dmAPuE1/Z7xzZ7f0ePDxx04Zue7NNJfRGKvsgK7RLhyz59Ylh5YGgMGguMPzUTz1NzH8jH/KkRebSsbxYqBcNn/PWWHaqBsxw0/zwoemGbDg/KQETLb0dBiwQl+0UbxIughfpUrdU/5i+MJytyaVghJnoSuYk2rJFB7LsBuDtsKux2QtKzuVvIvLOMsW8yxh6U/Het8J73AbAA/DsdknwVTzme9NvXM8Z2MsZ2Tk9PZw11URAdvo0OZB/AbUUHtGn8fdlneAwXYwxFQ/edshTembeJucgW6VqQwSZ2fvSUa4Ty1PEXUTJ1P8Sz1rJDEsFKMf4l03XIWo7jZ/228so+XgmFtOggun+ztVZPs3tFiIEEvXb49gpi1dl2SsRQ1jGFh48UDDQtB/913wE89w++4UcQdhuZ+yvO+SvTXmeMvRXAjwB4Bed+mMJ+AFuFt20BcNA7vkVyPOm3bwFwCwBceuml6dRmkQji/DuTfUS0Y/zbLencL5RMzWf+42UTB2fruQ21eC6vuWADPnbnMyC7zJgbRUVhfXkXFEKlEIQs1prhJLGVYvwpy9lxgutnZRh/ktdmvNIOab4Wkfn3y/lKOxNDkE+XGsSCiO0Uh7zmwo047VdGcMFmNzycrsV3vIJ9dz19HBdtnez6eBcb7XM1gP8D4PWc86rw0hcBXMcYKzLGdsB17N7NOT8EYI4xdoUX5fMWAF9YzBi6BWKkzQ6jfUS0x/yHT/MHwmFr7TP/4Fx+7OIt+MjbnofrLtvmH6PKnEVDS+0+JUOlEIQs1lrh8hBLPckrL0qmjobP/PPdk3KE+addd5H59yvhiph/uaC3FV45TKBcllCORA47whjDhVsm/POma0H3KNoToFtY7LL+NwCKAL7hDfz7nPNf4pw/xBj7NICH4cpB7+KcU2jGOwF8BEAZro/ga7FvHQAYY27xK2L+izH+ObVxINiODxvbkW33OzH+JVPDS88OV480NYYmXMmn3QddDFmsRwrDpXVMW04g5m87rqH4xRftyCz0VxaifcR/y0D3frbW6ml2r4iKX9dmaTp7geAZDsk+HdgR8n9QZ7pjkQKG3cKirjTn/MyU124CcJPk+E4AFyzmd3sFU9f8UM/FaJ2yWuxJ2L66gt+95ly88tz0Gvv9hqjbNz1nYt6uYeJnZdEia8eKWDhexaqc3yeCjFataaPatLFhPHCorRDbj5KXret4bQjfd012Fir14fWNfw7m7/D+lVqgdpJLVe8HhB7TliOEb7Z//ciPRVVOowUMu4UV8rjkg6Exv6DVYph4O/HmjDH8wotOx4SkfvsgIT70LY/FrEqpByNCZDuybS8VMMv7fSJoK1xr2THZZ6Uwfyq/YNlObj9HqQPmD/S2vLKIkWXA/MUEvMUwfyqhQpE+vZJ9VsbTkhNuNcPOZZ88Rc+WCsTtPrGYThy+sgzeM7y69VMdLHhlzzhUmzbqzbDss0Jsv19+weH5ndwkq5zIwfzFe9ZuBnanGBE0/6UKP9RzkbIPLYC0UEf7VnQLy8dadQG+7NNhK7k7bng57Ix466UCYv4ag18KOE9RN8A1SIbXM1bGHMn4d9KtSJR9VjLzr3tJXnmNP103yq9I0/KLGTu3XoBkn6Wa3QsE16rpRfsw1lniIUlf1Nns2HwD9Q7Kn2dhZTwtOWHozC/p3MmKPV4yMdVm6OKwIijEpuFDP34RLtuxKledkujnZcaDegrMVlux17IQk31E5r80g0TaBpW1dpz8zF8MQyyZ6fV6RCPTrwxfIhZLNbsXiIR6euHinUQuUbQPLdR/+hMXdW+QApbule4BTF1zm7l0mOS1nFAUopCuOH01Pv2O57f1+YKhoW450sbXFM/8c1dub3tcxPQXGhbqLSdkqJZqiGC7CDH/nOesacxLDsvumzwQ5u9JHUs1uxcQZR831LNTG0IEp2k5WDNaxBsv2ZLxic6gjL8AU3NrxTcWmeS1HBAtwdz+53WUDHni0WSlgD03X9PR99KDQXpou3kCywFFs33NH6Ca/k5m4pa4oMoayfcCvuyzlJm/H+1j+3ksnUC8P71cfFe2hYtgx5oR/GDvCdSadt8Yz7CCDECnOnrB0HrSizUWr74Sjb+QgNeu8QeyG7KLxCdPM5JuoFIwoLF8/SKGFdFon04JpK4x/171MtR2ZVu4CH78ki04Nt+E5XAl+/it5Tpl/lpPFlC/TAHVqFnCMkGnEI13W8bfu3ZZzF/0B2xK6S3QTegaw4d/5mL89OXbst88pCDZh/qAm4uY/7QT6qXPZWVbuAheevZan3ko2cdj/h1eh0KPjD8ZrkMn3ZK5edpSLjeIBqEd47/eKzXeTg+FfjF/ALj6go25SiAPKwpdYv5AMM+V7NMnGLrmOyNXOvMP6u93xvxd49872ecZr+XfuvH2E8WWOkLMvw0nN0VrZfX7FbGhjd4UKx0U4kya/2JsCPk+lPHvIy7YNAGgsxj05YTFdhgrGlpPygHrGkPB0LD3uGv8144W8Ysv2rGijJR4T9ph/psn3a5S7cSed7rzW6mgukuLrQ9G+Q698JsRlq53pUe4cItr/PfOVDPeubyx2GifNzxnc6zBerdQKeh+DPTasSLed815uerbLBcUOjX+HvOf6WGDkJUOt/+xx/wXI/v0gfkr4x/B1RdswHXP24pfeskZgx7KQEGO1E6Zv1jCuduomDpOooXxkrEiHb6dM3/X+FPmaBpufM05yyZhsZ8oGm64eNNyFlXuZdR3+Crj3zcUDR03v/HZgx7GwOH3GRjCkgnEitrpm7CcIO7G2jH+pPnP5CgU9o4VTn46RUGQfRZjuAOHr4r2Uegz/Dj/IWovSbhwsyvNrVTj36nss2HC9Ytcsn2q62NScFE0NNSaXXD4Fnof56+Yv4IUw9phDABecMZqfP6+Azix0H5toOWAkOzTRrSPqWv4xm+8GBuXcDjlsGPtWBHT841Fh3qO9CHkfPiebIWhQHGRoZ69xJVnrgEAtJz0vrXLFeI9aXdndtb6sSWdRTvs2DxZxoETtcVH+5DDVzF/hX5jseUdeolNk2X8fz9yHl7oLQIrDWLmqLZCitktFWyerODoXANjRWNRxp9qVvVS81fGX0EKX/YZ0mS3t79wx6CHMDCITvh2NH+F3oPCaecaFgp654Z7RGX4KgwKfpKXMi5DB9PoLNpHoffYNBkkG6oMX4UliaC8g5oiw4ZOHb4KvccWL4sa6LwoIhB08+plhq96shWkCAq7KeMybAiFeqr7M1SgcFpgkcxfyT4Kg4Ji/sMLxfyHFwVD85PpFif79D7DVz3ZClIEhd2UcRk2iLuxThqEK/QWF29zk+gYOr83Z68fwy+95Ay8+Ky13RpWDMr4K0ghNnBXGC6IzD+tEbvCYHDJaa7xf+TwqY6/w9A13NDj+krqyVaQQtMY3nT5NrzorJUZSz/MEDV/xfyHD6+7aBO2rirjLc/fPuihpELF+Ssk4g9/9MJBD0FBAlGKU8x/+LBqpID//e2XD3oYmVDMX0FhiUGM7VcOX4VOoYy/gsISA2MqyUth8VDGX0FhCUMZf4VOoYy/gsIShnL4KnSKrhh/xth7GGOcMbZGOHYjY+wJxthuxthVwvFLGGMPeK/9FWNKtFRQ6BTK4avQKRZt/BljWwG8CsBe4dh5AK4DcD6AqwF8mDFGRSr+DsD1AM7y/rt6sWNQUFipUMxfoVN0g/n/OYDfBsCFY9cC+CTnvME5fxrAEwAuY4xtBDDOOb+Tc84BfAzAG7owBgWFFQlVz1+hUyzK+DPGXg/gAOd8V+SlzQD2Cf/e7x3b7P0dPZ70/dczxnYyxnZOT08vZqgKCssSyuGr0Ckyk7wYY98EsEHy0vsA/A6AV8s+JjnGU45LwTm/BcAtAHDppZcmvk9BYaVCyT4KnSLT+HPOXyk7zhi7EMAOALs8n+0WAD9gjF0Gl9FvFd6+BcBB7/gWyXEFBYUOoBy+Cp2iY9mHc/4A53wd53w753w7XMN+Mef8MIAvAriOMVZkjO2A69i9m3N+CMAcY+wKL8rnLQC+sPjTUFBYmVDMX6FT9KS2D+f8IcbYpwE8DMAC8C7Oue29/E4AHwFQBvA17z8FBYUOoJi/QqfomvH32L/475sA3CR5304AF3TrdxUUVjIU81foFCrDV0FhCUOFeip0CmX8FRSWMBTzV+gUyvgrKCxhqDh/hU6hjL+CwhKGKo2l0CmU8VdQUFBYgVDGX0FBQWEFQhl/BQUFhRUI1cBdQWEJ4su/+kL8YO+JQQ9DYQlDGX8FhSWICzZP4ILNE4MehsIShpJ9FBQUFFYglPFXUFBQWIFQxl9BQUFhBUIZfwUFBYUVCGX8FRQUFFYglPFXUFBQWIFQxl9BQUFhBUIZfwUFBYUVCMY5H/QYcoExNg3gmQ4/vgbAsS4Op1dYKuMEls5Y1Ti7j6Uy1qUyTqC3Yz2Nc742enDJGP/FgDG2k3N+6aDHkYWlMk5g6YxVjbP7WCpjXSrjBAYzViX7KCgoKKxAKOOvoKCgsAKxUoz/LYMeQE4slXECS2esapzdx1IZ61IZJzCAsa4IzV9BQUFBIYyVwvwVFBQUFAQo46+goKCwArGsjT9j7GrG2G7G2BOMsRsGPZ4oGGN7GGMPMMZ+yBjb6R1bxRj7BmPsce//UwMY178wxo4yxh4UjiWOizF2o3eNdzPGrhqCsX6AMXbAu64/ZIy9dtBjZYxtZYx9izH2CGPsIcbYu73jQ3VdU8Y5VNeUMVZijN3NGNvljfOD3vGhup4ZYx3sNeWcL8v/AOgAngRwOoACgF0Azhv0uCJj3ANgTeTYnwC4wfv7BgB/PIBxvRjAxQAezBoXgPO8a1sEsMO75vqAx/oBAO+RvHdgYwWwEcDF3t9jAB7zxjNU1zVlnEN1TQEwAKPe3yaAuwBcMWzXM2OsA72my5n5XwbgCc75U5zzJoBPArh2wGPKg2sBfNT7+6MA3tDvAXDOvwNgJnI4aVzXAvgk57zBOX8awBNwr31fkDDWJAxsrJzzQ5zzH3h/zwF4BMBmDNl1TRlnEgY1Ts45n/f+aXr/cQzZ9cwYaxL6MtblbPw3A9gn/Hs/0ifxIMAB/Ddj7F7G2PXesfWc80OA+yACWDew0YWRNK5hvc6/whi735OFaOs/FGNljG0H8Fy4DHBor2tknMCQXVPGmM4Y+yGAowC+wTkf2uuZMFZggNd0ORt/Jjk2bHGtV3LOLwbwGgDvYoy9eNAD6gDDeJ3/DsAZAJ4D4BCAP/WOD3ysjLFRAJ8F8Ouc81Npb5Uc69tYJeMcumvKObc5588BsAXAZYyxC1LePtDrmTDWgV7T5Wz89wPYKvx7C4CDAxqLFJzzg97/jwL4PNyt3RHG2EYA8P5/dHAjDCFpXEN3nTnnR7yHzQHwjwi2zAMdK2PMhGtQ/51z/jnv8NBdV9k4h/WaemM7CeDbAK7GEF5PEeJYB31Nl7PxvwfAWYyxHYyxAoDrAHxxwGPywRgbYYyN0d8AXg3gQbhjfKv3trcC+MJgRhhD0ri+COA6xliRMbYDwFkA7h7A+HzQw+/hR+FeV2CAY2WMMQD/DOARzvmfCS8N1XVNGuewXVPG2FrG2KT3dxnAKwE8iiG7nmljHfg17Ye3e1D/AXgt3GiFJwG8b9DjiYztdLge/V0AHqLxAVgN4DYAj3v/XzWAsX0C7ja0BZeFvD1tXADe513j3QBeMwRj/TcADwC433uQNg56rABeCHfrfj+AH3r/vXbYrmvKOIfqmgJ4NoD7vPE8COD93vGhup4ZYx3oNVXlHRQUFBRWIJaz7KOgoKCgkABl/BUUFBRWIJTxV1BQUFiBUMZfQUFBYQVCGX8FBQWFFQhl/BUUFBRWIJTxV1BQUFiB+H9UOpnT8Js7xAAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAD4CAYAAAAEhuazAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABc90lEQVR4nO2dd5wcV5Xvf7dSh+mekUYzkqzsIOcs2RiwwWAbm2g/4D3Mewve9Aw8ExaWx2LYtwu7mDX7ll3CI6zJaQm7JBtswAEHvE4ytnCQlSzZkpVmRtLM9Mx0d4X7/qg61beqq3N1T/f0/X4++mimOt2prjr33N859xzGOYdEIpFI+gtlvgcgkUgkks4jjb9EIpH0IdL4SyQSSR8ijb9EIpH0IdL4SyQSSR+izfcA6mVkZISvW7duvochkUgkPcWjjz46zjkfDR/vGeO/bt06bNq0ab6HIZFIJD0FY+y5qONS9pFIJJI+RBp/iUQi6UOk8ZdIJJI+RBp/iUQi6UOk8ZdIJJI+RBp/iUQi6UOk8ZdIJJI+RBp/iUTS9cwULPzk93shS9DHR2zGnzGmMsYeY4z9wvt9mDF2O2Nsu/f/YuG51zPGdjDGtjLGLo9rDBKJZGFyw61b8IEfbcbDuw7P91AWDHF6/u8DsEX4/cMA7uScrwdwp/c7GGOnArgawGkArgDwRcaYGuM4JBLJAmMiVwAAHJ4pzvNIFg6xGH/G2CoArwXwVeHwlQC+5f38LQBXCcd/wDkvcM53AdgB4Pw4xiGRSBYmKd31D/OWPc8jWTjE5fl/BsCHADjCsWWc8/0A4P2/1Du+EsAe4Xl7vWNlMMauZYxtYoxtGhsbi2moEomk10h6xn+u6NR4pqReWjb+jLHXATjEOX+03pdEHIuM4nDOb+Kcb+ScbxwdLStKJ5FI+gQy/nlTev5xEUdVz5cCeANj7DUAkgAGGWPfBXCQMXYM53w/Y+wYAIe85+8FsFp4/SoA+2IYh0QiWaAkdNdPnZPGPzZa9vw559dzzldxztfBDeTexTn/IwA3A7jGe9o1AH7u/XwzgKsZYwnG2LEA1gN4uNVxSCSShUtScz3/giVln7hoZ57/jQAuY4xtB3CZ9zs4508B+BGApwH8CsB1nHM5nXeYJ1+YxP/52ZMyb1rSEyjMVYsL0vOPjViNP+f8bs7567yfJzjnl3DO13v/HxaedwPn/HjO+Umc89viHIOkPu565hC+8+BzODprzvdQJJKaWI7r8c8UrXkeycJB7vDtUyhwdnROGn9J92Pa7go1l5fGPy6k8e9T8qbrSR2dlZtmJN2P7Xn+uYI0/nEhjX+fQptlpOcv6QXI85+Wnn9sSOPfp5DsMyk1f0kPYDuu8Z8pWtg9PoMDk/l5HlHvI41/n1KQso+kh6CAby5v4eJ/uhuX/cs98zyi3kca/z5FBnwlvQTJPrsnZgGU5B/b4Tg0JVcBzSCNf5/ia/5S9pH0ACT7EMMDBgDgH27dgvM/eaeUL5tAGv8+hbJ9JqXnL+kBTDu4s3fdkjQA4Me/3wtA5v83gzT+fYov+0jNX9ID2A7Hicsy+PG7XgxNYf5KYMqTf8KTg6Q20vj3KVLzl/QSps2hKgo2rB3GK05e6tf4oUlA1vxpHGn8+xRf9mmzVso5x/ceek6W4pW0hOU40FW3vo+hKSiGPH3KXpPUjzT+fUqhQ5u8fvP0QXz0p0/in2/f1tbPkSxsbIdDU1zjn1AVFEOefkF2+GoYafz7FLG8g+O0r7LnlDe5HJG9VyUtYNoONMU1V7qqwLSdgM4vZZ/Gkca/T8mbNgxNgcOBXBszJRyvZDSV5JVImsGyOTRR9rEcTORKDsXdWw/h7q2HKr1cEoE0/n2IZTuwHI7lg0kA7dX9yTlT5JUmaQHL4VCVoPE/NF3a3PWV+3bhj7/xCABgrmjj5s37ZK+KGshbsg/Je0tkMv7t3OhFnj+Tnr+kBdyAryj7cByOkBLzpo1v/OcuvPf7j+GWP+zv9DB7Cmn8+xDKvFk25Bn/ufbp8eR9qdL4S1rAsksBX8r2icog+8+d434M675tYx0dY68RRwN3SYw8vucoAODs1Yva9hl00ywfTABor+dPediKtP2SFrCckuaf0FyfNaq8859+cxMWpXUAwGPevSSJRnr+XcZVX7gfV33h/rZ+BmX6LCPZp0a6p+NwTOWbmyBIYpKyj6QVLCHbx1ArG3+g5MzsOJQrSwmVlJDGvwWu+My9+Op9z873MBrG9/yHKOBbXfb51K+ewZkf+01TXZTmiu5nSdsvaQXR86fNXmHjr0YsL2dk56+KSOPfJJxzPHNgGp/45Zb5HkrD0IaYbFJH2lBryj4/2rQHQMmQNwJVD5W1VyStENT8VQDAdGg1+p5XnoATlmYCx2Tbx8pI498kvbyphGSfpKZgUUqvKfvQ3+o0kTqX9yYMufxunl8/dQBfvHvHfA9jXnE9f0/2qaD5DxgahlJ64Jis9lkZGfBtktkmvOBadCovmWSfpK5iKG3U9PzJ+DdjwOe8z+rlyXK+ecd3HgUA/K+LT5jnkcwfluP4nr8v+xRMKAygDeopQy0z/jnZ87ci0vNvknZoie2YUKIgI254nv9kjVRPythpRrqZM5ufOCRB+nnTkiv7uOaKsn2m5iwkddV/Tlow/ku8Zi9S9qmMNP5N0o6LqlMXqukZc11lWJTW6071pFZ6jZDvQ89/y/6pprOjqtGMc7BQJoxwVU/A1fwrGX9KZpgpyIJvlZDGv0lm26AlihpmO29a22uGrSmKa/zrrOzZjOdPxr9fPP/ZooVXf/Y+fOCHj8f+3o1WYN285yiOvf5WPLL7cOxj6TSWXSrvoAupnrQKAICUoPkf4xn/XEH2q6iENP5NkhM8iqLlgHNe1me0UcTshXZ6yuTBqwrDUMrA5KxZ12QTrqFeD5Qh1C8ld5/aNwXAzTGPm0Yro97+9EEAwP07xsseyxUs3PXMwbasUOKGcx4M+Hr/T+Uryz7LfePfH9ddM/SV8eecx1a+WNT8J+dMfOKXW3D8R25tyWMXZZ92NqewfdlHweK0jqLt+IHZalhNyD5zfeb5b/Z2la5flo3tPZO6e5s22m+ZDPtgUi977D827cGffnMT3vD537U+wDZD16tY3gFwnSXR8xeN/zFDKQAyz78afWX8//XeZ3HcR26NRVsPGv8ivva7XQCAXeMzTb+nmJmQb6OnbHkevKowfyt8Pbp/K7KPuJJ5yT/ciX+5fRs27zm6YDRp4g97JwEA2UR8iXRZz3gfabDfMvVSyCbLxzLhrSJ2T8w2tX+jk1hk/EOaf8FykAh4/pp/PQ+ldCQ0RQZ8q9BXxv/7Dz8PADg4la/xzNqIxv/orInFVE/k+aNNv6eo+bfT8yfZR1dd2QeobPzFlVIzsk8+lO3jOBz7JvP47J3bceUX7scdWxZWDfatB6YBoK6VVL2Q8W60BhM1N4/anyFea7snmndYOgEZfz1U3gFARc8/m9SQTWrS+FehZePPGFvNGPstY2wLY+wpxtj7vOPDjLHbGWPbvf8XC6+5njG2gzG2lTF2eatjqJektzOw1dzfe7eN4cv3lMo6TM6ZyHg36OMtFJOaLnTG8/eX0apS8vwrpHuKjV5Mz4BvPTCNdR/+JZ729O1qhPP8p0M3Y3iXZq9D0kysxj9Bxr85zz9KcgsY/xZWq51AXKkCJc8fQEDzTxkqTlqexctOHMW5axZjIKFJ2acKcXj+FoC/5JyfAuACANcxxk4F8GEAd3LO1wO40/sd3mNXAzgNwBUAvsgYUyPfOWaShvsxhxu8iW7ZvM/XcgHg7V9/GAeE1cPYdAGHpgoAgCdemGx6fAHZp40Nz00/26ck+1Rq6CKOiVYM/3rvTgDAw7sman5WKeDrfuZUSLdOGwtrnyEZmzilFDJ6jXv+7vOjkgem8yZWLXZ18V1d7vmLK1UgaPwDnr+uIpvU8e0/PR+rh9MYMDS5yasKLRt/zvl+zvnvvZ+nAWwBsBLAlQC+5T3tWwCu8n6+EsAPOOcFzvkuADsAnN/qOOoh6V0ojWRNcM7xnu8/hisrVNpctTiFj93ylH+DjU0Xmh5fp7J9bLsUQFtEsk+FYKK4bCbN/8GdrtEfzSarfg7n3F/BFL3/w0HLhZQFxDn3ywnE6fnTSu1Io8Z/zh1L1LWUK1hYPpjEaDbR9Z4//f2q0MOXED1/TQ2as4yUfaoSq+bPGFsH4BwADwFYxjnfD7gTBICl3tNWAtgjvGyvdyzq/a5ljG1ijG0aG2u9MUOKPP8GjP9Yrrox/8J/P9fXtVcMJRt67zDihdpez7+U6lkp4Ms5x9l/9xv882+2+ceKXtPsfZPuqqdWALhgOSC5uZLnv1A2f33voedwwT/c6ZcaiNPzt72TWGsntsjf3fK0vzqN9vwtZJMa1gynsefwXDwDbRN0nYUDvoDr0NEKJkwmIY1/NWIz/oyxDIAfA/gLznk1MTiquG9kygfn/CbO+UbO+cbR0dGWx0ipYo1kTTw7Vu4ViaVjzxKarpy6YhBzpt30jR/Q/NsY8HVrozMwxpDUVSQ0pUzzL1gOjs6a+NVTB/xjpu0EtOJaxp8eTxsqira7F6Lc818Yxv+jP30SB6dKjkKcnj+l2NZ7rjjn+Pr9u/zfozV/E9mkjoGEFutY24HthGQfMeCrK7jl3RfiN+9/WdnrBpNaw+mx/UQsxp8xpsM1/N/jnP/EO3yQMXaM9/gxACitYy+A1cLLVwHYF8c4akEX+eGZ+i8I0fjTRUiZPcTFJ7kT06nHDAIAJmaak36m8xbS3uqknXKILdRGBzwPKaSNhj10wA34iiuSWuUe6PFMQgPn7u90M972vosALJz8f7GU/IChxrpyo2ydeo0/nWPaHxB1LeUKFjJJDQlN6foJ2HIo4Fue7ZPUVCweMHBixL6KY0cyeOHoXFt24y8E4sj2YQC+BmAL5/yfhYduBnCN9/M1AH4uHL+aMZZgjB0LYD2Ah1sdRz1QbZRGNP9nx0o7Ncc9CSjslX/xf5yLr759I05fOQSgMVlJJJc3MZJJRH5GnJhCkSzA1VDDG7jEnZ+UbWLaPGAo6Kas/Dnu4xnv9UXb8Q3T0qz7dy4UzX9AyOsfySZilX0o1bHeiZLiTv/45rOwZMCIfN2UJ/sYmuLHY7oVP+DrzbCKwvxVfEKvbMJOWp4F58C2g/Hvtl4IxOH5vxTA2wC8kjH2uPfvNQBuBHAZY2w7gMu838E5fwrAjwA8DeBXAK7jnHfk6qMbspFsHzEHev9kHo7DkStYWLU4hX992wYAbsbKpacuw5KMGzydaNL4T+ctjHjv0U7N33acgOeva6xMwpmcK3lLZ69ZBABlTbNref5kdCgNtmDamJwzoSoMi9OGd6y7vc56yYjGP5PAnGnHtoHNaaCq6p7Ds7h9i1vWYTSTiPTsC5aNouUgm+gNz19MTSaofAOlb0dx8nJ3NbD1QO2U5H6k5Tw7zvnvEK3jA8AlFV5zA4AbWv3sRiHZpxHPf2rOwmBSw1TewoHJORw/OgAAuObF63D5acsDzx0eSDT8/iK5goVjR9z3b2ttH6fc8zedyp7/mauGcN/2cVg2Dxn/6mMkj3XAKHn+U3kTQykdisJgqN1veOqF5DoAGMkYcLj79yaqGKd6acTzf83n7vPjMqPZhOfZB19HEl82qSOhqV3/HfgBX0FbO23FIPYemavq+a8ZTiOlq3jG23gnCdJXO3xJ9mnEM58zbRw76raG+8PeSXzs5qcBlLxZkWGvhnjzso+FkSzJPu0t7yDeSLqi+Bu4CFHzf8VJS6Eq7upAlKOsOgO+JIkULQeT3mQKwPM6u1tyqJeBkOcPAPliPEa1Ec9fDMi7nr9aZvynfePvef5dHvAt5fmXzNVpK1yJ9dBU5fiaojAcNzrQ9ams88XC2mFTA2opeHimCNN2AhdTJWaLFk5ansXhmRS+ePdO/3gmonbLYFKDprCmZB/H4cgVLb8JRTtvSCsU8I2Sfag0wCMfvRSj2QR01X2OaKzrlX2oPEHBcjV/2oKf0Beq5+8a/znTxhDKi6o1SiOev6Yw//mDKVfTD0+wlP6YSWg98R2Qk6EL1+x564YBlOf2hxlM6jLdswJ94/lzzjFr2n6mzniN/H0ibzpI6Rr+64bVgeNRnj9jDIsHDBzONW78Z4oWOHcv1nbrsGIzbMD1qMJ1e8JFweg5oudfb6rnQMI1jEXLwdSciUEy/pq6YDR/cafyaLZk/OOAsn2KdVRVXSnkvDPGkNAivts8fbc6Et73KsYn9h6ZxTNdpJMX/Tz/krl68fFL8LVrNuK9l1RvbTmQUGVDlwr0jfEv2g5sh2PtEldTr7ZcFJkzbaQNFW85bzXWL834xwcjjD/gLrXrnVhEaCmeSWpI6vGmCoaxhdroQIVsnzm3XC7toDRUpczzt2qUxy6lerrGvmDZbiVGTwePMky9ilg8jYL2caUYljz/2teEuAcFcDdEhSfYnCj76Kqfhktc+Knf4orP3NfqsGODrk0j5OVfcsqymuVB0oYmUz0r0DfGnzJ91i1JAwAO1VmGYa5oI2WoWDaYxO0feLl/nAxamGWDCRycbrxqKC1Nsx3IvTbDmr8aJfuUPHT3OQpMiwcMSS0ZopTqSXsXHFh2sB1ft+vN9SKePzJI13770Vgkh1IP5dqePxn2j73+VAClCfbQdB57Ds8CKNf8ge5OuaVzq2uV8koqM5BQMdPlJavni/4x/p6RWUOev2egd47l8I7vbIr0tB2HY860A/VDiCjZBwCWDSYDOz3rher6ZBJaZIZGnJRp/p5XLzIlBGaBUlwgH/D8XaMSFVCzHe4bFIqPFCwnEGvphTTDehENM5UReeHoXCwtFMn4h1dJzxyYKqsiO1Ow8OcXHos/fumxAEqe/9/+/Clc92+/B1C61rKexAhEZ5d1ywY8X/ZRGjdXaUPDrNT8I+mbgC9l+qwZToOx0kaYv/zRZjy+5yiefGESG70gEkE3hBjMI6ICvgCwdDCJ8VzBzaipI6BMiN6Y0W7NPyLVM6wnR3n+Yp5/JqHBsjluvO0ZbD0wjV++96LA6y/59N3YPeF6mmK2j2mXJh43zXBheGVi5lNKLDamNO6thiHjbztuq1CSdkia2X3ja/3HZ4p2IPMoobmlNXaNz/jXfCDgq5VWZWEOzxT9fPr5pJLsUw8DhopZ04bjcCgxfBcLif7x/D3jn01qGE4bvuxzwCtSFtZKgdJqQbyZP3DZiQAqG/9lgwlwDozXEfTNm7bvcZdkn/bnXovSC+DeVOG0zak5M9D+jzR/CvhmEhqKtlv/J6rUMBl+IJjtY9qOfxP3QqZJvZAu/6ZzVwVWVbMxSA62w8G8t6wWZKeKomLnLpLW9k/mcXi2CNvhfuNzQ1P8PPko+a3ZMiVxEy7s1ghpr7RIO/tj9Cp9Y/zpJkwbKkazCT/gS5UPo7bjU6BINP7vvWQ9dt/42sjJAgCWeWWO6+kW9iffeASf+IW7b8AP+JLs08ZAqCV4j0C05p8rWIEJzpWGXClHVRiSuhsknivaZd57uE+y6PmLklMiIhjZqxQtB5edugyf/m9nYf3SLF575jEA4tmvYXPuX4PVrgvqJRD0/BUcmTUxOWeCc9ebny5Y/gRBE3HU+7ZSoTZOfM2/Sc8fgMz4iaCPjH/JkA8PGGXlcaM8NLpxkxGyTyWWDdZv/F84OocXjrrldAMZGGp7661YoT0OmmfYRYq2EyidSxNE3nSQ1BQ/TpC37DIDHi6DHZB9LFHzVxdMto/lcH81pSoMf/3aUwC07vk7DgfnJQekmg6fExwIwtCUQMrpeK7glXMu7bUAgmU2BuoofZ4rWPjG/bvKJvp2YLYg+1DwvdmMn28/sBsfu/mppl7b7fSN8aeCYkMp3Q+oiuVeZyM8tDlvh2Y6IuBbiWWDbo73wTqyiYqWU2pv6AXhBozOBHzVGnn+psUD0pBv7L0AOE0YedMpW1JTVglRCvjaMJ1wwHf+PbJDU3n8Wihd3Qzurmmxq5T7N7da4I1q+VPSgWk7cByOiYh0YlHLJ8LlJSZyRa+csxZ4XJTfKNZTTbr81G3P4OO3PI3fbm1/D+ZWZB/aY9Ks5/83P38K3/zP3bHVaeom+sb4kxczPGD4NWWeE4q2zUV4Bv5qoQHPf4m3u3O8DuNPee+AW8s/k9Dcmjftln1CVT0NlZVp/mHP39BKxj6pq+5rHMeLW3A/KAkAe44EjX844BtM9ey85394phjouPae7z+Gd3zn0YCne2SmiB8+8nzdN70YyAaApOGeu1Y3etF5pWuwaDn48r07seETd5Q91zf+Ic1fZDxXQC5fkvSiUj1LTY8qX8PkOE11oAez38C9DZ7/wal8Xd/xgTpW8r1G3xj/IzNFMAYsShvQKfdZSMmMWp7TjRuV6lkJVXF3VUYFmDjneGT34VLqnuD55/JBHba9nr8T4dUHbwBRngHcrBXa5JXQFM/zL2X/iMYjXEI3492AedPdaEcTz3ylel75hd/hvBvuwK+fOoAJTwYBgGf2l3a1fuSnT+CvfvwEnhaOVcNyHOiBCVWBqrDWPX8y/oLnf9+28cBzyHiR7DNgBDV/kZLsE/L8hUmYPrOa7EPXRj17D1qF7gW9Fc8/4nvYdnAaL/rknfjug8/VfJ+FWByub4z/xEwRi9OGa5w94yruxK2m+acaMP6A6znlI97vyRem8F+//AD+7FuPAHC966Iv+5S8sU6keoqyj+bJPtN5Ez9//AVwzlEo0/zdc5Y3HSR01ZsMSlU+yXjc8fRBfEmogQS4XrCqMD8bhd43oc9Pqie1LXzHdx7Fl+7eiXUj7sY/0dCT4au3abpp88AmJMYYUrrasuZvhYx/wXKweECPfI64UZAg4792SRq6yjCeK3rBfPc96LsQV5pU5K+a8Te8vzXOvgWVoE2JjDWR7UOef0Su/z4v3vabpw9WfD31ndgqjX/vcnim6FfdJE1dNP5RFzF5/lF5/tVIamrkcp90/bu3jmHf0Tk/ewZwb1zf82+35m/zgFdveMHcL929E+/7weO465lDgZRMANC1UnmHpO6mCVq24/+dtNK5b/sYBgwV77/0xNJrFQUJTfGNk9+Iw5vkOq2nnr5y0P951rR9A/GJX27BP/16K4DSd15vxosZ0vwB1wmIS/ahpAPT5n4vBMJfPUZk+9Cxi9aPYMmAW3pkKqD5l8s+VN67mgNCzkMjLVGbxQ2mN2eqaBX0zIHpgDQJlFb00/nKwWCaHLcdlMa/Z5mYKWI4XTL+pu1gPFdENqkhm9B8r1SEvLZGNH96flQnLvFmIq+jKAR8M5SB0Xbj75QFfDkHFM+zumPLQXAezK4w/ACvjaTmev5ioTfy/J85MI2TlmcD3inFMSgVUQz4huvKdIoXHTuM40YHcGSmGJj4v3LfswDc/HCgvqwtgCbUoGea0tXIWFIjlGQfz0O3HD9Th6DVVynVs3S9Mq/VxhWnHYPlQ0m8cGQOuYJQVjsi24cCrNWuQUqGqHdl1ApFy2kq2AsAae9cfPbO7fjyPcEVaXiPTRR0bic78Hd2mr4x/gHP35MwxnIFjGYSrocW5fkXG9f86flRHp9o/CngKAZ8O+b5O6FMHs+7Ifngnq1jgeOAq7dSjCKhu5r/rJBBQR68a/wHy7RmQxWNf2mHL1A9d70dmBbHorSOpVnXExa/q5O9Psw0EdZbA8pyynd0p2P0/EXNPxycp2totmhDU1ggw+falx2H7/35i3Dh+hGsW5LGlgNT4LwUFI7K9qEdtVXTSguuMezEXgDLcZpK8wSC8Y8Hn50IPEaOS7h/9Z7DszjhI7diy/4p3wGMY7Net9E3xv/ITBHDXrVFCviOTRcwkkkgbURrs81q/kldidzcIy6tyajQzspc3vJ75RqagkKbN3mJEgXJMEe9Jfw+b9ezuNReu2QAB6by2H4wh6SmwlAVv+Y/4J6rg1MFTM6ZOHl5tmzCTOiKn27ne/5Vdpe2E6ovNJJJYGy6gLmijfPXDePVpy/3PXWS6GgHeDU4514WU/B2Ssag+VOqp5jtU9aW0SwZqLBEmTJUvPSEEQDud0ieelZYZQLBa5Mm42qyD32XnZB9TIs37fknhU5f4e+C7tGw53/3tjFYDse3H3jOn7yjUsGbxXF4R2IltegL4+84HEdmi36jFJIwxqcLGM0mkDK0yJuUPKlwulwtUl5J5rDnVIzw/OlGEwO+FJBulxYeln3o7wvfyOLf/WcXHosTlma8QncKNJX53h/gGoodh9wsn/XLMmX55Yaq+NIaecjkzXU646foxTNGMgmM54qYNd3KrSnBCSAduB7Zx09FDO36Thutl+a27WCev5gkQJQ8f6tqiWMKbAPAykVu3X/6jgsRHdroc8amC/jeQ8GMmGnPYHbE+NfZeCkKMUi89cB04J6qZPxJHj4wOQd6+lzRKosZNMvn7tqOU/7mV/NearovjP/RORMORyDgCwD7JucwkjG85Xn5F1GpomctkrqKR3YfwYl/fVsgUCQaOaoqSmWO50zb98ZofO3SwstkH5WMf1DXNMS8dV3FZ95yNjSFIZPUoKtKIK6RN22M5dy/aflgMuBxAa68kAvLPvr8GH8KeI9mE8gVLBydLSKlq4EVIHn+9cg+JJOEZZ84sn3I808HPP/ge9L5mynavsYdxTqvoi0AnH+s1wlLYVBYyQmxHQ6ycXTsun/7PT760ycD1Vtz3vk5MtN+Ldx0eNOyDwBs/cQV+MRVpyNXsLD3yJx/PC9cd+KkQNfnvqOliX/7oRyO/8it+Olje5seB/Hvm9z3uH/HRI1ntpe+MP7knVCWBC1186ZTQ/ZxmjL+okz01L5J/+coz5/zktHNCJo/0L4a65Zd3swFKMk+RHjFc/rKIfzwHS/Gda84oSy4WbAcjE+7rx/JJsrOW3TAl/TmeZB9NOY3XXnhyBzShooBofEH6cBjdRh/04nOQ48n28d9b1HzL1judXv9q08GUJJ95iJkHxHR+NP343b7KhUSFGs80fVKu4nFSZpkn05o/mYLAV/Avc6OG3X/dnEDoig3it4/TXpUekVVmL8C+MXm/U2Pg1jqVQG465nKKaadoC9KOlNLwsFU0Li6x3SkdDXyJi94EkejiIZP1NbFEtGiR0nVE8uKbbXJI7ac8mYuQLnnH7XU3rB2MYDy2up508b4TAGGqiCb0Mo1fy1C84+QHDpB0ZMRqN2i5XAkPdmHNqKR7OO21+RVc8zJ8w+fLzfbp1Xj7/7vyz6e5n/MUBIb17nfhe/5F6rLPovSOq4+bzVed+aKwPGEXmqqI3Zno/cliVCUPchYznmVaZuVZerBclp/f3GfBCFKcp+/awcOTeXxmavP8a9H+huXDJSqALcyCRH7vRXFQ7ta7/XQCn3h+dONTCWKxSVkeLkvkrealX1K7y9q62TMR7OJwGQz4dVQKQV825cF43jL+nA9f6A8na3aUjt8M5LnP5IxwBgrmzQNMc8/lO3TadnHFDR/gq4DwDX4uaLlp6JGpe2G3w8oNwxxZPtY5PkbJc+/aDlIaErZ+aOWo5VgjOHGN52JC9ePBI6LO61pgxdjpbaRlPlErSodhyNXsAIG9d5tY76nHDfF0Eq1GaJiG+J1d9O9z+Jnj+/zPi/4fZNcDDTXUEYkb9p+qYhq+ws6QV8Zf9LURcOVMlSkE9EBX1f2afwUibKPuIwuWG4AeXHaCFS+pM1mmdDGm3Z4/uTZhTt5Ae5FL45drxLoDkscedPGxEzBr22U1MKef+l3sZ4/0JmOUbbD8Ys/7IPjlDJzROOfNlTfax6fLoDzUoXWWoE5v+RwyDAkKzgVjeDZ/oChLVi2W4s/JA/OFKxAamO9iDvKScLKGJpvBMmBoc+hzBcyigcm83j71x/Gu71OYXFjWk4g/tQMUWnFUcH4vGmXZZ8tyQjGv8Vx7PVkp5GMMe8ZP31h/Kf8tnXlsk/aUJHW1cgbnDY0NYq4WhC/4KLllkwYSukQE3lINxXLO9Dz44Y8ySjZBwhe6I16/hO5oq+jR8k+BH12Kdun/TfBg89O4N3/9hgeff4IbG/HqPi3JgXPnzyz5b7xrz6+UsA35PnrGoqW01KWiFWm+XN3r4Xg+dPKpJbmXwmxoxolGaQTqp9xRsY/nBdP3/Uv/uB6zO3qkxWH7FOSGEvfZdSK7vBMMcLzLzkJlfp41Mvucdf4n7Q8i1lPUpwv+sL4U+YGlaoVjX/KUP3lefiLyDeZ7SPuCJ4t2thzeBb7js75N+1QKrhDk3Kv6XWlgG/8xt+MyEwRb6wlgjdcLcU1bOjypo3xnOD5R8g+/udpQc9f/Dsf2DmBk/76trp31tYLxX1IbtM1N9BJO13TRsn4U8E/CszVNP40oUZs8gJKHbZsh+Mr9z7bUPonSS1JIdvHlX1U4fx5nn/Txr+0qZDSPAcSGhzurhRJ9imlRrrnklZOt2x2jf9Jy7MNf3Y9xCH7+KvpGp7/eK5Q5nQtCcg+rRn/+7aPIakrOHfNYji885KnSF8Y/6k5CworNakIev4aUoYWqe02K/sEPH/TxkX/+Fu85Ma7Ap6/CJXHpVVGVLGtuCAvVFPKZR8AGBEu9GreVpnnb9qe5+8ahHCev+j5635Vz/JsnxtufRoFy8HvnztS3x8U4tBUHm/72kP+8pog7Z0yv2jVMeIFfV3NP1jSgWSfqNIfIkWLmo0EDQOtLCimc8vmfbjh1i34zB3b6/57xP61Citl+xia4l8vBdPBoam8m+dfob1oNQKaPxl/o1SGuyT7BEs60OT4rJcC2rbUZLt12SdK889HGN7xXKHMIIuaf7O35H88uhebdh/Gr546gItPXOq/55y/g9jCPdvGmnvzJukL4+82r9D9jI2EKhr/kscXln7ylo1EiwFfUfZxyyGrWJwOGn+SpWjSoPG1RfaJCE6Kso94oVeXfYI341jOXS6TFFBW3iHg+bPAc+iG5Jxj2wF3o1it/PqfPrYXv3pyP9Z9+Jd48oVSOu2Ntz2D+7aP445QpUby3o94EhtNXqPeZJUSrgOKwVA2UC1ttiSlBf/mpV5Lz0PeZBJOnawHyvNXhT4PBdMtq02e/7PjOZz/yTth2ryhxkNEQlP974AMONUHKloO1JDnT6unVYvdTWO0YA6XnYiLqKJ5jVJJ8w9fx+O5YmDCA4L3RLOb9j7475vx5i8/gINTBVx66rKSzfHe769+/ASu+frDgb0U7aYvjP+UUL8cCAYyU7rqyy3h5X3BdJrS/MWgqfieM0U3ULd4IFiVkSQJmjTaKftYNTz/oOxT2dsKNIPRFByYdDM9Fnl7KZTQ8jio+YdSPb2/c/fErH9zPh/qBibiOBzv/+FmvPO7boDxC7/d4T92l9dZKizX5X3P3z3XeoTnT9fBhND4BygVTAtj2g7+5BsPY9Nud5USlsLCXd1o0mtkRUcrNVVhSHv7EKi+Ek3Oz+wvbSRsyvPXFUHzD3n+tgP6qmllTJMj7RImzJh2wIZxy2W3J9snvAonz1/shjaSad34i6xenELKoE5v7rW19cCU+/4d3PPSF3n+5PkTRjjbx7vpw2l5edP2vatGSAVkn5LheG5iBglNCXgSgCD76CHZpy2ePxn/aM1/JBDwrTzxiR7TUEr3W/6Jk6xIoCuYn+0T7Esrdo6qZvzDdVb+c+cEbIdjtmj5kkQ4ja7c83fHT55/2tB8g0cBeNJ6K6VrHp4p4rdbx/zzF5bCwp6/qtDO7crf61fvexZHZ0188PKTAASN/2BSw9Sc5Wv+isJgqAqeE85VM5o/dbZzx0aef7nsI3r+CgOOGUoG3sdsk37t7iNoTfZRFeZVohUDvjYGk3qgXeVErujLaoQY8G01dRdwHSS6Pum6JKdMbaJnQbP0jec/WKG1XVD2cb+IouXgOw8+h5miFWu2z86xGRgRxn9qzr0QyBNup/E3neqyj5j+qFfz/D1Dt2Y4jaSu+FJGtoLnKZ5H+uxwtg+dh5FMoqwPsEhYnpucMzE1ZwZiNuH2gnTTHibN3zvHNNmlDMW/DkijL3n+0Tc8eZF03YSN/2DK7cdMElYxZGCj+MQvt+D/CSsZWzAKgykdU3kzYJwSmhLYM9JUwFdXhbFRwLeUWuoHfL3vaSxXxPBAomxDmdU2z98pS6NthnDb0IJp+0kgBAV8xZXqIkGmbcb4hxNJFqX1MpvjeOeuk+XN583zZ4xdAeCzAFQAX+Wc39iuz5qaM319Egga/6SmIqUH+3zev3Mc/+dnT7qPN+H5i4ZVlH1sh1f0/JO6UopJ+Ppk/EtAMhRiQxDRaJ27ZnHk8TD7vQ09bzhrBX711AHsmXKNtdg/9j2vPAGneCWSxZus5CkzMFaSfchgn7ZiEI/sPlxxZ+1shDEu2k7AoybP6tO/2Roo2V0m+/jZSaovmZDnT49VyvPP+1k2wc1rBGMMywYTvudPnnM9k7rjcPzksRf868/1/HUcnTVRtEvGKaErEMMj1Xb4VkIM+NLKUAz40ndAhtOthmuUrYqrrWhawQp1SWuWRKg3dt50sCy0epnIFbEorcPQFPzr2zbg9qcPBlfyTeTmh+XboZTuS4xzIc+/k+XN58X4M8ZUAF8AcBmAvQAeYYzdzDl/uh2fN523/NIOQFD2URRWkn28L2JCWAY2k+ppCbM3STr+Z2tqBeMvbIJqo+e/Xai8Gf48AFi1OBV5PMybNqzC84dn8c6Lj8d9O8b9C1zUSv/yVSf5P4veE51/t66MIhh/14ievDyLe7aNYWrOwlAoOA5EZ98UTMdf1bjv5Z73z9/letFv2bgaQHnA96ITR/GGs1bg+NGMf4zKbdD3VCnVk4w5TUZR3unSbBIHvdRRen49RvKnj72AD/77Zv/7UBWGwZSG5w67AUFyEMJZVY2WH3ffI0LzT5Q0f6ovVPL83Wq44aC+1SavtRhDwBco9/zzll0mU07OmUgbbsnyy09bjstPWx4I0Dej+YufmdJVb08JOZzu+4l9vTvFfMk+5wPYwTl/lnNeBPADAFe268Om8qZf2gEoN2qlfGz3ixALnDXj+YuEC19Fef5zoc1k7azts/NQDpmE5m9gAkqGcM1wOhCorZbts3bJAD5z9TnIJDQsErz6TAXZR1xpiB6ym2lCso9rsNeNuEW4Ds8W8asn9/ulognRGJPuXLDswI1JEhKxa8I1mpTqSVLXykUpfO6t5yCpq25/Z82tVsqYe10YmlLF+FM1zWjPH3CDvlTBtRHj/5w3XqpCqXmeP63c6BpeHvJcxTLb9RLM9glO4gXThumlstJzxqfdJkjhicdy4r9e798xjum81XBZ9SgSmlqW7TNgqIHkh8k50wuol/42cTXVjOwjpjKTExTOMLR82WfhG/+VAPYIv+/1jgVgjF3LGNvEGNs0NtZcDuxMwUKuYAWMT9io0XKfIu9HZlvz/C9aP4J3XXw8NqxdXGb8DWFnpog4ydByulZNmWbYfmgaxy/NBOSU4QEDf3/V6fiPd7048Nx6d1WKqauZCgHfSjJT0PM3YWiKb9C3HZzGO7/7e7zjO5sC7yVm36xd4sp5hVCTk+mQ5v+wV0SL5KBKfxsZvZSugjHm1X2qIPuE2idGBSWHBwz/GvAbg9QhHYzlgteNoriaP10T5HW//sxjALh7WI4fHcAFxy2p+d5hAuUdhB2+gNc/wDNIeW8jZCXPv1jD839g5wS+++BzVZ8T5n989SEA0ee2UQxhhQOUqvaKE8vknOlq/sL1USl1u17E+5iy4VKhJBOnjzz/qG+y7MrhnN/EOd/IOd84Ojra1Adt3nsUnANnrhryj5V5/now+CJWt2wm4KupCv7qipOxYlHKTxskwjeM/znCJJNNaEgbalsKZe04lMMJo5my42+7YK2fnULUu5XdT+9klWUHUfYRb2Q3zdAz/nMWBpO6vzIiQxHuWUs34OK0jleevBSAZ/xNSlNUfQkpnI5YGkP090AyAP0dAxUa/dBnAqUVY9R7iq+nvrfhYLQIJSY8OxZc7WgKCwTT6Tp63Vluhc43b1iFO//yYv+7aATSwh2H+957Rsj2IW+0YDk4MJVH0XKwYlGqTPOvlef/75v24PN31b/BTQyUxiH7hHtjF7zCjXQuGXO/G3d/T+nzGGO4539fjD9+ybqmHDIxfZNWyeGAL3n+ndzxO1/Gfy+A1cLvqwDsa8cHPfb8UQDAOWsW+cfCxj+c5y/KPs2kehLihhsyaJWMv7jMZIzh2JEBf+dkXEzlTRycKgT0/jggw07echTi3gbxOQmtlGkylTcxmNL8c3Xf9nEAwLolaYiQsb353RfijJWLALg3Mnl1o9lEmecfppInSSsXmoxTdXj+NP4o458y3Fr5tsN9IxCWpERIa98ZMv6Kl+1D0PUykkngvg+9Ate/5pSK71kLv8Ce0CUsbZQb/7xp41Fv5/U5axYFVrCawmpq/kW7vAVlNUSJhaSzVhBXOJxz1/PXFN8eLM0mwLkr1YbVgbVLBrA4bXgxkMZiG4WA5+9+h+RUhrN9wgHf320fx8dufqqqw9As82X8HwGwnjF2LGPMAHA1gJvb8UG/f+4IjhsdCHhE4focCc3dOk8epSjVNCP7EGKNn9XDrgEr7/Pq/p4KTTLHjWbw0LMT+PRvtsbWPo608yjPvxXIm7GrFKkaqJCC6OaYlzR/0fMnwjcEGeO0oQbqA9GNPZJJ+PJOJR26ouef8G5O730HqlTmDAf/oq6VAT+wZyEvdAmrVNCLZJfxkOyjqaxi0sLq4XRL16lYGpo80AFB9qExzRZtPPTsYaR0FaccMwhVYf4kmk1qgYB7FEXLaShgKk6S1fZ91IsoMZIHnzRU/++nHd2HpgqRMYaUQXJsY9JPwPMXNkG6/R6Cmn9Y9rnzmYP4wSPPN7VzuxbzYvw55xaAdwP4NYAtAH7EOX+qHZ91cDofSF8EUOadutquJnj+guwTk/Ff4xl/+ow7PvAy/Oy6l/r9QsOfc9zIAAqWg8/ftQPbD00jDnYcLM/0iQO6oKtNUpVWBAHZJ29hMKWXpSuGbwjKux9IaIHy1/Q+5PlzziuOqVIA0Zd9DMHzr5DnH64NE5UcIKb0+fouL61ewlQK+KmMBZIWWlmRhhFLQ4d3+Bas0mrgnm1j+M6Dz+GMlUNl3diySb1msJI8/3orWZK3u2wwgb99/WkN/lXlGELHsulCqZF9yfN3Zc85r3xGGJICGw36ipOFKH+mDdW/Dipl+zy+5yjOWDnUcmG7KOYtz59zfiuAW9v9Ob94z0V1lQxOCX18AwHfFrIMxNl6zbCrPVNGywlL3QqIi9IG9k3my2ILNFkA8XW62jGWg6EpgT0PcUAXdDMbVBJC+t30nBlINSXCUsFs0S3UlwjUtHf8rKHRbMI3sJWMf8WAb0jzzyT0siJx/rjCnn9EfIg86JliOBvJjMyMqmj8laDs00wsqhJi6YOoHb7hMb3j5cf5Pyc0BbmCO2nWaulo2g44h7dPofb4Sbr7v28+Cycua71iqKj5U1nqrOBAjNaoaEsOWqNBX/H+PVmofCruP6EVariN5lP7pnDNi9c29Hn10hc7fOu50KibF+c8GPBtwfMfFkolrPACj2HtbvFAUGYgzhAC1LWqStbL9oPTOH4003JN8jDNBBkJsZZ8OCUXcL+XcuNvI21ofv9ZwDXEouwDuMZD3HUqSiWVNH/6fPreR7OJMgmGEMdlqEpZPSMAgQ2EosdYrV5QFLTJizhr9VDk85pBnEDDqZ5h4//BV52IS05ZVvbabFKDaXPMFW1s2n048nPI8Nar+5PsU6lkSKOI2T7UVS6T0HxDT7IPEG0zaBXXrOxz+/tfhivPLiU1ij2j6TIVPf8t+6dQtBycvTqoXMRFXxj/KG584xn48bte4v+e0l3jP1u0A19AK8Zf9LAprz4c7FtcQfY5cVkW//Y/XwSgufSyKHZPzOK4kYHaT2yQcJXSRghv8hJ1bQBYvzRTthSeLVp+toRYp53eZ7FQlsF2uB/jqaSZi5DRE43/4ZlC5ApCNAKVZBjy/OeKdiBTJCqOwDmvuHpSFeaf57NWL2pqJ28l/B3lliPU8y/FAcQxnbA0KBlS4Dmb1GE5Dm75wz68+csP4A97j5Z9DqWC1ms8p0J9OFolyvPPJDX/WhCNf5TnT9dcrsLEXQk/vhC6x1OCw0mI8S2q2RS3TEv0RWG3KK4+f03gd8rnfsarrkdUys6ph9WChEFlDv7oguASrpLxB0rL0Er6cKNMzpn+SqMan3nL2ZEN7SuxKFWf5/+Zt5yNXaEMpoTuevZ50510w57/SCaB/ZPBTI+Zgu3LEqJkQV4dpUSaXmbGkoyBg1MFDCQ034uvlepJkIQ0MVMoS4UVjVglJ0HcQOgWEtMwlbcijX+4Ng49F3CN/9LBJP71bRvw0hNGyl7bCmJTGDLQYraPaJBIrvRf653/waQO03J8WfPfHnoeZ65aFHiu7/nXKWPSe4WviWYRHQ3R808IEz0RZfyXeAXeJiqsBCtB12XYlqQ92UdcCYk/09+/KKbJL0zfGv8waUPDTNHC5+/agcVpHQpjmJgplm8+aICVgvFfmk1g942vLXsOealRMkR481krcM4xnTeRSdS+kK46p2y/XVWi2mPW+76G6npjYS/vjg+8HPsn5/D9h5+PzPYpef4lD9XP8w8Z/8Gk7hp/wVuuVCKYNH/ygGkCHpuOMv7iCjH6/dJC6d4508ZIJoGpvOXHlw5M5rEorSOpq2WSz6K0ETD+AHD5acsjP6cVRNknl7eQSWhQFQbVq4IpjmttKO02IPs43F+l3rx5Hz762lMCezSoIXy9bTun8vHKPmJacUD28RyBxWkDCnMlmCinjyaHsQb6MQCl6yTcGyRtqDg6a5a1eiXiXvmE6VvZJ0zaUHF4poh7to3hreevwU1v34CXnrAkMgBZL4E86AqeJtUTj9rZR+mRlapKNgIt3+O6kUQUheHGN56BX77nwoZfS7XkSQ6jTU4nLM3govWj/uQgMlOwfUMu1kGiapd045q2A5tz/xxX2mgmQsaKvHD/ho9YCYlGrFIANi18h3nTLqsU+rrP/w5fufdZd7xeGQWxBABVHW1nqV/R+B+ZLfqrQ0NVPFkCeNWpy/APbzyjbMVE1/hAQoVlO76+PVu08bPHg1t3TF/2qd/zT2hKS9KrSKTmn9T8lU9CV/x4UZQjM5KpfC1Ug1aI4QklZWiYM+1ALChg/OcsGKrSkvpQDWn8PZYOJvDcxCw4B85YOYQNa4fxvT+/oOXG0bWo1EsAKN8C3grTMXtRYa4+fw3WN5GRkdAUzBXtil6OoZUb/1nT9s8N1WnPFUzkCq6xoO+sYLrZJS85fgn+6II1+NSbzvTfo1KJYFEyAtwVGxB9w4tGLFVhH4NfwMu0MVe0/ZXenJeJNJ4rYPeEq+3SCkeUAm9930X48h9taEuqHyEGzY/MFv3PNzTFD0yfu3Yx3hqSSgHXYKZ0FbqqwOGu0R8wVJy8PItfbA4a/1LAt37NP06vlzR/dxUsyD7euTVUBVef5+49PTBZvqnM0BQsTusNG/+C5daKKpN9dFdqFiVAsZIvbXqslCbdKlL28Thz5SIAzwNAU0asEkldqerplHKHy59jqAo0hVXMDGkE8nTaZfybZSSTwEzR9sseD4bGR60LRWYKFlYuKkkwCU3BV+7b5b8fdSCjSdPQFHziqjMC7xGVmQOUJmParep7exFL/YDmX8Pzny1YyJuO3yBGzP6hzlg04Yg7ppdmk7ji9PilHhEyStd+51EMpXScvXoRADL+lUtX0GtThuo/Pp23kDJUrFqcLitP4peJqNfzD3XgaxXDm6AshyNXsKCrLNAOM6kruPblx+PJfVN447mrIt9jNJtoeLcxtd0MG3EK+IrXEa3+AHflEy5tEifdZQnmEUqt1FVWpmu2wn0femWgXESYcF1vEcaYf4G0CuVM16P5dxLKgtrmbUALB/cMVS3z/Kfzpr8TF3C1VAqKi54/GVe1gbow5GGT7JMyVGQTWrTnL4yrUrYPTe65goWi7ZTKRJu2n+ZHJaTJONLGv2YaszSDKE9Ozpn+GA1V8Z2GSg3UE7qKpKb4MloubyGhqTA0Vlbrh77HvGXj4FQe1//kCdz4pjPKYikE7fiOC7+MhRDbYIz5mr+hqsgkNHz9j8+r+B6j2URTsk9U6igFfIOev6j5W2XOUJxI2cdj/dIMEpqC40YysUo9o9lE1ZXEOZ6X9d9ftDrycTEXuBVybZZ9muUYz4PfetDdxVyP7FOtP0NCF4x/kYx//eOhFEexxMRwxojcwFSoI9uHtvFTgb+hlA7mlRKh8Y1Pu4+VPH9P9umU8Q9NXLTySAiyT6V74lWnLsObNqzyC6/lChaS3ncQDmAXBM//47c8hbueOYR7tkZX6zVtB5v3HC1LLW2FUuc4BzMFyw/uUyC2nl3TS7PJhgO+BcuJTAhIGyoshwdWEuK1Ph2z7BWmuyzBPKKpCl57xjG+MeoUSweTkVlARDomz39K0Di7iWOG3ID6djL+Yc/fk32oq5dpO5gt2oHlsHjTqoz5wbp8hOf/43e9GJv3TFYcz0nLsvjEVafjNWcc4x9za7CUfwei518tKDmQUHHIa+iSTeqe1lsK9E3MFMA5R9Fb8g8PlGSfThDe8zAsaP65GsafNi1954HdAFyDldRVaIoS2B/g7mEoef53bDkEoPIGwUd2HcZU3sJlpy6LfLwZxJ7R0wXLXwUbguZfC/L8K3WZiyJv2pHXBzVx3+2lP49kEmWpniuGmk84qUV3WYJ55p/fcvZ8D6GMdCIe4083cZzL6DgQZR9dZWUekriJK6Gp/gpGXA47wiaZ2aLt38QUaxEL+W1YO4wNa4crjocxVrYXwy39Uf4diJ5/tXrzKUPFgSlX/x5MaUh5daToezVtjqk5q8zz75Tssyit409eug7fuH83gFL6cUJT/BVLpdRYQhM0/+EBA4bGAp6/5XDQ1zQ+XSzrGRzm7m1jMDQFF62Pb0+D2DM6l7f84H64d3Y1RjIG8qaDXMGqW4/Pm05kxg59v7snZqEwtzFRmeyTkrJP35LW45F9SPPvNtknZai+zDCY1Mu8qXBXs6l8qSAXIXrlU3mzTPOvFNyte4y6GrkrVTxWLRUzrWs4MCl4/oZbzVEc91iu4BtCyrbplOfPGMPfvv40rPckFl/zF2SfSpo/4Qd8C5bg+ZcMmfjzgal85HGRA5N5rBhKxruTWdT8BdnnVactx/+6+Pi6Jtthb6PXkZn6SyxT34AwvvEfn8FoNoGkrvh7IYD4Yx5hpPHvcmLz/IXt7N0Gef9R+ma4nzGl6InPFc/PdN7yvXAy/uES3o2S1KM9fzGLS6lm/BOqn9EzmNT8ao6i8Z/IFXyvb9iv99QZ418ap3tt0I7SerJ9CDrnruzjav5ifX9Ryx4XNPNK5Sym8/Fnuoiaf65g+ZsBT1qexYeuOLkuGYdKbBypksQRJtymlaDJfffELJYNJmFoirAXwt35207NXxr/LicuzX9aCMR1G9TrIGpVYgiyz++2j+N9P3is7Lnh80OvKQV8W/f8ozT/gmWD3rpaQpHovQ2mdL+a46wwoYzniv6NPzyQwFmrhnDGyviKt9UD7WYmI2iopTTbWtcNBXzzptv/VldZQMKobPyjPf+40zyBkuZfsGxMzplNZdKQJNeQ8S/akftAaFUznitgaTYR2NA4HSFvxk33uYGSAGlDw2wMef7Teavr0jyJy05dhtufPohdY+Wdy3xvzXTwyyf2Yaf3nGrLYd3X/D3j3+ImmaSuRu7VMG0Ozbthq3mNS4TqroOe7DNbtAJlOyZmCr4unNQV/Pzdje+WbpVPvvF0HP+7AZy3zq0iKWrgNY2/IAvRpi+xVpE4EVB2E1C59eN03sRIzEUIxWtpcs70d343QjOe/2zRxopFlauEAm7ix0SuUFXejJvucwMlAdKGGvAQm2U635yn0wloE1NU6WrR8997pLRpqJpXGNb8tRabf6cMJVLzN23Hl5SqLS7EOvHZpIaU7gZ8xdXE+HRJ85+v1dnSbBLXv/oUP3hrCFIFbZyrhJgpk9QVaCqD7fDIxuSi51+p6ft0vv6Aar2Q5n9k1oTt8KaMP8VDGtH8Zyt6/oLxzyZgaKo/SVLxuHBXuzjpTmsg8UkbWiw7fPdP5gN9dLuJwaSOz7/1nEAhPELU/PcJO0ajtNDjRgZw1Tkr/aJkZFyr6fH1kKqg+Zu2A0N1b6Fqq4sRwfgndRUDCff9aFIfMFSM5Yo4fp6NfxjRoFNfgkqIE2xSK+34NR0HCUUNaPsTM/V4/vHLPvT3UF79oiZKkQ8mdSisuucfTgOdM+3IYLJ4bMVQCs8fnvUnSZogxWsnbqTx73KWDBgwbY7JWRNDTdbNzxUsbN5zFP/zZcfVfvI88fqzVkQeJynkk7du8SUfIHq/wl0fvNj/WVdZ7AFf8aa2HQ6HA6pn9KrJPiPZ4KRLcZx80QZjbvXXiVzBD5DWk2/eCUTZhza/VUITgh5uuQf3fJg2R0KLLlzoPl5+3PbKL8Tt+VMaMe3QbcbzVxSGoZRe0fifd8MdWDucxn8IvULcKrTl16u4Gjj5mCwe23PEz/P3jX+2fQ5bd1xlkoqs9to/7qnQSrAeHtw5AcvhuCjmOvCdgAzQf+6cCBwXg7jXveL4suqrhlpqD9lqwDepq+A8WGudjBZ5/NVWF2HvLaW75SLu3zmBlK563cIE2aeGxNIpxNz0SoXrCHGfQ1Ivef7k2YsFy4DShByV7VPakxK35+/+DYc8499sJs3iASPQ7U9kbLqATc8d8X93HI686USm7YoTwonLsl7Al3Z9F8BYacNdO5DGv8uhbmB7Djdv/B957jAMVcGGde1pB9dO6iln+78vPxm/+6tXBo4ZmiLU9mld9gGCef0UzFTq0PzDxp8CwI8+d8Qr25zAxExx3jX/MOK5r5VvL1YdFesrkYZdtIJGfjClQ1NYpOffrj0ppPkfasHzB9x9GEdminh8z9HI6p8iVOI6SvYRJwRXDtQwU7ThOBxjuSKG00Zbq7l2x1UmqQilQbbi+R/OFbEkY9TVy7jbIG+tUXQ1RuPv924VPH9vFfCmc1dh9XAKb6vSZDts/N/+4rXCzlWGJQMJjE8X/OBntxh/UfapteGs3PMPevY0CdBXkUlo0FRW1r0MgNDboT15/lRBtnnjr+PIrImrvnA/Lv6n3/rHxXaMFKejNOQo4x++LocHDNgOx1TexHiu0Fa9H5Caf9czlNIxmNSw5/Bc7SdXIKoxeq8gGqBLTl6Kv7/q9Lpep6uKH/DVGqjqGUWp7LZQetdxjdmqxSnc96FXRr6OCGdsZJM6/tvG1bhv+7h7k2cNzBRtv21f12j+3jh0ldWcQHU1OFGQCkayD02Wx49msP1QDpmEhiOz5UX7ANHzb0+2D+nprXj+D+1ym9SLDoHYbnXvkTmctDzrX4OVNux99uqzcdoKdz8HrQgnZor+ddFOuuMqk1Rl1eJ0S57/1Fx7a4S0E9H4f+2Pz8OKRSmsWFS72JWuMl+madH2+zeumJpp+l567VUFGU5x09Zxo6Uc9hGvZMAPHnm+7vfsBHTu61k5iUH1pK76coXpa/7u/6d754AD3l6AKOPfngq0NJlNzBShKqzpIoerh9P+GAH4WWg0aQGlKrUlzz/6s648e6VfuZRKRxwm4y89f8mqxSnsnijfAFUvU3nTL6HQa9RTbCv6dSrypru8b9XzpywR0fO3GtTnH/7oJQFjc6ywgWnZkPvdHPQqf7YqU8UFnftKXc9E9FCePxl9X/bxPPzTVgzip4+9gP2Tc0hoSqB5CTFdaI/mr6kKVMXdf9BKhyxx4gaATc8dwRsWpXy5CgDe+/3HoDKGFV6V4HrqBlGjn4lcEWPT7Tf+0vPvAYZSul+bpxnibofXSSib5rgGd3saQqpnqypKVMCXjFu9Abml2WCRMvHnC08YwV9edqL/e7va9jWK7/nXsRIJZwbRhFvJ8z86a7rF36p6/vFfs+T9Nyv5AMBxI8EeA7/YvA833vYMLv/MvYHjt2ze568Wa2VLASXZZ//kHPKm09YNXoD0/HsCygJolqm59nYEaifLBhN4/6Un4o3nrmzoddRTFmisk1cUUd3WTD8nv3lD/bm3noPhtAFVYXjPJevx6du3tTTOuCFDWc8+idFsAn9/5WmYKdrYsHYxHnzW1cTDnj+teE5fOYiZgh2Z6rl7fBYJr19u3CR0NxGgFeNPf0NCU/AnLz0WN927E87TB/3Hv/En5+GWzftw55ZD+C/edVtfxVDX2FN8b6DNJb2l598DpLxaMM3gOLztHYHaCWMM77t0vZ/1VC+iDNHqJi/f87ciPP8WJpY3nLUCFwr16ql3brfQiObPGMPbXrwO73z58UhoKnQ/jz9Ytz+hKbjjAy/Hd//sRdCU8laPAPD4niM4Y+VQW9IcaUJr5X5IGSpWLkph5aIUXn36coQTltYMp/GKk5Zics7Eo17Ofz3GP6G5bSQpvpduc+Ol3nQH+4wBw90eX7SchjXwmaIFh3dfE5d2I56nVss7VA34NhmTiOKH77ggsnrofEGpwc1McHRerJDnb2iKH+CMavVo2g6e3DeFt19QOXW2FSjjpxXPHwAuPWUpGGOR0kw2qWHdEnd18OyY25s6VWdfguEBw9/TMxBjL4MopPHvAUgfni1aMLT6dcC5oo2P/vRJAOjZbJ9mCXj+LWbPkPHfNT4TaCcJwPdw4yChqV21FyPRgOcfRg9l++QKFlSFBera6york322HphG0XJwVptWQXFo/gDw8SvdlOOjEWUeBpM6bG858LxnyNN19mYYHjCw45A7YaRrlNRoFSn79ABUV6VR3f+XT+zHzZv3AehHz79ksOLa5PXFu3fi7m1uw3GrDZ5/t0Grp2YmT5LairaDg1N5jOeKWJzWA13Vojz/x/YcBdA+CYwm11aNPxGVLprQFCzx0jbJ+NcT8AVc40/lLdrt+bd05TLG/i9j7BnG2B8YYz9ljC0SHrueMbaDMbaVMXa5cHwDY+wJ77HPsW5JbehifM+/weqe1BEKaE3j7EVEz7/Vev7i7taD3nb+kua/cC9f3/g38Tf6NZl2jONFn7wT33/4eb89JRHu9gUAm/ccxZIBo6xWU1zQuOIy/pqqlAVmGWMwNAVDKR1504HC6itTEh5Xu3s4t+q23A7gdM75mQC2AbgeABhjpwK4GsBpAK4A8EXGGP0lXwJwLYD13r8rWhzDgqdZz1/Mous3zz9g/Fs00KrC8O/vfDEAwPSW891Wh6cdkETSTLYUTRjfeuA5/1i4pLgW6vYFuMb/rNWL2pbuSka4mXLOlaiUkjripW6mjfr3FIjGf6DNAd+WrlzO+W845+SOPghglffzlQB+wDkvcM53AdgB4HzG2DEABjnnD3C3EMa3AVzVyhj6gWY9f3H3ZL3LzoWCGPCNY9PUScuzAICCl+tvdlkdnnbSzI7jqPMSrlBphHb4TudN7BjL4axVixr+vHqJ2/MHSvG0l56wBD+89gL/OG3SWjpY/2atwR7y/EX+FMBt3s8rAewRHtvrHVvp/Rw+Hglj7FrG2CbG2KaxsbEYh9pbDPgB38Y8fyoUdtaqIaxd0liqZK9jxJjqCcAPVNJGLzJa3VKKoR1Q0bVWAr4iw5lyz1/c4XtougDO0dZrlTT/OGVQ8vw3rFmMFx23xD8+knWNfiPxC3E/zrwbf8bYHYyxJyP+XSk856MALADfo0MRb8WrHI+Ec34T53wj53zj6OhoraEuWNK+7GNh51jOzySoBeVQf/bqc/rCQxURjXIcnr+uMiisVMiLUhcX8nmlTVbnrmm8FHjUpBj2/HU1uMPX6sBqKtEGz5/KUGRCGynpGmnE+Ac1/3lO9eScX1rtccbYNQBeB+ASXqppuhfAauFpqwDs846vijguqQJ5/s9PzOIDP9qMz159Nl53ZnTnKxG6mVpNdexF4tT8ATeIlxTaOZJXvJCN/3GjGfziPRf6klcjRG3QCmv+4WyfUsmM9l2v7TD+FE/LJILvOelVaT3lmMG630scV7trPLWa7XMFgL8C8AbOuVh28mYAVzPGEoyxY+EGdh/mnO8HMM0Yu8DL8nk7gJ+3MoZ+gPT6XeMzsB1es4EEQcG0bikR3EnEDJ24bqKkrvqyTycMVTdw+sqhpiY48ZqjjVBi9hngrg7EbJ/ShNq+c9oOzb+S5/93V56Gt2xcjXMakX06mJXX6rri/wFIALjdi2Y/yDl/J+f8KcbYjwA8DVcOuo5zToL1uwB8E0AKbozgtrJ3lQQg7W/fJJWOrS/wazVYfGwhId6IrVb1JJKagrzp4MkXJvGLzfsBLGzPvxVEAz6aSeDwTLEsa0gLef5WDCUzapHQlJbKOUdBBjsbes+Tlw/iU28+s6H3inNSqkVLZ4BzfkKVx24AcEPE8U0A6uvIIQHgGhhDU7Df8/hzdWb9dMKT6lbEmzsuW5I0VOQtG1/73S48vNstXNaP57YexNXWi44bxtaD02WF2gxVCezwpZ/buXfiovWjKNo81lTSSp5/M/SM8Zd0jgFDxf6jrvEXm0ZUo9gHueiVyLbF81dRMO1A/Z1+PLf1IBrXj7zmFFx80iguPGEk8JxwD1/KoGrnSvXSU5fh0lOXxfqeJc2/dXPaSdlHXrk9QtrQfGNet+ffAU+qWxE3yMT15yd1V/YRJ99+PLeNktRVvPLkZWXetq4Fd/j2aoLCWasW4aRl2Vh2Jbe7jLOI9Px7hAGhyBNp/gen8rAdXrGtoWU7YKx7OkN1EtELi2uJTwFfcfKV1UmaR1fcHb7lxfJ6yyc9Y9UQfv3+l8XyXp28nnrrLPcxy4Q2jGT8X/TJO/GSG++q+JqizaErSl8aqLhbAAKe8bfsugPukuqQZEb7Vuj/XvP840ZTGC49JV5pKgpp/HsEsZlJWPPPFSy8/esPY9d4sM+vZTt9eyO1oy5KUlcwV7QxVWfMRVKdUpN3r15SHycoiOz45Gvw1Ws2tv1zpPHvEdYKxj+s+T/07ATu3TaGv/n5k4Hjpu30bUAyzlQ+IqmpyJtO3TEXSXXIyNMu306kekpKSM2/R1gT8PyDxocM3d4jc4HjpsP71otqRy30hK5iYsatPyOpza/+4qKqqYt+wxeLjL+UfTqJNP49whqh2NVs0Q7U98l7Nw+1fyOsPvb8lTYEuVO66tf2kdTm5OXVyxrQtUn7UUynf1OT5wN5lnuEcAPznOD9U965FSr4ZtpcelExktTl7RInVGrBr5Tax6nJ84G8mnuEwaSO15+1AlecthwAMDFT8B8rWKVNR+O50nHTdnouba6bSdbZh1VSHyRXUgzF7ONyJPOBPMs9xOffeg6uPNut5nlgqlTcjTwnABibLhl/y+ZyCR0j0vOPF0rHpVUsrVyl598Z5NXcY4x6DSLuePqQf2ymUDL+4RK5UvaJD+n5x0vY87f6pFJqtyCNf4+xYe1ivPzEUXz9/l3+MaobDoSMv8PlEjpGqJuXJB6oEFpJ9vHy/KVU2RFktk+PwRjDmzeswj3bSm0txU1HRaEtnmk5MPrYi7r1vRfhyGwxtvdLSNknVrIhz992OBTWnkwtSTnS+Pcgy4eSgd+n5kqZP+Eqif28YebUFfV3UKoHyrj6qytOhsN523usLnQyIc3fdBy5Uu0g0vj3IMsHg8a/ouxjcyR16UXFxblrFmPHDa+WBiomUroKhYmaP4cuvf6OIa/iHmTZYNjzr2T8nb5s4dhOpOGPD8YYBhKav2PdrUUlz2+nkGe6B6HNMURA8w/VR5eZE5JuJpvQSgHfPi5HMh9I478AmJwz/YblRUvM9unf8g6S3iCT1Ep5/nZ/x6g6jTzTC4DJOdPfMBOWfaTxl3QzGcHzlyvVziItQ4+yLlTojXp/BrJ9bC53S0q6mkxSx3RA9pEmqVPIM92j/PzdF+Jf3nKW/zt5/gHZx3aga/IrlnQv2YSGnBezcmUf6ax0CmkZepShlB4omTuYJM9f2OQlU+ckXY4o+5g278t+0/OFNP49jJj1Ey37yNQ5SXcTCPjKBIWOIs90DyPm8A8Y7oaZ8CYveTNJuplMQsOM15zIdmTAt5NIy9DDiLVmkroKXVUiUj3lzSTpXihWNVO0ZP+JDiPPdA+TUEu1ZZK6CkNVUPQ8f9vh4Fy2xJN0N35Z57wlUz07jLQMPYyo+Sd1Bbqm+LKPKWujS3oAsayzLEHeWeSZ7mFE479kwICuMpheSWcy/nIZLelmyPOfzluwbEdmp3UQaRl6GDEt7sRlWRiC50/NsKXmL+lmsoLnL2WfziKN/wLhxGVZN+BbJvvIr1jSvWQSbopyLm/Jev4dJpYzzRj7IGOMM8ZGhGPXM8Z2MMa2MsYuF45vYIw94T32OcaYnOpjYPGAAUMVNH9Hev6S7qek+Zuynn+Hadn4M8ZWA7gMwPPCsVMBXA3gNABXAPgiY4xSU74E4FoA671/V7Q6BomLrir+Dl/TS/mU2T6Sbias+UvPv3PE0cnrXwB8CMDPhWNXAvgB57wAYBdjbAeA8xljuwEMcs4fAADG2LcBXAXgthjG0Ze895UnYP2yLADXy6c8f8uRso+k+8kkQtk+0vPvGC0Zf8bYGwC8wDnfHFJvVgJ4UPh9r3fM9H4OH6/0/tfCXSVgzZo1rQx1wfKBV53k/xzU/N0VQD83cJd0P6rCkDZUL8/fkQHfDlLT+DPG7gCwPOKhjwL4CIBXRb0s4hivcjwSzvlNAG4CgI0bN1Z8nsTF0BShSJbn+ctUT0mXQ8XdLIfL67WD1DT+nPNLo44zxs4AcCwA8vpXAfg9Y+x8uB79auHpqwDs846vijguiYFAwNfz/KUnJel2MkkN016qp0xQ6BxNT7Oc8yc450s55+s45+vgGvZzOecHANwM4GrGWIIxdizcwO7DnPP9AKYZYxd4WT5vRzBWIGkBXVX8TV6WNwnIBu6SbieTcCt7WjLVs6PEEfAtg3P+FGPsRwCeBmABuI5zbnsPvwvANwGk4AZ6ZbA3JoLlHcjzlzeTpLvJJDRM5U1ZhbbDxGb8Pe9f/P0GADdEPG8TgNPj+lxJCV1lpYCvI2v7SHqDTELD84dnAbilySWdQU6zCwhDKOlMef5S9pF0OwMJDeO5AgAgLY1/x5CWYQGhCwFfy5EBX0lvMJBQkTfd6zZttEWJlkQgjf8CIrDDV6Z6SnqEAcHgS8+/c0jLsIAwtKhNXvIrlnQ3orefTkjPv1NIy7CAMFQG03bAOfdTPaXsI+l2BhIlb196/p1DGv8FxOhgEpwDX/jtDqGqp/yKJd1NWso+84K0DAuIq89bjVeevBRfvudZP+tH7piUdDtBz1/KPp1CGv8FhK4quPy0ZcgVLOw4NA1AbvKSdD9iwFfm+XcOaRkWGKevHAIAPPb8UQDS85d0P2nB809J498xpPFfYFAv32cOuJ6/bOAu6XaCqZ5S9ukU0jIsMHRVwQmjGQCAwgBFNseQdDmk+Sc0Baq8XjuGNP4LkMGU6z3JTB9JLzDg5fYPyBz/jiKtwwIkpbuelDT+kl6ApB66biWdQVqHBQjdTDLYK+kFKLdfTPmUtB9p/BcglDEh0zwlvYCuKjA0BSkZ7O0o0josQHzZRwbPJD1CJqHJHP8OI43/AoSW0bomv15Jb5A2VFnaocPIddYCJOl5/iqTnr+kN7jk5KVYu2RgvofRV0jjvwAhD4oaukgk3c7Hr5SdXTuN1AUWIBTwpbLOEolEEkYa/wUIBXxN6flLJJIKSOO/ACHP35Sev0QiqYA0/gsQX/O3pecvkUiikcZ/AZLS3Ti+9PwlEkklpPFfgKRkto9EIqmBNP4LEJJ9bGn8JRJJBaTxX4DI6ogSiaQW0vgvQGQrPIlEUgtp/Bcg0vOXSCS1kMZ/ASKNv0QiqUXLxp8x9h7G2FbG2FOMsX8Ujl/PGNvhPXa5cHwDY+wJ77HPMSarj8WN7NsrkUhq0VJhN8bYKwBcCeBMznmBMbbUO34qgKsBnAZgBYA7GGMncs5tAF8CcC2ABwHcCuAKALe1Mg5JOR9/w2k4d83i+R6GRCLpUlqt6vkuADdyzgsAwDk/5B2/EsAPvOO7GGM7AJzPGNsNYJBz/gAAMMa+DeAqSOMfO9e8ZN18D0EikXQxrco+JwK4iDH2EGPsHsbYed7xlQD2CM/b6x1b6f0cPh4JY+xaxtgmxtimsbGxFocqkUgkEqKm588YuwPA8oiHPuq9fjGACwCcB+BHjLHjAESJzrzK8Ug45zcBuAkANm7cKHcsSSQSSUzUNP6c80srPcYYexeAn3DOOYCHGWMOgBG4Hv1q4amrAOzzjq+KOC6RSCSSDtKq7PMzAK8EAMbYiQAMAOMAbgZwNWMswRg7FsB6AA9zzvcDmGaMXeBl+bwdwM9bHINEIpFIGqTVgO/XAXydMfYkgCKAa7xVwFOMsR8BeBqABeA6L9MHcIPE3wSQghvolcFeiUQi6TDMtdXdz8aNG/mmTZvmexgSiUTSUzDGHuWcbwwflzt8JRKJpA+Rxl8ikUj6kJ6RfRhjYwCea/LlI3AD0d1Or4wT6J2xynHGT6+MtVfGCbR3rGs556Phgz1j/FuBMbYpSvPqNnplnEDvjFWOM356Zay9Mk5gfsYqZR+JRCLpQ6Txl0gkkj6kX4z/TfM9gDrplXECvTNWOc746ZWx9so4gXkYa19o/hKJRCIJ0i+ev0QikUgEpPGXSCSSPmRBG3/G2BVeG8kdjLEPz/d4wjDGdnstLR9njG3yjg0zxm5njG33/u94Oy7G2NcZY4e8mk10rOK4KrXsnMexfowx9oJ3Xh9njL1mvsfKGFvNGPstY2yL1/L0fd7xrjqvVcbZVeeUMZZkjD3MGNvsjfPj3vGuOp81xjq/55RzviD/AVAB7ARwHNxqo5sBnDrf4wqNcTeAkdCxfwTwYe/nDwP41DyM62UAzgXwZK1xATjVO7cJAMd651yd57F+DMAHI547b2MFcAyAc72fswC2eePpqvNaZZxddU7h9gbJeD/rAB6C21ekq85njbHO6zldyJ7/+QB2cM6f5ZwXAfwAbnvJbudKAN/yfv4W3DaXHYVzfi+Aw6HDlcblt+zknO8CsAPuue8IFcZaiXkbK+d8P+f8997P0wC2wO1i11Xntco4KzFf4+Sc85z3q+794+iy81ljrJXoyFgXsvGv1Eqym+AAfsMYe5Qxdq13bBl3+x7A+3/pvI0uSKVxdet5fjdj7A+eLERL/64YK2NsHYBz4HqAXXteQ+MEuuycMsZUxtjjAA4BuJ1z3rXns8JYgXk8pwvZ+DfUMnKeeCnn/FwArwZwHWPsZfM9oCboxvP8JQDHAzgbwH4An/aOz/tYGWMZAD8G8Bec86lqT4041rGxRoyz684p59zmnJ8NtyPg+Yyx06s8fV7PZ4Wxzus5XcjGv1Irya6Bc77P+/8QgJ/CXdodZIwdAwDe/4fmb4QBKo2r684z5/ygd7M5AL6C0pJ5XsfKGNPhGtTvcc5/4h3uuvMaNc5uPafe2I4CuBvAFejC8ykijnW+z+lCNv6PAFjPGDuWMWYAuBpue8mugDE2wBjL0s8AXgXgSbhjvMZ72jXonjaXlcYV2bJzHsbnQze/x3+Be16BeRwrY4wB+BqALZzzfxYe6qrzWmmc3XZOGWOjjLFF3s8pAJcCeAZddj6rjXXez2knot3z9Q/Aa+BmK+wE8NH5Hk9obMfBjehvBvAUjQ/AEgB3Atju/T88D2P7PtxlqAnXC/mzauMC8FHvHG8F8OouGOt3ADwB4A/ejXTMfI8VwIVwl+5/APC49+813XZeq4yzq84pgDMBPOaN50kAf+Md76rzWWOs83pOZXkHiUQi6UMWsuwjkUgkkgpI4y+RSCR9iDT+EolE0odI4y+RSCR9iDT+EolE0odI4y+RSCR9iDT+EolE0of8fwDeuEiavj0IAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -132,22 +132,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAhk0lEQVR4nO3deXxU9b3/8dcnIRaqIMriT2WVYhEkRIyCS61WrYCK0ocLWqzVq4gWF7w+fsXWUpd7+7PrtdSFi0pdSsGqFamXKlqpS69WQkVlqRIRNKIYUCwIKMl8fn+ckzAZZiYnITOT5Lyfj8c8Mud7zpzzmWHIO9+zfI+5OyIiEl9FhS5AREQKS0EgIhJzCgIRkZhTEIiIxJyCQEQk5joUuoCm6t69u/fr16/QZYiItClLlizZ4O490s1rc0HQr18/KioqCl2GiEibYmZrM83TriERkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYm5nAWBmc0ys4/MbFmG+WZm082s0sxeN7PhuapFREQyy2WP4D5gVJb5o4GB4WMicFcOaxERkQxydh2Buz9vZv2yLHIG8IAH42C/bGZdzWx/d/8gF/W8tX4zT7y2juKiIjoUG0VmdCgyitM8OuzyvIgORUZR0rydP4soKoIORUUN24t3zi9O8zozy8XbFBFpskJeUHYg8F7SdFXYtksQmNlEgl4Dffr0adbG3lq/menPVjbrtbmQGjrJgdMwSIL2kuJdA2jX4ClKE1RWH36ZttehOP32G2yjeNdtl2QKuzTtdesrMhSCIq1MIYMg3W+DtHfJcfeZwEyA8vLyZt1J57TSAzit9AASCacm4dQmnFp3amudmkQieJ5wamqdhO9cpuF0gtoEwfJ166lNWV8iwY5ab7CdutemLt+gPeEprwvaa2p3Xa4m4WzbURvOD2qpbbBOz1hjTSJBosD3IkoNq5Li1MBpGCCpAdehOHPglRSnD8CSLIHYoTi115Yh6OrXVZQSeDuX65AmMOt6kyKtVSGDoAronTTdC1iX640WFRl7xPw/ZSIMrZralMAIf9bUJhoEYW3C2ZFI1IdUptfVJhL1y+8MtwzLJa27fl3120q/rppEgi9qEmz9orbxdbWyACwysvawUnuADXtq6XtXmXphDddfFIRgceaw3CU8M/UKk9pSt1tSVJS21yhtQyGDYD4w2czmAiOAT3N1fEAaKioyijBKigGKC11O3tQFYNrAyxKAu0ynBEzd/HQ9t7owrKn1Br3O2kQiCLw0r9tR23gPsMH2a+vCM9hWfWCHbYViRqTeUqbdmiWpPbUMIZQafmmnGwu/Juz63LUHuzMM22rPL2dBYGZzgOOB7mZWBfwYKAFw9xnAAmAMUAlsBS7KVS0ikBqA8eDJwVcfPImk8GvY28vai6tNDpidu0CDQEsN1fThtiPhST3LXUMzuT1q+NXNr5tuLeGXrpcU5dhfaiglv+aEr/Zk9ND9W7zuXJ41dF4j8x34Xq62LyLBgfkOxUaHmIVfg4BJCr8dqdMpuxRTp1PDcEfy7sowsBr2Ine2NZhO6fml7UHWOltrarLuWu3bbc+cfGZtbhhqEZFszILdOnHq+e0uDTEhIhJzCgIRkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYk5BYGISMwpCEREYk5BICIScwoCEZGYUxCIiMScgkBEJOYUBCIiMacgEBGJOQWBiEjMKQhERGJOQSAiEnMKAhGRmFMQiIjEnIJARCTmFAQiIjGnIBARiTkFgYhIzCkIRERiTkEgIhJzkYLAzDqZ2VdzXYyIiORfo0FgZqcDS4Enw+kyM5uf47pERCRPovQIbgSOBDYBuPtSoF+uChIRkfyKEgQ17v5pzisREZGC6BBhmWVmdj5QbGYDgauA/81tWSIiki9RegRXAkOAz4HfA58C10RZuZmNMrM3zazSzKammb+3mf3JzF4zs+VmdlETahcRkRbQaI/A3bcCPwwfkZlZMXAHcDJQBSw2s/nuviJpse8BK9z9dDPrAbxpZrPd/YumbEtERJovyllDT5tZ16TpfczsqQjrPhKodPfV4S/2ucAZKcs40NnMDNgL+BioiVq8iIjsvii7hrq7+6a6CXf/BOgZ4XUHAu8lTVeFbcluBw4B1gFvAFe7eyJ1RWY20cwqzKyiuro6wqZFRCSqKEGQMLM+dRNm1pfgL/nGWJq21NedQnCNwgFAGXC7mXXZ5UXuM9293N3Le/ToEWHTIiISVZSzhn4IvGhmz4XTxwETI7yuCuidNN2L4C//ZBcBt7q7A5Vm9g4wCHglwvpFRKQFRDlY/KSZDQdGEvyVP8XdN0RY92JgoJn1B94HxgPnpyzzLnAi8IKZ7Qd8FVjdhPpFRGQ3RekRAHyJ4EBuB2CwmeHuz2d7gbvXmNlk4CmgGJjl7svNbFI4fwZwC3Cfmb1BEDLfjxgyIiLSQhoNAjP7KXAusByoO5DrQNYgAHD3BcCClLYZSc/XAd9sQr0iItLCovQIzgS+6u6f57gWEREpgChnDa0GSnJdiIiIFEaUHsFWYKmZ/YVgmAkA3P2qnFUlIiJ5EyUI5ocPERFph6KcPnq/mXUC+rj7m3moSURE8kh3KBMRibnm3qGsf84qEhGRvGruHcqijDUkIiJtgO5QJiISczm9Q5mIiLR+WXsE4V3G5rv7STTxDmUiItI2ZO0RuHstsNXM9s5TPSIikmdRjhFsB94ws6eBz+oadWWxiEj7ECUI/id8iIhIO6Qri0VEYk5XFouIxJyuLBYRiTldWSwiEnO6slhEJOZ0ZbGISMxl7BGY2YPufgFwqbv/EF1ZLCLSLmXrERxuZn2Bi81sHzPbN/mRrwJFRCS3sh0jmEFwyuhBwBLAkuZ52C4iIm1cth7Bn9z9EGCWux/k7v2THgoBEZF2IlsQPBL+PDgfhYiISGFk2zVUZGY/Bg42s2tTZ7r7r3JXloiI5Eu2HsF4gpFHOwCd0zxERKQdyNgjCAeY+6mZve7uf85jTSIikkfZriOY4O6/Awab2SGp87VrSESkfch2jGDP8Ode+ShEREQKI9uuof8Of97U3JWb2Sjg10AxcI+735pmmeOB24ASYIO7f7252xMRkabLtmtoerYXNnaryvDG93cAJwNVwGIzm+/uK5KW6QrcCYxy93fNrGcTahcRkRaQ7ayhJeGjIzAcWBU+yoDaCOs+Eqh099Xu/gUwFzgjZZnzgT+6+7sA7v5Rk6oXEZHdlm3X0P0AZvZd4AR33xFOzwAWRlj3gcB7SdNVwIiUZQ4GSszsrwSnpP7a3R9IXZGZTQQmAvTp0yfCpkVEJKoow1AfQMPrBvYK2xpjadpSb2jTATgcOBU4BfiRme1yJbO7z3T3cncv79GjR4RNi4hIVFFuTHMr8KqZLQqnv05w+8rGVAG9k6Z7AevSLLPB3T8DPjOz54FhwFsR1i8iIi2g0R6Bu/+WYJfOY+HjqLrdRo1YDAw0s/5mtgfBlcqpN71/HPiamXUwsy+H21nZlDcgIiK7J0qPAHf/kOCXdmTuXmNmk4GnCE4fneXuy81sUjh/hruvNLMngdeBBMEppsua9A5EYmzHjh1UVVWxffv2QpcirUTHjh3p1asXJSUlkV9j7m3rPvTl5eVeUVFR6DJEWoV33nmHzp07061bN8zSHZaTOHF3Nm7cyObNm+nfv3+DeWa2xN3L070uysFiEWmltm/frhCQemZGt27dmtxDbDQIzOzBKG0iUhgKAUnWnO9DlB7BkJSNFBOc8ikiAsCHH37I+PHjGTBgAIMHD2bMmDG89VZuT/5bt24dZ511FgBLly5lwYIFOd1ee5YxCMzsejPbDJSa2b/MbHM4/RFNPHAsIu2XuzNu3DiOP/543n77bVasWMFPfvIT1q9fn9PtHnDAATzySHAjRQXB7skYBO7+/9y9M/Bzd+/i7p3DRzd3vz6PNYpIK7Zo0SJKSkqYNGlSfVtZWRmHHXYYJ554IsOHD2fo0KE8/njw9+OaNWsYNGgQF154IaWlpZx11lls3boVgJtvvpkjjjiCQw89lIkTJ1J3MktlZSUnnXQSw4YNY/jw4bz99tusWbOGQw89lC+++IJp06bx0EMPUVZWxkMPPcTAgQOprq4GIJFI8JWvfIUNGzbk+ZNpO6KcPvpDM5sA9Hf3W8ysN7C/u7+S49pEpAlu+tNyVqz7V4uuc/ABXfjx6UOyLrNs2TIOP3zXvcUdO3bkscceo0uXLmzYsIGRI0cyduxYAN58803uvfdejjnmGC6++GLuvPNOrrvuOiZPnsy0adMAuOCCC3jiiSc4/fTT+fa3v83UqVMZN24c27dvJ5FI8NFHwdBke+yxBzfffDMVFRXcfvvtAPzzn/9k9uzZXHPNNTzzzDMMGzaM7t27t+RH065EOUZwB3AUwQBxAFvCNhGRjNydH/zgB5SWlnLSSSfx/vvv1+8u6t27N8cccwwAEyZM4MUXXwSC3sWIESMYOnQozz77LMuXL2fz5s28//77jBs3DggC5stf/nLWbV988cU88EAwbNmsWbO46KKLcvU224UoPYIR7j7czF4FcPdPwiuFRaQVaewv91wZMmRI/b76ZLNnz6a6upolS5ZQUlJCv3796k9rTD2zxczYvn07V1xxBRUVFfTu3Zsbb7yR7du305xrnXr37s1+++3Hs88+y9///ndmz57dvDcXE1F6BDvCM4UcwMx6EFwFLCLCN77xDT7//HPuvvvu+rbFixezdu1aevbsSUlJCYsWLWLt2rX18999911eeuklAObMmcOxxx5bHxLdu3dny5Yt9eHSpUsXevXqxbx58wD4/PPP648p1OncuTObN29u0HbJJZcwYcIEzjnnHIqLi1v8fbcnUYJgOsEYQz3N7D+BF4Gf5LQqEWkzzIzHHnuMp59+mgEDBjBkyBBuvPFGxowZQ0VFBeXl5cyePZtBgwbVv+aQQw7h/vvvp7S0lI8//pjLL7+crl27cumllzJ06FDOPPNMjjjiiPrlH3zwQaZPn05paSlHH300H374YYMaTjjhBFasWFF/sBhg7NixbNmyRbuFIog0xISZDQJOJBha+i/uXrCB4TTEhMhOK1eu5JBDDil0GU2yZs0aTjvtNJYty+2wYhUVFUyZMoUXXnghp9tpjdJ9L7INMdHoMQIz25fg2oE5SW0ldTeqERFpbW699VbuuusuHRuIKMquoX8A1QT3CFgVPn/HzP5hZrrCWESapF+/fjnvDUydOpW1a9dy7LHH5nQ77UWUIHgSGOPu3d29GzAa+ANwBcGN50VEpA2LEgTl7v5U3YS7LwSOc/eXgS/lrDIREcmLKNcRfGxm3wfmhtPnAp+Ep5TqNFIRkTYuSo/gfIL7Dc8LH73DtmLgnFwVJiIi+ZE1CMK/+m9z9yvd/bDwcaW7V7v7F+5emac6RaSVKi4upqysjCFDhjBs2DB+9atfkUgEOwsqKiq46qqrgOBCsJNOOqn+XP8XXniBIUOGUFZWxrZt2wr5FjIaM2YMmzZtirz8vHnzWLFiRe4KCm3atIk772y5Q7RZg8Dda4EeGlJCRDLp1KkTS5cuZfny5Tz99NMsWLCAm266CYDy8nKmT58OwKuvvsqOHTtYunQp5557LrNnz+a6665j6dKldOrUqdHtuHt9wOTLggUL6Nq1a+TlmxMENTU1Tayq5YMAd8/6AP4bWAz8CLi27tHY63L1OPzww11EAitWrCh0Cb7nnns2mH777bd933339UQi4YsWLfJTTz3V169f7wMGDPAuXbr4sGHDfMaMGb7PPvt4v379/Pzzz3d395/97GdeXl7uQ4cO9WnTprm7+zvvvOODBg3yyy+/3MvKynzNmjVZl7vkkkt88ODBfvLJJ/vWrVvd3X3VqlV+4oknemlpqR922GFeWVmZcXup+vbt69XV1VnXX+dvf/tb/XsaNmyYV1ZW+syZM728vNxLS0v9W9/6ln/22Wfu7n7hhRf6lClT/Pjjj/drr73WKysrfcSIEV5eXu4/+tGPGnym6eo899xzvWPHjj5s2DC/7rrrdqk73fcCqPAMv1ejHCxeFz6KgM4tF0Ei0qL+PBU+fKNl1/l/hsLoW5v0koMOOqjBMNEAPXv25J577uEXv/gFTzzxBAAvvfQSp512GmeddRYLFy5k1apVvPLKK7g7Y8eO5fnnn6dPnz68+eab/Pa3v+XOO+/MutyqVauYM2cOd999N+eccw6PPvooEyZMSDuEdab1HHfccRnfV6b11zn66KMZO3Zs/XsC6ofNALjhhhu49957ufLKKwF46623eOaZZyguLua0007j6quv5rzzzmPGjBn168xU56233sqyZctYunRpk/5tMmk0CNz9phbZkojEhjdxxNCFCxeycOFCDjvsMAC2bNnCqlWr6NOnD3379mXkyJGNLte/f3/KysoAOPzww1mzZk3aIayzrSdbEKRbf2OWLVvGDTfcwKZNm9iyZQunnHJK/byzzz67fjC8l156qX5QvfPPP5/rrruu0ffbkqIMMdED+L8E9y7uWNfu7t9o0UpEZPc08S/3XFm9ejXFxcX07NmTlSujDUvm7lx//fVcdtllDdrXrFnDnnvuGWm5L31p52VNxcXFbNu2LWMgZVpPNunW35jvfve7zJs3j2HDhnHffffx17/+tX5e8vvKJNv7bUlRTh+dDfwT6A/cBKwhOGYgItJAdXU1kyZNYvLkybvccyCbU045hVmzZrFlyxYA3n///Qa7lpq6XJ1MQ1g3dT1RpQ6HvXnzZvbff3927NiRddyjkSNH8uijjwIwd+7c+vZMdaYbdnt3RDlG0M3d7zWzq939OeA5M3uuxSoQkTZt27ZtlJWVsWPHDjp06MAFF1zAtdde26R1fPOb32TlypUcddRRAOy111787ne/2+U+AlGXS/bggw9y2WWXMW3aNEpKSnj44Yczrqdnz55NqjvV+PHjufTSS5k+fTqPPPIIt9xyCyNGjKBv374MHTo04y/v2267jQkTJvDLX/6SU089lb333jvr+x0wYADHHHMMhx56KKNHj+bnP//5btWdcRhqM+vj7u+a2cvuPtLMniK4N8E64BF3H7BbW24mDUMtslNbHIZadrV161Y6deqEmTF37lzmzJnD448/3uz1teQw1POA4cB/mNnewL8DvwG6AFOaXaGIiDSwZMkSJk+ejLvTtWtXZs2aldftZwsCA3D3J8LpT4ETcl6RiEjMfO1rX+O1114r2PazBcGBZjY900x3vyoH9YiISJ5lC4JtwJJ8FSIizePuTTpDR9q3pl7DAdmDYKO739/8ckQk1zp27MjGjRvp1q2bwkBwdzZu3Fh/4VxU2YLgi90rCcxsFPBrgiGr73H3tFe8mNkRwMvAue7+yO5uVyQuevXqRVVVFdXV1YUuRVqJjh070qtXrya9JmMQuPvI3SkmHML6DuBkoApYbGbz3X1FmuV+Cjy161pEJJuSkhL69+9f6DKkjYtyZXFzHQlUuvtqd/+C4A5nZ6RZ7krgUWD3L+sTEZEmy2UQHAi8lzRdFbbVM7MDgXHADLIws4lmVmFmFeoCi4i0rIxBEP7i/bWZjTKzph15CFeRpi31cPZtwPc9uAFORu4+093L3b28R48ezShFREQyyXaweCRwLDAKuMnMNhLsx/+zu78VYd1VBPc3rtOLYHiKZOXA3PBsh+7AGDOrcfd50coXEZHdle1gcQ3w1/CBme0PjCYYcuIrwMvufkWWdS8GBppZf+B9YDzBTe+Tt1F/lMvM7gOeUAiIiORXlNFHAXD3D4BZwCwzKwKOamT5GjObTNCLKAZmuftyM5sUzs96XEBERPIjchAkc/cE8LcIyy0AFqS0pQ0Ad/9uc2oREZHdk8uzhkREpA1oNAjMbN98FCIiIoURpUfwdzN72MzGmAYzERFpd6IEwcHATOACoNLMfmJmB+e2LBERyZdGg8ADT7v7ecAlwIXAK2b2nJllPXNIRERav0bPGjKzbsAEgh7BeoKxgeYDZcDDgEa8EhFpw6KcPvoS8CBwprtXJbVXmJmuBRARaeOiHCO4wd1vSQ4BMzsbwN1/mrPKREQkL6IEwdQ0bde3dCEiIlIYGXcNmdloYAy73sS+C1CT68JERCQ/sh0jWAdUAGNpeBP7zcCUXBYlIiL5k2300deA18xsdjgSqYiItEPZdg39wd3PAV41s9QbyuDupTmtTERE8iLbrqGrw5+n5aMQEREpjGy7hj4InxYBH7j7dgAz6wTsl4faREQkD6KcPvowkEiarg3bRESkHYgSBB3c/Yu6ifD5HrkrSURE8ilKEFSb2di6CTM7A9iQu5JERCSfoow1NAmYbWa3Awa8B3wnp1WJiEjeNBoE7v42MNLM9gLM3TfnviwREcmXSDevN7NTgSFAx7qblLn7zTmsS0RE8iTKPYtnAOcS3IfAgLOBvjmuS0RE8iTKweKj3f07wCfufhNwFNA7t2WJiEi+RAmCbeHPrWZ2ALAD3ZVMRKTdiHKM4Akz6wr8HPgH4MDduSxKRETyJ8pZQ7eETx81syeAju7+aW7LEhGRfIly8/qOwBXAsQS9gRfN7K66sYdERKRti7Jr6AGCm9H8Jpw+j+Bm9mfnqigREcmfKEHwVXcfljS9yMxey1VBIiKSX1HOGnrVzEbWTZjZCOBvuStJRETyKUqPYATwHTN7N5zuA6w0szcA153KRETatihBMKq5KzezUcCvgWLgHne/NWX+t4Hvh5NbgMvDeyWLiEieRDl9dC2AmfUEOia1v5vxRcHyxcAdwMlAFbDYzOa7+4qkxd4Bvu7un5jZaGAmQQ9ERETyJMpYQ2PNbBXBL+3ngDXAnyOs+0ig0t1XhzezmQuckbyAu/+vu38STr4M9GpC7SIi0gKiHCy+BRgJvOXu/YETiXaw+ECCexfUqQrbMvk3MgSMmU00swozq6iuro6waRERiSpKEOxw941AkZkVufsioCzC6yxNm6dd0OwEgiD4frr57j7T3cvdvbxHjx4RNi0iIlFFOVi8KbwpzfMEdyr7CKiJ8LoqGo5S2gtYl7qQmZUC9wCjw8AREZE8itIjOAPYCkwBngTeBk6P8LrFwEAz629mewDjgfnJC5hZH+CPwAXu/lZTChcRkZaRsUdgZl8B9nP3uuMBCeB+MzsO6Apk/evd3WvMbDLwFMHpo7PcfbmZTQrnzwCmAd2AO8M7n9W4e/nuvSUREWmKbLuGbgN+kKZ9aziv0V6Buy8AFqS0zUh6fglwSYQ6RUQkR7LtGurn7q+nNrp7BdAvZxWJiEheZQuCjlnmdWrpQkREpDCyBcFiM7s0tdHM/g1YkruSREQkn7IdI7gGeCwcD6juF385sAcwLsd1iYhInmQMAndfDxwdXux1aNj8P+7+bF4qExGRvIgy6NwiYFEeahERkQKIckGZiIi0YwoCEZGYUxCIiMScgkBEJOYUBCIiMacgEBGJOQWBiEjMKQhERGJOQSAiEnMKAhGRmFMQiIjEnIJARCTmFAQiIjGnIBARiTkFgYhIzCkIRERiTkEgIhJzCgIRkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYk5BYGISMwpCEREYi6nQWBmo8zsTTOrNLOpaeabmU0P579uZsNzWY+IiOwqZ0FgZsXAHcBoYDBwnpkNTllsNDAwfEwE7spVPSIikl6HHK77SKDS3VcDmNlc4AxgRdIyZwAPuLsDL5tZVzPb390/aPFqKp+BJ38QTvjOdk96XtfeoK21a+W1tqnPMpfa4eegf9tQHj+H8ovh2CktvtpcBsGBwHtJ01XAiAjLHAg0CAIzm0jQY6BPnz7Nq+ZLXaDnIckrTd5Cmvbk+a2ctfZaW3t9edLq/52aoz2+p2bI179t1745WW0ugyDdJ5ManVGWwd1nAjMBysvLmxe/vY8MHiIi0kAuDxZXAb2TpnsB65qxjIiI5FAug2AxMNDM+pvZHsB4YH7KMvOB74RnD40EPs3J8QEREckoZ7uG3L3GzCYDTwHFwCx3X25mk8L5M4AFwBigEtgKXJSrekREJL1cHiPA3RcQ/LJPbpuR9NyB7+WyBhERyU5XFouIxJyCQEQk5hQEIiIxpyAQEYk58zZ2mbiZVQNrm/ny7sCGFiynLdNnEdDnENDnEGjPn0Nfd++RbkabC4LdYWYV7l5e6DpaA30WAX0OAX0Ogbh+Dto1JCIScwoCEZGYi1sQzCx0Aa2IPouAPoeAPodALD+HWB0jEBGRXcWtRyAiIikUBCIiMRebIDCzUWb2pplVmtnUQtdTKGa2xszeMLOlZlZR6HryycxmmdlHZrYsqW1fM3vazFaFP/cpZI35kOFzuNHM3g+/F0vNbEwha8w1M+ttZovMbKWZLTezq8P22H0fICZBYGbFwB3AaGAwcJ6ZDS5sVQV1gruXxfB86fuAUSltU4G/uPtA4C/hdHt3H7t+DgD/FX4vysKRg9uzGuDf3f0QYCTwvfB3Qhy/D/EIAuBIoNLdV7v7F8Bc4IwC1yR55u7PAx+nNJ8B3B8+vx84M581FUKGzyFW3P0Dd/9H+HwzsJLgfumx+z5AfILgQOC9pOmqsC2OHFhoZkvMbGKhi2kF9qu7K174s2eB6ymkyWb2erjrKBa7RADMrB9wGPB3Yvp9iEsQWJq2uJ43e4y7DyfYTfY9Mzuu0AVJq3AXMAAoAz4AflnQavLEzPYCHgWucfd/FbqeQolLEFQBvZOmewHrClRLQbn7uvDnR8BjBLvN4my9me0PEP78qMD1FIS7r3f3WndPAHcTg++FmZUQhMBsd/9j2BzL70NcgmAxMNDM+pvZHsB4YH6Ba8o7M9vTzDrXPQe+CSzL/qp2bz5wYfj8QuDxAtZSMHW//ELjaOffCzMz4F5gpbv/KmlWLL8PsbmyODwd7jagGJjl7v9Z2Iryz8wOIugFQHC/6t/H6XMwsznA8QRDDa8HfgzMA/4A9AHeBc5293Z9IDXD53A8wW4hB9YAl9XtK2+PzOxY4AXgDSARNv+A4DhBrL4PEKMgEBGR9OKya0hERDJQEIiIxJyCQEQk5hQEIiIxpyAQEYm5DoUuQKQ1M7NaglMMSwgGKrsfuC288EqkXVAQiGS3zd3LAMysJ/B7YG+Cc+9F2gXtGhKJKByWYyLB4GxmZv3M7AUz+0f4OBrAzB40s/rRbc1stpmNNbMhZvZKON7/62Y2sFDvRSSZLigTycLMtrj7XiltnwCDgM1Awt23h7/U57h7uZl9HZji7mea2d7AUmAg8F/Ay+4+OxzqpNjdt+X1DYmkoV1DIk1XN5ptCXC7mZUBtcDBAO7+nJndEe5K+hbwqLvXmNlLwA/NrBfwR3dfVYDaRXahXUMiTRCO11RLMCrlFIKxeoYB5cAeSYs+CHwbuAj4LYC7/x4YC2wDnjKzb+SvcpHMFAQiEZlZD2AGcLsH+1T3Bj4IzyC6gGBAwzr3AdcAuPvy8PUHAavdfTrBKJeleSteJAvtGhLJrpOZLWXn6aMPAnXDFt8JPGpmZwOLgM/qXuTu681sJcHopnXOBSaY2Q7gQ+DmnFcvEoEOFovkgJl9meD6g+Hu/mmh6xHJRruGRFqYmZ0E/BP4jUJA2gL1CEREYk49AhGRmFMQiIjEnIJARCTmFAQiIjGnIBARibn/D7mLFn30YBR4AAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAhhUlEQVR4nO3deXhU9d338fc3IRaqIMrio7IEEYsgScQouNxWq1ZBRenlXqzVKqLFBW+up9ha6nLffWztYqkLNypVKQWrVqSWVrRSl95YCRWVpUpU0IBiQLEgoFm+zx/nJEySmclJyMyQnM/ruubKnDNn+c4w5JPfWX4/c3dERCS+8nJdgIiI5JaCQEQk5hQEIiIxpyAQEYk5BYGISMx1ynUBLdWzZ08vLCzMdRkiIu3K0qVLN7p7r2SvtbsgKCwspKysLNdliIi0K2a2NtVrOjQkIhJzCgIRkZhTEIiIxJyCQEQk5hQEIiIxl7EgMLOZZvaRmS1P8bqZ2TQzKzez181seKZqERGR1DLZIngQOC3N66OAQeFjPHBvBmsREZEUMnYfgbu/YGaFaRY5C3jYg36wXzaz7ma2v7t/kIl63vxwC396fT35eXl0yjfy84xO4SM/Py/4WTedZ3QKl0uczs+zBuumXS7PyG80P8/AzDLx9kREWi2XN5QdCLyfMF0RzmsSBGY2nqDVQL9+/Vq1s/KPtjLtufJWrduW6oKhID+vUaDUBUeS+XlGpyZhlZckbBLm5xkF+Q2nGy7fzHLJasyPtl6nvLwmdSkARXZfuQyCZL8Zko6S4+4zgBkApaWlrRpJ5/Si/Tm96HRqa53qWqe6tpbqWqemJpiuCefV1DpVNTunq2ucGg+na1IvV1ObsJ2aRtMJ85vMq1s3oY5U+6iqqWV7VcNaqmpr69/TzuWb7qemNrcDEOUZ9a2nZKGVbH6qllanZIGZv3O5VIHXMBAjBlqSVmDTEE9dW16eAlB2f7kMggqgb8J0H2B9pneal2fskWfsEbMLptx3BkP6wKpNCJ8wVBqFVFWK9XZuN2FfTcKv0XRN0/nJwmx7VU399poEaY1TleY95ZIZ4SHIZC24hoGS2OoqSNEKS9UqLKibbnLoMtxemgBOdziz+RZi8iDUYdD2JZdBMB+YaGZzgRHAp5k6PyDBf8pO+Uan/FxXkl3uTq3TsNVWk9AqrPGmwdIgLBu2DoPXSbJcktZeGGhV9QFF0tZa48BNDOTPq2qprq1JGbiN31fQQgzqy3EGNgijJoc2UxwG7ZTskGmjEE0eqs0H3s7zgmlapskCslHrMlkAJv5sjwGYsSAwsznACUBPM6sAfgQUALj7dGABMBooB7YBl2aqFokvMyPfID8vZgkIDQ4ZNgmuhPCqC7vmlmttK7FxmNbUNg3f6kaHaBMPg1bVePheahNqStHC3A0Ogza4ECVluO0MkoLGwZLyMKdx0uD9OL1o/zavOZNXDV3YzOsOfDdT+xeJu7rDoIH4BKF7o/NtjVtOaQJuZ+ikajEmb5U1Pd/YMAibbc0lBObn1TVNArRuuYN775WRz6zddUMtIpKOWfBXdkF8sm+XxeuMqYiINKEgEBGJOQWBiEjMKQhERGJOQSAiEnMKAhGRmFMQiIjEnIJARCTmFAQiIjGnIBARiTkFgYhIzCkIRERiTkEgIhJzCgIRkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYk5BYGISMwpCEREYk5BICIScwoCEZGYUxCIiMScgkBEJOYUBCIiMRcpCMysi5l9JdPFiIhI9jUbBGZ2JrAM+Es4XWJm8zNcl4iIZEmUFsHNwFHAZgB3XwYUZqogERHJrihBUO3un2a8EhERyYlOEZZZbmYXAflmNgi4FvjfzJYlIiLZEqVFcA0wFPgc+B3wKXB9lI2b2Wlm9qaZlZvZlCSv721mfzSz18xshZld2oLaRUSkDTTbInD3bcAPwkdkZpYP3A2cAlQAS8xsvruvTFjsu8BKdz/TzHoBb5rZbHf/oiX7EhGR1oty1dAzZtY9YXofM3s6wraPAsrd/Z3wF/tc4KxGyzjQ1cwM2Av4GKiOWryIiOy6KIeGerr75roJd/8E6B1hvQOB9xOmK8J5ie4CDgXWA28A17l7beMNmdl4Myszs7LKysoIuxYRkaiiBEGtmfWrmzCz/gR/yTfHksxrvN6pBPcoHACUAHeZWbcmK7nPcPdSdy/t1atXhF2LiEhUUa4a+gHwkpk9H04fD4yPsF4F0Ddhug/BX/6JLgVud3cHys3sXWAw8EqE7YuISBuIcrL4L2Y2HBhJ8Ff+JHffGGHbS4BBZjYAWAdcAFzUaJn3gJOAF81sP+ArwDstqF9ERHZRlBYBwJcITuR2AoaYGe7+QroV3L3azCYCTwP5wEx3X2FmE8LXpwO3AQ+a2RsEIfO9iCEjIiJtpNkgMLOfAOcDK4C6E7kOpA0CAHdfACxoNG96wvP1wNdbUK+IiLSxKC2Cs4GvuPvnGa5FRERyIMpVQ+8ABZkuREREciNKi2AbsMzM/krQzQQA7n5txqoSEZGsiRIE88OHiIh0QFEuH33IzLoA/dz9zSzUJCIiWaQRykREYq61I5QNyFhFIiKSVa0doSxKX0MiItIOaIQyEZGYy+gIZSIisvtL2yIIRxmb7+4n08IRykREpH1I2yJw9xpgm5ntnaV6REQky6KcI9gBvGFmzwCf1c3UncUiIh1DlCD4U/gQEZEOSHcWi4jEnO4sFhGJOd1ZLCISc7qzWEQk5nRnsYhIzOnOYhGRmEvZIjCzWe5+MXCFu/8A3VksItIhpWsRHGFm/YHLzGwfM9s38ZGtAkVEJLPSnSOYTnDJ6EHAUsASXvNwvoiItHPpWgR/dPdDgZnufpC7D0h4KARERDqIdEHwWPjzkGwUIiIiuZHu0FCemf0IOMTMbmj8orv/InNliYhItqRrEVxA0PNoJ6BrkoeIiHQAKVsEYQdzPzGz1939z1msSUREsijdfQTj3P23wBAzO7Tx6zo0JCLSMaQ7R7Bn+HOvbBQiIiK5ke7Q0P+EP2/JXjkiIpJt6Q4NTUu3YpShKs3sNOBXQD5wv7vfnmSZE4A7gQJgo7t/tbntiohI20l31dDS8NEZGA6sDh8lQE1zGzazfOBuYBQwBLjQzIY0WqY7cA8wxt2HAue2+B2IiMguSXdo6CEAM/s2cKK7V4XT04GFEbZ9FFDu7u+E680FzgJWJixzEfAHd38v3OdHrXgPIiKyC6J0Q30ADe8b2Cuc15wDgfcTpivCeYkOAfYxs7+Z2VIz+1ayDZnZeDMrM7OyysrKCLsWEZGoogxMczvwqpktCqe/SjB8ZXMsybzGI5t1Ao4ATgK6AIvN7GV3f6vBSu4zgBkApaWlGh1NRKQNNRsE7v4bM/szMCKcNcXdP4yw7Qqgb8J0H2B9kmU2uvtnwGdm9gJQDLyFiIhkRZQWAeEv/idbuO0lwCAzGwCsI+iy4qJGyzwJ3GVmnYA9CMLmly3cj0hsVVVVUVFRwY4dO3JdiuwmOnfuTJ8+fSgoKIi8TqQgaA13rzazicDTBJePznT3FWY2IXx9uruvMrO/AK8DtQSXmC7PVE0iHU1FRQVdu3alsLAQs2RHYyVO3J1NmzZRUVHBgAEDIq+XsSAAcPcFwIJG86Y3mr4DuCOTdYh0VDt27FAISD0zo0ePHrT0oppmrxoys1lR5olIbigEJFFrvg9RLh8d2mgn+QRX+oiIAPDhhx9ywQUXMHDgQIYMGcLo0aN5663MXvOxfv16zjnnHACWLVvGggULmllDUkkZBGZ2o5ltAYrM7N9mtiWc/oiWnzgWkQ7K3Rk7diwnnHACb7/9NitXruTHP/4xGzZsyOh+DzjgAB57LBhIUUGwa1IGgbv/P3fvCtzh7t3cvWv46OHuN2axRhHZjS1atIiCggImTJhQP6+kpITDDz+ck046ieHDhzNs2DCefDL4+3HNmjUMHjyYSy65hKKiIs455xy2bdsGwK233sqRRx7JYYcdxvjx43EPbhsqLy/n5JNPpri4mOHDh/P222+zZs0aDjvsML744gumTp3KI488QklJCY888giDBg2qP05eW1vLwQcfzMaNG7P8ybQfUU4W/8DMxgED3P02M+sL7O/ur2S4NhFpgVv+uIKV6//dptscckA3fnTm0LTLLF++nCOOaHq0uHPnzjzxxBN069aNjRs3MnLkSMaMGQPAm2++yQMPPMCxxx7LZZddxj333MPkyZOZOHEiU6dOBeDiiy/mqaee4swzz+Sb3/wmU6ZMYezYsezYsYPa2lo++ijokWaPPfbg1ltvpaysjLvuuguAf/3rX8yePZvrr7+eZ599luLiYnr27NmWH02HEuUcwd3A0ey8B2BrOE9EJCV35/vf/z5FRUWcfPLJrFu3rv5wUd++fTn22GMBGDduHC+99BIQtC5GjBjBsGHDeO6551ixYgVbtmxh3bp1jB07FggC5stf/nLafV922WU8/PDDAMycOZNLL700U2+zQ4jSIhjh7sPN7FUAd//EzPbIcF0i0kLN/eWeKUOHDq0/Vp9o9uzZVFZWsnTpUgoKCigsLKy/8a3xlS1mxo4dO7j66qspKyujb9++3HzzzezYsaP+8FBL9O3bl/3224/nnnuOf/zjH8yePbt1by4morQIqsIrhRzAzHoR3PwlIsLXvvY1Pv/8c+677776eUuWLGHt2rX07t2bgoICFi1axNq1a+tff++991i8eDEAc+bM4bjjjqsPiZ49e7J169b6cOnWrRt9+vRh3rx5AHz++ef15xTqdO3alS1btjSYd/nllzNu3DjOO+888vPz2/x9dyRRgmAa8ATQ28z+G3gJ+HFGqxKRdsPMeOKJJ3jmmWcYOHAgQ4cO5eabb2b06NGUlZVRWlrK7NmzGTx4cP06hx56KA899BBFRUV8/PHHXHXVVXTv3p0rrriCYcOGcfbZZ3PkkUfWLz9r1iymTZtGUVERxxxzDB9+2LC7sxNPPJGVK1fWnywGGDNmDFu3btVhoQgsSrPLzAYT9BBqwF/dfVWmC0ultLTUy8rKcrV7kd3KqlWrOPTQQ3NdRousWbOGM844g+XLM9ubTFlZGZMmTeLFF1/M6H52R8m+F2a21N1Lky3f7DkCM9uX4N6BOQnzCuoGqhER2d3cfvvt3HvvvTo3EFGUQ0P/BCoJuoZeHT5/18z+aWa6w1hEWqSwsDDjrYEpU6awdu1ajjvuuIzup6OIEgR/AUa7e09370EwBvHvgasJxhsWEZF2LEoQlLr703UT7r4QON7dXwa+lLHKREQkK6LcR/CxmX0PmBtOnw98El5SqstIRUTauSgtgosIhpmcFz76hvPygfMyVZiIiGRH2iAI/+q/092vcffDw8c17l7p7l+4e3mW6hSR3VR+fj4lJSUMHTqU4uJifvGLX1BbGxwsKCsr49prrwWCG8FOPvnk+mv9X3zxRYYOHUpJSQnbt2/P5VtIafTo0WzevDny8vPmzWPlypWZKyi0efNm7rmn7U7Rpg0Cd68BeqlLCRFJpUuXLixbtowVK1bwzDPPsGDBAm655RYASktLmTZtGgCvvvoqVVVVLFu2jPPPP5/Zs2czefJkli1bRpcuXZrdj7vXB0y2LFiwgO7du0devjVBUF1d3cKq2j4IcPe0D+B/CAai/yFwQ92jufUy9TjiiCNcRAIrV67MdQm+5557Nph+++23fd999/Xa2lpftGiRn3766b5hwwYfOHCgd+vWzYuLi3369Om+zz77eGFhoV900UXu7v7Tn/7US0tLfdiwYT516lR3d3/33Xd98ODBftVVV3lJSYmvWbMm7XKXX365DxkyxE855RTftm2bu7uvXr3aTzrpJC8qKvLDDz/cy8vLU+6vsf79+3tlZWXa7df5+9//Xv+eiouLvby83GfMmOGlpaVeVFTk3/jGN/yzzz5zd/dLLrnEJ02a5CeccILfcMMNXl5e7iNGjPDS0lL/4Q9/2OAzTVbn+eef7507d/bi4mKfPHlyk7qTfS+AMk/xezXKyeL14SMP6Np2ESQiberPU+DDN9p2m/9nGIy6vUWrHHTQQQ26iQbo3bs3999/Pz/72c946qmnAFi8eDFnnHEG55xzDgsXLmT16tW88soruDtjxozhhRdeoF+/frz55pv85je/4Z577km73OrVq5kzZw733Xcf5513Ho8//jjjxo1L2oV1qu0cf/zxKd9Xqu3XOeaYYxgzZkz9ewLqu80AuOmmm3jggQe45pprAHjrrbd49tlnyc/P54wzzuC6667jwgsvZPr0ncO6p6rz9ttvZ/ny5SxbtqxF/zapNBsE7n5Lm+xJRGLDW9hj6MKFC1m4cCGHH344AFu3bmX16tX069eP/v37M3LkyGaXGzBgACUlJQAcccQRrFmzJmkX1um2ky4Ikm2/OcuXL+emm25i8+bNbN26lVNPPbX+tXPPPbe+M7zFixfXd6p30UUXMXny5Gbfb1uK0sVEL+D/Eoxd3Lluvrt/rU0rEZFd08K/3DPlnXfeIT8/n969e7NqVbRuydydG2+8kSuvvLLB/DVr1rDnnntGWu5LX9p5W1N+fj7bt29PGUiptpNOsu0359vf/jbz5s2juLiYBx98kL/97W/1ryW+r1TSvd+2FOXy0dnAv4ABwC3AGoJzBiIiDVRWVjJhwgQmTpzYZMyBdE499VRmzpzJ1q1bAVi3bl2DQ0stXa5Oqi6sW7qdqBp3h71lyxb2339/qqqq0vZ7NHLkSB5//HEA5s6dWz8/VZ3Jut3eFVHOEfRw9wfM7Dp3fx543syeb7MKRKRd2759OyUlJVRVVdGpUycuvvhibrjhhhZt4+tf/zqrVq3i6KOPBmCvvfbit7/9bZNxBKIul2jWrFlceeWVTJ06lYKCAh599NGU2+ndu3eL6m7sggsu4IorrmDatGk89thj3HbbbYwYMYL+/fszbNiwlL+877zzTsaNG8fPf/5zTj/9dPbee++073fgwIEce+yxHHbYYYwaNYo77rhjl+pO2Q21mfVz9/fM7GV3H2lmTxOMTbAeeMzdB+7SnltJ3VCL7NQeu6GWprZt20aXLl0wM+bOncucOXN48sknW729tuyGeh4wHPgvM9sb+E/g10A3YFKrKxQRkQaWLl3KxIkTcXe6d+/OzJkzs7r/dEFgAO7+VDj9KXBixisSEYmZ//iP/+C1117L2f7TBcGBZjYt1Yvufm0G6hERkSxLFwTbgaXZKkREWsfdW3SFjnRsLb2HA9IHwSZ3f6j15YhIpnXu3JlNmzbRo0cPhYHg7mzatKn+xrmo0gXBF7tWEpjZacCvCLqsvt/dk97xYmZHAi8D57v7Y7u6X5G46NOnDxUVFVRWVua6FNlNdO7cmT59+rRonZRB4O4jd6WYsAvru4FTgApgiZnNd/eVSZb7CfB0062ISDoFBQUMGDAg12VIOxflzuLWOgood/d33P0LghHOzkqy3DXA48Cu39YnIiItlskgOBB4P2G6IpxXz8wOBMYC0xERkZxIGQRmVmZmvzKz08ysZWcewk0kmdf4dPadwPc8GAAn9YbMxof1lOlYqIhI20p3sngkcBxwGnCLmW0iOI7/Z3d/K8K2KwjGN67Th6B7ikSlwNzwaoeewGgzq3b3eYkLufsMYAYEXUxE2LeIiESU7mRxNfC38IGZ7Q+MIuhy4mDgZXe/Os22lwCDzGwAsA64gGDQ+8R91J/lMrMHgacah4CIiGRWlN5HAXD3D4CZwEwzywOObmb5ajObSNCKyAdmuvsKM5sQvq7zAiIiu4HIQZDI3WuBv0dYbgGwoNG8pAHg7t9uTS0iIrJrMnnVkIiItAPNBoGZ7ZuNQkREJDeitAj+YWaPmtloU2cmIiIdTpQgOITg0s2LgXIz+7GZHZLZskREJFuaDQIPPOPuFwKXA5cAr5jZ82aW9sohERHZ/TV71ZCZ9QDGEbQINhD0DTQfKAEeBdTjlYhIOxbl8tHFwCzgbHevSJhfZma6F0BEpJ2Lco7gJne/LTEEzOxcAHf/ScYqExGRrIgSBFOSzLuxrQsREZHcSHloyMxGAaNpOoh9N6A604WJiEh2pDtHsB4oA8bQcBD7LcCkTBYlIiLZk6730deA18xsdtgTqYiIdEDpDg393t3PA141syZjALh7UUYrExGRrEh3aOi68OcZ2ShERERyI92hoQ/Cp3nAB+6+A8DMugD7ZaE2ERHJgiiXjz4K1CZM14TzRESkA4gSBJ3c/Yu6ifD5HpkrSUREsilKEFSa2Zi6CTM7C9iYuZJERCSbovQ1NAGYbWZ3AQa8D3wro1WJiEjWNBsE7v42MNLM9gLM3bdkviwREcmWSIPXm9npwFCgc90gZe5+awbrEhGRLIkyZvF04HyCcQgMOBfon+G6REQkS6KcLD7G3b8FfOLutwBHA30zW5aIiGRLlCDYHv7cZmYHAFVoVDIRkQ4jyjmCp8ysO3AH8E/AgfsyWZSIiGRPlKuGbgufPm5mTwGd3f3TzJYlIiLZEmXw+s7A1cBxBK2Bl8zs3rq+h0REpH2LcmjoYYLBaH4dTl9IMJj9uZkqSkREsidKEHzF3YsTpheZ2WuZKkhERLIrylVDr5rZyLoJMxsB/D1zJYmISDZFaRGMAL5lZu+F0/2AVWb2BuAaqUxEpH2LEgSntXbjZnYa8CsgH7jf3W9v9Po3ge+Fk1uBq8KxkkVEJEuiXD66FsDMegOdE+a/l3KlYPl84G7gFKACWGJm8919ZcJi7wJfdfdPzGwUMIOgBSIiIlkSpa+hMWa2muCX9vPAGuDPEbZ9FFDu7u+Eg9nMBc5KXMDd/9fdPwknXwb6tKB2ERFpA1FOFt8GjATecvcBwElEO1l8IMHYBXUqwnmpfIcUAWNm482szMzKKisrI+xaRESiihIEVe6+Ccgzszx3XwSURFjPkszzpAuanUgQBN9L9rq7z3D3Uncv7dWrV4Rdi4hIVFFOFm8OB6V5gWCkso+A6gjrVdCwl9I+wPrGC5lZEXA/MCoMHBERyaIoLYKzgG3AJOAvwNvAmRHWWwIMMrMBZrYHcAEwP3EBM+sH/AG42N3faknhIiLSNlK2CMzsYGA/d687H1ALPGRmxwPdgbR/vbt7tZlNBJ4muHx0pruvMLMJ4evTgalAD+CecOSzancv3bW3JCIiLZHu0NCdwPeTzN8WvtZsq8DdFwALGs2bnvD8cuDyCHWKiEiGpDs0VOjurzee6e5lQGHGKhIRkaxKFwSd07zWpa0LERGR3EgXBEvM7IrGM83sO8DSzJUkIiLZlO4cwfXAE2F/QHW/+EuBPYCxGa5LRESyJGUQuPsG4JjwZq/Dwtl/cvfnslKZiIhkRZRO5xYBi7JQi4iI5ECUG8pERKQDUxCIiMScgkBEJOYUBCIiMacgEBGJOQWBiEjMKQhERGJOQSAiEnMKAhGRmFMQiIjEnIJARCTmFAQiIjGnIBARiTkFgYhIzCkIRERiTkEgIhJzCgIRkZhTEIiIxJyCQEQk5hQEIiIxpyAQEYk5BYGISMwpCEREYk5BICIScwoCEZGYy2gQmNlpZvammZWb2ZQkr5uZTQtff93MhmeyHhERaapTpjZsZvnA3cApQAWwxMzmu/vKhMVGAYPCxwjg3vBn21v5JDz2HcjLB8sPf1rC87xGz/N2Lps13opVWrFOq7RyP7tzfVmrDXbv+lr7b5vFfbV4N63dz+787wQc+R04fnKbbzZjQQAcBZS7+zsAZjYXOAtIDIKzgIfd3YGXzay7me3v7h+0eTU9DoZjJkJtDXht8KitAa9p+Lw2fM1rds7D2ryclKw1+8pSfa2qDXbv+vRvG+wmi/+2rd5Xi3eUxdWy9J56DsrIZjMZBAcC7ydMV9D0r/1kyxwINAgCMxsPjAfo169f66rZb2jwEBGRBjJ5jiBZRDZuQ0VZBnef4e6l7l7aq1evNilOREQCmQyCCqBvwnQfYH0rlhERkQzKZBAsAQaZ2QAz2wO4AJjfaJn5wLfCq4dGAp9m5PyAiIiklLFzBO5ebWYTgaeBfGCmu68wswnh69OBBcBooBzYBlyaqXpERCS5TJ4sxt0XEPyyT5w3PeG5A9/NZA0iIpKe7iwWEYk5BYGISMwpCEREYs48q7fZ7zozqwTWtnL1nsDGNiynPdNnEdDnENDnEOjIn0N/d096I1a7C4JdYWZl7l6a6zp2B/osAvocAvocAnH9HHRoSEQk5hQEIiIxF7cgmJHrAnYj+iwC+hwC+hwCsfwcYnWOQEREmopbi0BERBpREIiIxFxsgqC58ZPjwszWmNkbZrbMzMpyXU82mdlMM/vIzJYnzNvXzJ4xs9Xhz31yWWM2pPgcbjazdeH3YpmZjc5ljZlmZn3NbJGZrTKzFWZ2XTg/dt8HiEkQJIyfPAoYAlxoZkNyW1VOnejuJTG8XvpB4LRG86YAf3X3QcBfw+mO7kGafg4Avwy/FyVhh5EdWTXwn+5+KDAS+G74OyGO34d4BAEJ4ye7+xdA3fjJEiPu/gLwcaPZZwEPhc8fAs7OZk25kOJziBV3/8Dd/xk+3wKsIhgmN3bfB4hPEKQaGzmOHFhoZkvDsaDjbr+6wZDCn71zXE8uTTSz18NDR7E4JAJgZoXA4cA/iOn3IS5BEGls5Jg41t2HExwm+66ZHZ/rgmS3cC8wECgBPgB+ntNqssTM9gIeB65393/nup5ciUsQaGzkkLuvD39+BDxBcNgszjaY2f4A4c+PclxPTrj7Bnevcfda4D5i8L0wswKCEJjt7n8IZ8fy+xCXIIgyfnKHZ2Z7mlnXuufA14Hl6dfq8OYDl4TPLwGezGEtOVP3yy80lg7+vTAzAx4AVrn7LxJeiuX3ITZ3FoeXw93JzvGT/zu3FWWfmR1E0AqAYJjS38XpczCzOcAJBF0NbwB+BMwDfg/0A94DznX3Dn0iNcXncALBYSEH1gBX1h0r74jM7DjgReANoDac/X2C8wSx+j5AjIJARESSi8uhIRERSUFBICIScwoCEZGYUxCIiMScgkBEJOY65boAkd2ZmdUQXGJYQNBR2UPAneGNVyIdgoJAJL3t7l4CYGa9gd8BexNcey/SIejQkEhEYbcc4wk6ZzMzKzSzF83sn+HjGAAzm2Vm9b3bmtlsMxtjZkPN7JWwv//XzWxQrt6LSCLdUCaShpltdfe9Gs37BBgMbAFq3X1H+Et9jruXmtlXgUnufraZ7Q0sAwYBvwRedvfZYVcn+e6+PatvSCQJHRoSabm63mwLgLvMrASoAQ4BcPfnzezu8FDSN4DH3b3azBYDPzCzPsAf3H11DmoXaUKHhkRaIOyvqYagV8pJBH31FAOlwB4Ji84CvglcCvwGwN1/B4wBtgNPm9nXsle5SGoKApGIzKwXMB24y4NjqnsDH4RXEF1M0KFhnQeB6wHcfUW4/kHAO+4+jaCXy6KsFS+Shg4NiaTXxcyWsfPy0VlAXbfF9wCPm9m5wCLgs7qV3H2Dma0i6N20zvnAODOrAj4Ebs149SIR6GSxSAaY2ZcJ7j8Y7u6f5roekXR0aEikjZnZycC/gF8rBKQ9UItARCTm1CIQEYk5BYGISMwpCEREYk5BICIScwoCEZGY+/+gyzSpqjYaygAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -184,7 +184,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -195,7 +195,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.7.12 ('hybrid')", "language": "python", "name": "python3" }, @@ -209,7 +209,12 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.12" + }, + "vscode": { + "interpreter": { + "hash": "be2cbe8f104d9ac6d9fabf42fbeb31737fdd025c22f444174f4d7205615d859d" + } } }, "nbformat": 4, diff --git a/Examples/BatteryWithCustomDispatch.py b/Examples/BatteryWithCustomDispatch.py index 001eac57..42a41363 100644 --- a/Examples/BatteryWithCustomDispatch.py +++ b/Examples/BatteryWithCustomDispatch.py @@ -4,7 +4,7 @@ Additional financial models, inputs, and outputs can be found at https://nrel-pysam.readthedocs.io/en/master/modules/Battery.html -Most recently tested against PySAM 3.0.1 +Most recently tested against PySAM 3.0.2 @author: brtietz """ diff --git a/Examples/FetchResourceFileExample.py b/Examples/FetchResourceFileExample.py index d28d59f8..b20f044c 100644 --- a/Examples/FetchResourceFileExample.py +++ b/Examples/FetchResourceFileExample.py @@ -10,7 +10,7 @@ To use the `FetchResourceFile` function, register an email address to receive a free API key at at https://developer.nrel.gov/signup/. -Most recently tested against PySAM 3.0.1 +Most recently tested against PySAM 3.0.2 @authors: skoeb, cpaulgilman ''' diff --git a/Examples/GenericSystemSingleOwnerExample.py b/Examples/GenericSystemSingleOwnerExample.py index 49d78354..76c457f3 100755 --- a/Examples/GenericSystemSingleOwnerExample.py +++ b/Examples/GenericSystemSingleOwnerExample.py @@ -3,7 +3,7 @@ """ Created on Wed Mar 4 13:47:58 2020 -Most recently tested against PySAM 3.0.1 +Most recently tested against PySAM 3.0.2 @author: frohro """ diff --git a/Examples/Marine energy examples/WaveFileReader_example.ipynb b/Examples/Marine energy examples/WaveFileReader_example.ipynb index 30f2b883..1bca2677 100644 --- a/Examples/Marine energy examples/WaveFileReader_example.ipynb +++ b/Examples/Marine energy examples/WaveFileReader_example.ipynb @@ -19,7 +19,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "3.0.1\n" + "3.0.2\n" ] } ], @@ -56,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -77,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -90,7 +90,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -101,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -147,7 +147,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.7.12 ('hybrid')", "language": "python", "name": "python3" }, @@ -161,7 +161,12 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.7.12" + }, + "vscode": { + "interpreter": { + "hash": "be2cbe8f104d9ac6d9fabf42fbeb31737fdd025c22f444174f4d7205615d859d" + } } }, "nbformat": 4, diff --git a/Examples/NonAnnualSimulation.ipynb b/Examples/NonAnnualSimulation.ipynb index a8709f1c..8330f259 100644 --- a/Examples/NonAnnualSimulation.ipynb +++ b/Examples/NonAnnualSimulation.ipynb @@ -6,7 +6,7 @@ "metadata": {}, "outputs": [], "source": [ - "# Most recently tested against PySAM 3.0.1\n", + "# Most recently tested against PySAM 3.0.2\n", "\n", "import pandas as pd\n", "import json\n", @@ -421,7 +421,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.7.12 ('hybrid')", "language": "python", "name": "python3" }, @@ -436,6 +436,11 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.12" + }, + "vscode": { + "interpreter": { + "hash": "be2cbe8f104d9ac6d9fabf42fbeb31737fdd025c22f444174f4d7205615d859d" + } } }, "nbformat": 4, diff --git a/Examples/PySAMWorkshop.ipynb b/Examples/PySAMWorkshop.ipynb index 3260dbe6..e2099d8f 100644 --- a/Examples/PySAMWorkshop.ipynb +++ b/Examples/PySAMWorkshop.ipynb @@ -10,7 +10,9 @@ "\n", "dguittet\n", "\n", - "https://sam.nrel.gov/software-development-kit-sdk/pysam.html" + "https://sam.nrel.gov/software-development-kit-sdk/pysam.html\n", + "\n", + "Most recently tested with Version 3.0.2" ] }, { @@ -19,7 +21,7 @@ "source": [ "## How to Get Started\n", "\n", - "64-bit Python 3.5-3.8 for Linux, Mac and Windows\n", + "64-bit Python 3.6-3.8 for Linux, Mac and Windows\n", "\n", "PyPi: \n", "```\n", @@ -28,7 +30,7 @@ "\n", "Anaconda:\n", "```\n", - "conda install -u nrel nrel-pysam\n", + "conda install -c nrel nrel-pysam\n", "```" ] }, @@ -131,27 +133,47 @@ "default(...)\n", " default(config) -> Pvwattsv8\n", " \n", - " Use default attributes\n", - " `config` options:\n", + " Load defaults for the configuration ``config``. Available configurations are:\n", + " \n", + " - *\"FuelCellCommercial\"*\n", + " \n", + " - *\"FuelCellSingleOwner\"*\n", + " \n", + " - *\"PVWattsBatteryCommercial\"*\n", + " \n", + " - *\"PVWattsBatteryHostDeveloper\"*\n", + " \n", + " - *\"PVWattsBatteryResidential\"*\n", + " \n", + " - *\"PVWattsBatteryThirdParty\"*\n", + " \n", + " - *\"PVWattsAllEquityPartnershipFlip\"*\n", + " \n", + " - *\"PVWattsCommercial\"*\n", + " \n", + " - *\"PVWattsCommunitySolar\"*\n", + " \n", + " - *\"PVWattsHostDeveloper\"*\n", " \n", - " - \"FuelCellCommercial\"\n", - " - \"FuelCellSingleOwner\"\n", - " - \"PVWattsBatteryCommercial\"\n", - " - \"PVWattsBatteryHostDeveloper\"\n", - " - \"PVWattsBatteryResidential\"\n", - " - \"PVWattsBatteryThirdParty\"\n", - " - \"PVWattsAllEquityPartnershipFlip\"\n", - " - \"PVWattsCommercial\"\n", - " - \"PVWattsCommunitySolar\"\n", - " - \"PVWattsHostDeveloper\"\n", - " - \"PVWattsLCOECalculator\"\n", - " - \"PVWattsLeveragedPartnershipFlip\"\n", - " - \"PVWattsMerchantPlant\"\n", - " - \"PVWattsNone\"\n", - " - \"PVWattsResidential\"\n", - " - \"PVWattsSaleLeaseback\"\n", - " - \"PVWattsSingleOwner\"\n", - " - \"PVWattsThirdParty\"\n", + " - *\"PVWattsLCOECalculator\"*\n", + " \n", + " - *\"PVWattsLeveragedPartnershipFlip\"*\n", + " \n", + " - *\"PVWattsMerchantPlant\"*\n", + " \n", + " - *\"PVWattsNone\"*\n", + " \n", + " - *\"PVWattsResidential\"*\n", + " \n", + " - *\"PVWattsSaleLeaseback\"*\n", + " \n", + " - *\"PVWattsSingleOwner\"*\n", + " \n", + " - *\"PVWattsThirdParty\"*\n", + " \n", + " .. note::\n", + " \n", + " Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.\n", "\n" ] } @@ -397,7 +419,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "3.0.1\n" + "3.0.2\n" ] } ], @@ -461,15 +483,15 @@ "output_type": "stream", "text": [ "batt_kw\tbatt_kwh\tavg_npv\n", - "10\t40\t-153954.84677918305\n", - "20\t80\t-150850.42788635375\n", - "30\t120\t-148314.47573871858\n", - "40\t160\t-146182.89481951922\n", - "50\t200\t-144544.3197297429\n", - "60\t240\t-143366.7813592981\n", - "70\t280\t-142359.27146820037\n", - "80\t320\t-141531.54877402788\n", - "90\t360\t-140815.95125104045\n" + "10\t40\t-154353.26606867867\n", + "20\t80\t-151244.90880068636\n", + "30\t120\t-148706.81120574806\n", + "40\t160\t-146575.43792525906\n", + "50\t200\t-144937.62361062184\n", + "60\t240\t-143763.20766567587\n", + "70\t280\t-142771.29847063648\n", + "80\t320\t-141931.5901346006\n", + "90\t360\t-141218.5235190545\n" ] } ], @@ -504,7 +526,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.7.12 ('hybrid')", "language": "python", "name": "python3" }, @@ -519,6 +541,11 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.12" + }, + "vscode": { + "interpreter": { + "hash": "be2cbe8f104d9ac6d9fabf42fbeb31737fdd025c22f444174f4d7205615d859d" + } } }, "nbformat": 4, diff --git a/Examples/ResidentialPVBatteryWithCustomDispatch.py b/Examples/ResidentialPVBatteryWithCustomDispatch.py index 99645239..bbdac731 100644 --- a/Examples/ResidentialPVBatteryWithCustomDispatch.py +++ b/Examples/ResidentialPVBatteryWithCustomDispatch.py @@ -8,7 +8,7 @@ * PV: https://nrel-pysam.readthedocs.io/en/master/modules/Pvsamv1.html * Battery: https://nrel-pysam.readthedocs.io/en/master/modules/Battery.html -Most recently tested against PySAM 3.0.1 +Most recently tested against PySAM 3.0.2 @author: brtietz """ @@ -29,6 +29,7 @@ # Default model does not include a weather file, so set that based on the command line path system_model.SolarResource.solar_resource_file = weather_file +system_model.SolarResource.use_wf_albedo = 0 # 24 hours of dispatch data, duplicated for each day. Would need to extend daily_dispatch for subhourly lifetime_dispatch = [] diff --git a/Examples/SAMsimPVWattsCommercialExample.py b/Examples/SAMsimPVWattsCommercialExample.py index bd1546b4..f1692bba 100755 --- a/Examples/SAMsimPVWattsCommercialExample.py +++ b/Examples/SAMsimPVWattsCommercialExample.py @@ -13,7 +13,7 @@ Run the simulations. Print the results. -Most recently tested against PySAM 3.0.1 +Most recently tested against PySAM 3.0.2 @author: frohro """ diff --git a/Examples/SelectingModuleandInverterExample/Modeling the NREL bifacial PV HSAT system.ipynb b/Examples/SelectingModuleandInverterExample/Modeling the NREL bifacial PV HSAT system.ipynb index 18c02049..773a4a2e 100644 --- a/Examples/SelectingModuleandInverterExample/Modeling the NREL bifacial PV HSAT system.ipynb +++ b/Examples/SelectingModuleandInverterExample/Modeling the NREL bifacial PV HSAT system.ipynb @@ -39,7 +39,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "id": "94ca714a", "metadata": {}, "outputs": [], @@ -49,7 +49,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "id": "9ae8b95a", "metadata": {}, "outputs": [], @@ -67,17 +67,17 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 3, "id": "42cd3c81", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'3.0.1'" + "'3.0.2'" ] }, - "execution_count": 5, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -106,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "id": "2d969682", "metadata": {}, "outputs": [], @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 5, "id": "706dcbfa", "metadata": {}, "outputs": [], @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "id": "1bd67ff4", "metadata": {}, "outputs": [ @@ -2352,7 +2352,7 @@ " 'subarray4_tilt': 20.0,\n", " 'subarray4_tilt_eq_lat': 0.0,\n", " 'subarray4_track_mode': 0.0,\n", - " 'system_capacity': 498.72},\n", + " 'system_capacity': 499.96},\n", " 'Shading': {'subarray1_shade_mode': 0.0,\n", " 'subarray2_shade_mode': 0.0,\n", " 'subarray3_shade_mode': 0.0,\n", @@ -2397,7 +2397,7 @@ " 'spe_voc': 36.0},\n", " 'CECPerformanceModelWithModuleDatabase': {'cec_a_ref': 2.57764,\n", " 'cec_adjust': 22.9092,\n", - " 'cec_alpha_sc': 0.003735,\n", + " 'cec_alpha_sc': 0.00373527,\n", " 'cec_area': 1.631,\n", " 'cec_array_cols': 10.0,\n", " 'cec_array_rows': 1.0,\n", @@ -2412,7 +2412,7 @@ " 'cec_height': 0.0,\n", " 'cec_i_l_ref': 6.05373,\n", " 'cec_i_mp_ref': 5.67,\n", - " 'cec_i_o_ref': 8.36043e-11,\n", + " 'cec_i_o_ref': 8.36e-11,\n", " 'cec_i_sc_ref': 6.05,\n", " 'cec_is_bifacial': 0.0,\n", " 'cec_module_length': 1.631,\n", @@ -2523,22 +2523,22 @@ " 'inv_num_mppt': 1.0,\n", " 'inv_pd_eff': 95.0,\n", " 'inv_pd_paco': 4000.0,\n", - " 'inv_snl_eff_cec': 98.2284,\n", - " 'inv_snl_paco': 59860.0,\n", + " 'inv_snl_eff_cec': 98.2262,\n", + " 'inv_snl_paco': 60033.0,\n", " 'inverter_count': 7.0,\n", " 'inverter_model': 0.0,\n", " 'mppt_hi_inverter': 800.0,\n", " 'mppt_low_inverter': 570.0},\n", - " 'InverterCECDatabase': {'inv_snl_c0': -2.06147e-07,\n", - " 'inv_snl_c1': 2.7e-05,\n", - " 'inv_snl_c2': 0.002606,\n", - " 'inv_snl_c3': 0.000501,\n", - " 'inv_snl_paco': 59860.0,\n", - " 'inv_snl_pdco': 61130.8,\n", - " 'inv_snl_pnt': 17.958,\n", - " 'inv_snl_pso': 97.214,\n", + " 'InverterCECDatabase': {'inv_snl_c0': -1.41816e-07,\n", + " 'inv_snl_c1': -3.03226e-05,\n", + " 'inv_snl_c2': 0.0010953,\n", + " 'inv_snl_c3': -0.000176618,\n", + " 'inv_snl_paco': 60033.0,\n", + " 'inv_snl_pdco': 61147.2,\n", + " 'inv_snl_pnt': 0.9,\n", + " 'inv_snl_pso': 148.792,\n", " 'inv_snl_vdcmax': 800.0,\n", - " 'inv_snl_vdco': 630.0,\n", + " 'inv_snl_vdco': 720.0,\n", " 'inv_tdc_cec_db': ((1300.0, 50.0, -0.02, 53.0, -0.47),)},\n", " 'InverterCECCoefficientGenerator': {'inv_cec_cg_c0': -3e-06,\n", " 'inv_cec_cg_c1': -5.1e-05,\n", @@ -4075,6 +4075,7 @@ " 'SystemCosts': {},\n", " 'FuelCell': {},\n", " 'PriceSignal': {},\n", + " 'Revenue': {},\n", " 'ElectricityRates': {'rate_escalation': (0.0,),\n", " 'ur_annual_min_charge': 0.0,\n", " 'ur_billing_demand_lookback_percentages': ((60.0, 0.0),\n", @@ -8295,7 +8296,7 @@ " 'Outputs': {}}" ] }, - "execution_count": 8, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -8316,7 +8317,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 7, "id": "78353bde", "metadata": {}, "outputs": [], @@ -8358,7 +8359,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 8, "id": "b4f77fb6", "metadata": {}, "outputs": [], @@ -8390,7 +8391,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 9, "id": "99d60505", "metadata": {}, "outputs": [], @@ -8428,7 +8429,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 10, "id": "3d4782b4", "metadata": {}, "outputs": [], @@ -8456,7 +8457,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 11, "id": "e42b5dfe", "metadata": {}, "outputs": [], @@ -8506,7 +8507,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 12, "id": "427886b3", "metadata": {}, "outputs": [ @@ -8719,7 +8720,7 @@ "[5 rows x 25 columns]" ] }, - "execution_count": 14, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -8743,7 +8744,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 13, "id": "8a0f40e3", "metadata": {}, "outputs": [ @@ -8905,7 +8906,7 @@ "Date 1/3/2019" ] }, - "execution_count": 15, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -8942,7 +8943,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 14, "id": "0b7dca82", "metadata": {}, "outputs": [], @@ -8966,7 +8967,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 15, "id": "ea1508c7", "metadata": {}, "outputs": [], @@ -8993,7 +8994,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 16, "id": "5c9a6b68", "metadata": {}, "outputs": [], @@ -9003,7 +9004,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 17, "id": "65800ef5", "metadata": {}, "outputs": [], @@ -9019,7 +9020,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 18, "id": "a73a41d3", "metadata": {}, "outputs": [ @@ -9084,7 +9085,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 19, "id": "3d6d1159", "metadata": {}, "outputs": [], @@ -9124,7 +9125,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 20, "id": "6291f981", "metadata": {}, "outputs": [], @@ -9136,7 +9137,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 21, "id": "c0a5c496", "metadata": {}, "outputs": [], @@ -9190,7 +9191,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 22, "id": "3fffb682", "metadata": {}, "outputs": [], @@ -9210,7 +9211,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 23, "id": "c96dab31", "metadata": {}, "outputs": [ @@ -9330,7 +9331,7 @@ "Fronius International GmbH: Fronius Symo 10.0-3... 3/1/2019 N " ] }, - "execution_count": 26, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -9343,7 +9344,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 24, "id": "bf2ee70e", "metadata": {}, "outputs": [], @@ -9372,7 +9373,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 25, "id": "61ddd7e0", "metadata": {}, "outputs": [], @@ -9390,7 +9391,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 26, "id": "06a89af6", "metadata": {}, "outputs": [], @@ -9467,7 +9468,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 29, "id": "728a923a", "metadata": {}, "outputs": [], @@ -9480,7 +9481,9 @@ "sam1.SystemDesign.__setattr__('system_capacity', system_capacity)\n", "sam1.Inverter.__setattr__('inv_snl_eff_cec', inv_snl_eff_cec)\n", "sam1.Inverter.__setattr__('inverter_count', inverter_count)\n", - "sam1.InverterCECDatabase.__setattr__('inv_tdc_cec_db', inv_tdc_cec_db)" + "sam1.InverterCECDatabase.__setattr__('inv_tdc_cec_db', inv_tdc_cec_db)\n", + "\n", + "sam1.SolarResource.use_wf_albedo = 0\n" ] }, { @@ -9501,7 +9504,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 30, "id": "a168d4a0", "metadata": {}, "outputs": [], @@ -9511,7 +9514,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 31, "id": "7c3a2fd2", "metadata": {}, "outputs": [], @@ -9533,7 +9536,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": null, "id": "d4a387d5", "metadata": {}, "outputs": [], @@ -9570,7 +9573,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 32, "id": "12639039", "metadata": {}, "outputs": [], @@ -9585,7 +9588,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 33, "id": "e50dbb64", "metadata": {}, "outputs": [], @@ -9606,7 +9609,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 34, "id": "8b44af3d", "metadata": {}, "outputs": [ @@ -9647,7 +9650,7 @@ " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 01:00:00\n", @@ -9656,7 +9659,7 @@ " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 02:00:00\n", @@ -9665,7 +9668,7 @@ " 0.000000\n", " 0.000000\n", " 0.006899\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 03:00:00\n", @@ -9674,7 +9677,7 @@ " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 04:00:00\n", @@ -9683,7 +9686,7 @@ " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 05:00:00\n", @@ -9692,7 +9695,7 @@ " 0.000000\n", " 0.000000\n", " 0.007147\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 06:00:00\n", @@ -9701,97 +9704,97 @@ " 0.000000\n", " 0.224083\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 07:00:00\n", - " 0.345452\n", + " 0.902086\n", " 10.865571\n", - " 0.010707\n", + " 0.011079\n", " 29.900648\n", " 9.146110\n", - " 0.076092\n", + " 0.2\n", " \n", " \n", " 2020-01-01 08:00:00\n", - " 5.178500\n", - " 62.652757\n", - " 0.072435\n", + " 4.996489\n", + " 62.650088\n", + " 0.072294\n", " 39.650845\n", " 45.072811\n", - " 0.209047\n", + " 0.2\n", " \n", " \n", " 2020-01-01 09:00:00\n", - " 25.680067\n", - " 422.656861\n", - " 0.486013\n", + " 23.494507\n", + " 422.494855\n", + " 0.484160\n", " 488.902252\n", " 92.055008\n", - " 0.228358\n", + " 0.2\n", " \n", " \n", " 2020-01-01 10:00:00\n", - " 20.231354\n", - " 138.576523\n", - " 0.166706\n", + " 20.827157\n", + " 138.608985\n", + " 0.167193\n", " 40.219421\n", " 139.379303\n", - " 0.190218\n", + " 0.2\n", " \n", " \n", " 2020-01-01 11:00:00\n", - " 13.085804\n", - " 136.268703\n", - " 0.157861\n", + " 14.439874\n", + " 136.272919\n", + " 0.158886\n", " 1.458432\n", " 146.268784\n", - " 0.180802\n", + " 0.2\n", " \n", " \n", " 2020-01-01 12:00:00\n", - " 12.631841\n", - " 138.742503\n", - " 0.160264\n", + " 14.248096\n", + " 138.744846\n", + " 0.161485\n", " 7.297924\n", " 143.908936\n", - " 0.177238\n", + " 0.2\n", " \n", " \n", " 2020-01-01 13:00:00\n", - " 31.616553\n", - " 418.836522\n", - " 0.482129\n", + " 30.730754\n", + " 418.795180\n", + " 0.481411\n", " 514.294067\n", " 142.040833\n", - " 0.207703\n", + " 0.2\n", " \n", " \n", " 2020-01-01 14:00:00\n", - " 29.414537\n", - " 546.281117\n", - " 0.625520\n", + " 27.117051\n", + " 546.118608\n", + " 0.623580\n", " 695.355957\n", " 87.838135\n", - " 0.224068\n", + " 0.2\n", " \n", " \n", " 2020-01-01 15:00:00\n", - " 5.466161\n", - " 453.734042\n", - " 0.503459\n", + " 4.860518\n", + " 453.669501\n", + " 0.502925\n", " 704.084229\n", " 39.767941\n", - " 0.250297\n", + " 0.2\n", " \n", " \n", " 2020-01-01 16:00:00\n", - " 0.463159\n", - " 23.392624\n", - " 0.022863\n", + " 1.010992\n", + " 23.392913\n", + " 0.023230\n", " 64.097702\n", " 13.479426\n", - " 0.086738\n", + " 0.2\n", " \n", " \n", " 2020-01-01 17:00:00\n", @@ -9800,7 +9803,7 @@ " 0.000000\n", " 0.118982\n", " 0.056990\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 18:00:00\n", @@ -9809,7 +9812,7 @@ " 0.000000\n", " 0.074463\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 19:00:00\n", @@ -9818,7 +9821,7 @@ " 0.000000\n", " 0.040330\n", " 0.011045\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 20:00:00\n", @@ -9827,7 +9830,7 @@ " 0.000000\n", " 0.000000\n", " 0.001485\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 21:00:00\n", @@ -9836,7 +9839,7 @@ " 0.000000\n", " 0.063725\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 22:00:00\n", @@ -9845,7 +9848,7 @@ " 0.000000\n", " 0.000000\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", " 2020-01-01 23:00:00\n", @@ -9854,7 +9857,7 @@ " 0.000000\n", " 0.052115\n", " 0.000000\n", - " 0.200000\n", + " 0.2\n", " \n", " \n", "\n", @@ -9869,16 +9872,16 @@ "2020-01-01 04:00:00 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "2020-01-01 05:00:00 0.000000 0.000000 0.000000 0.000000 0.007147 \n", "2020-01-01 06:00:00 0.000000 0.000000 0.000000 0.224083 0.000000 \n", - "2020-01-01 07:00:00 0.345452 10.865571 0.010707 29.900648 9.146110 \n", - "2020-01-01 08:00:00 5.178500 62.652757 0.072435 39.650845 45.072811 \n", - "2020-01-01 09:00:00 25.680067 422.656861 0.486013 488.902252 92.055008 \n", - "2020-01-01 10:00:00 20.231354 138.576523 0.166706 40.219421 139.379303 \n", - "2020-01-01 11:00:00 13.085804 136.268703 0.157861 1.458432 146.268784 \n", - "2020-01-01 12:00:00 12.631841 138.742503 0.160264 7.297924 143.908936 \n", - "2020-01-01 13:00:00 31.616553 418.836522 0.482129 514.294067 142.040833 \n", - "2020-01-01 14:00:00 29.414537 546.281117 0.625520 695.355957 87.838135 \n", - "2020-01-01 15:00:00 5.466161 453.734042 0.503459 704.084229 39.767941 \n", - "2020-01-01 16:00:00 0.463159 23.392624 0.022863 64.097702 13.479426 \n", + "2020-01-01 07:00:00 0.902086 10.865571 0.011079 29.900648 9.146110 \n", + "2020-01-01 08:00:00 4.996489 62.650088 0.072294 39.650845 45.072811 \n", + "2020-01-01 09:00:00 23.494507 422.494855 0.484160 488.902252 92.055008 \n", + "2020-01-01 10:00:00 20.827157 138.608985 0.167193 40.219421 139.379303 \n", + "2020-01-01 11:00:00 14.439874 136.272919 0.158886 1.458432 146.268784 \n", + "2020-01-01 12:00:00 14.248096 138.744846 0.161485 7.297924 143.908936 \n", + "2020-01-01 13:00:00 30.730754 418.795180 0.481411 514.294067 142.040833 \n", + "2020-01-01 14:00:00 27.117051 546.118608 0.623580 695.355957 87.838135 \n", + "2020-01-01 15:00:00 4.860518 453.669501 0.502925 704.084229 39.767941 \n", + "2020-01-01 16:00:00 1.010992 23.392913 0.023230 64.097702 13.479426 \n", "2020-01-01 17:00:00 0.000000 0.000000 0.000000 0.118982 0.056990 \n", "2020-01-01 18:00:00 0.000000 0.000000 0.000000 0.074463 0.000000 \n", "2020-01-01 19:00:00 0.000000 0.000000 0.000000 0.040330 0.011045 \n", @@ -9887,34 +9890,34 @@ "2020-01-01 22:00:00 0.000000 0.000000 0.000000 0.000000 0.000000 \n", "2020-01-01 23:00:00 0.000000 0.000000 0.000000 0.052115 0.000000 \n", "\n", - " alb \n", - "2020-01-01 00:00:00 0.200000 \n", - "2020-01-01 01:00:00 0.200000 \n", - "2020-01-01 02:00:00 0.200000 \n", - "2020-01-01 03:00:00 0.200000 \n", - "2020-01-01 04:00:00 0.200000 \n", - "2020-01-01 05:00:00 0.200000 \n", - "2020-01-01 06:00:00 0.200000 \n", - "2020-01-01 07:00:00 0.076092 \n", - "2020-01-01 08:00:00 0.209047 \n", - "2020-01-01 09:00:00 0.228358 \n", - "2020-01-01 10:00:00 0.190218 \n", - "2020-01-01 11:00:00 0.180802 \n", - "2020-01-01 12:00:00 0.177238 \n", - "2020-01-01 13:00:00 0.207703 \n", - "2020-01-01 14:00:00 0.224068 \n", - "2020-01-01 15:00:00 0.250297 \n", - "2020-01-01 16:00:00 0.086738 \n", - "2020-01-01 17:00:00 0.200000 \n", - "2020-01-01 18:00:00 0.200000 \n", - "2020-01-01 19:00:00 0.200000 \n", - "2020-01-01 20:00:00 0.200000 \n", - "2020-01-01 21:00:00 0.200000 \n", - "2020-01-01 22:00:00 0.200000 \n", - "2020-01-01 23:00:00 0.200000 " + " alb \n", + "2020-01-01 00:00:00 0.2 \n", + "2020-01-01 01:00:00 0.2 \n", + "2020-01-01 02:00:00 0.2 \n", + "2020-01-01 03:00:00 0.2 \n", + "2020-01-01 04:00:00 0.2 \n", + "2020-01-01 05:00:00 0.2 \n", + "2020-01-01 06:00:00 0.2 \n", + "2020-01-01 07:00:00 0.2 \n", + "2020-01-01 08:00:00 0.2 \n", + "2020-01-01 09:00:00 0.2 \n", + "2020-01-01 10:00:00 0.2 \n", + "2020-01-01 11:00:00 0.2 \n", + "2020-01-01 12:00:00 0.2 \n", + "2020-01-01 13:00:00 0.2 \n", + "2020-01-01 14:00:00 0.2 \n", + "2020-01-01 15:00:00 0.2 \n", + "2020-01-01 16:00:00 0.2 \n", + "2020-01-01 17:00:00 0.2 \n", + "2020-01-01 18:00:00 0.2 \n", + "2020-01-01 19:00:00 0.2 \n", + "2020-01-01 20:00:00 0.2 \n", + "2020-01-01 21:00:00 0.2 \n", + "2020-01-01 22:00:00 0.2 \n", + "2020-01-01 23:00:00 0.2 " ] }, - "execution_count": 43, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -9929,7 +9932,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 35, "id": "deb3ee05", "metadata": {}, "outputs": [], @@ -9940,13 +9943,13 @@ }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 36, "id": "4c0cdea0", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD4CAYAAADy46FuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABGFklEQVR4nO2dd3gc1dX/P0d9JcuSZUuymivu3Zhiim2KDYRiegxJXkIKISEhvCFAeJP8gAQSUoCEACGmBRJCNQQIgeCAqbYx7jY2rpIluUqyJMvqqz2/P2ZWXsuSvCtpd3bk+3meeWbm7p2Z745Ge+bee+45oqoYDAaDwdARMU4LMBgMBkN0YwyFwWAwGDrFGAqDwWAwdIoxFAaDwWDoFGMoDAaDwdApxlAYDAaDoVPinBYQDgYMGKBDhgxxWobBYDC4ihUrVpSrambb8l5pKIYMGcLy5cudlmEwGAyuQkR2tFduup4MBoPB0CmOGAoRSReRl0XkCxHZKCLTRSRDRBaKyBZ73S+g/u0islVENonIOU5oNhgMhmMVp1oUfwTeVtXRwCRgI/AT4F1VHQG8a+8jImOBecA44FzgERGJdUS1wWAwHINEfIxCRPoCM4CvA6hqE9AkInOBWXa1p4H3gduAucDzqtoIFIrIVuBEYElEhRsMhl5Lc3MzpaWlNDQ0OC0lIiQlJZGfn098fHxQ9Z0YzB4GlAFPicgkYAXwQyBbVXcDqOpuEcmy6+cBSwOOL7XLDkNErgOuAxg0aFD41BsMhl5HaWkpqampDBkyBBFxWk5YUVUqKiooLS1l6NChQR3jRNdTHDAV+LOqTgFqsbuZOqC9v9oRIW9Vdb6qTlPVaZmZR3h3GY5RTHRkQzA0NDTQv3//Xm8kAESE/v37h9R6csJQlAKlqvqpvf8yluHYKyI5APZ6X0D9goDj84FdEdJqcDH3vvUFF/zpYxqaW5yWYnABx4KR8BPqd424oVDVPUCJiIyyi84CNgCvA9fYZdcAr9nbrwPzRCRRRIYCI4BlEZRscCnLCiv4fNcB/vDfLU5LMRiOSmxsLJMnT2bcuHFMmjSJ+++/H5/PB8D777+PiPDGG2+01r/gggt4//33AZg1a1ZY5445NeHuB8CzIpIAbAeuxTJaL4rIN4Fi4AoAVf1cRF7EMiZe4AZVNa+IhqOyo6KOuBhh/ofbOG/8QCYVpDstyWDoEI/Hw+rVqwHYt28fV199NdXV1dx1110A5Ofnc88993DhhRdGXJsj7rGqutoeT5ioqheraqWqVqjqWao6wl7vD6h/j6oOV9VRqvqWE5oN7uJAQzMttRXcdkIcmamJ3PLyGhq95v3C4A6ysrKYP38+Dz30UOs426RJk0hLS2PhwoUR19MrQ3gYDDvK67g7/inOX/Mp5x13FeetP5OH3tvKzXNGHf1gwzHNXW98zoZdB3r0nGNz+3LHheNCOmbYsGH4fD727dvXWvazn/2Mn/3sZ8yePbtH9R0NE8LD0CspKj/I9JjP8fbJIX/b83zS51Z2fPh31pdWOS3NYAiatl57p59+OgAfffRRRHWYFoWhV1JduoH+UkPTjLshbyLJr9/Eg3sf5LO/fkLTdx4nIXOY0xINUUqob/7hYvv27cTGxpKVlcXGjRtby3/6059yzz33EBcXuZ9v06Iw9EoSdlqOcQnDToW8qcR9ZxFfTP4po5s3EPPnk+HD34O3yWGVBkP7lJWVcf311/P973//CFfWOXPmUFlZyZo1ayKmxxgKQ68ks3Il1TFp0P84qyAmltEX38pvhz/Df72T4L1fwl9Ohx2LnRVqMNjU19e3useeffbZzJkzhzvuuKPduj/96U8pLS2NmDbT9WTolRzXsJ6SvpNIa/M29r+XzWLOA8JSzzruaHoSeeo8mPJVmP1LSM5wSK3BAC0tHXvlzZo1i1mzZrXuX3TRRYeNX/jnU4QL06Iw9DoOlpdQwB6qM6cd8VlGSgK/nDuev5aNYv6E5+DUH8Ka5+GhabD6H2BCfhgMR2AMhaHXsX/jhwDIoJPb/fy8CTmcPyGH+xaVsnniLfCdD60uqn9+F56+EMo2R1KuwRD1GENh6HW0FC2hThPpN/zIFoWfu+aOo09SHLe8vBbvgDFw7dtw4R9hz1r48ynw3j3gbYygaoMhejGGwtDrSNn7Gat8xzE4K63DOgP6JHLnReNYU1LFEx8XQkwMHP91+P4KGH8pfPhbePws07owGDCGwtDbaKxhwMHNbIgfS3JC574aF07MYc7YbO5buJmt+w5ahX0y4dL5cNULcGAXzJ8JK58xYxeGYxpjKAy9i5JlxOBjT/qUo1YVEe6+ZDye+FhufXkNLb4AYzDqXLj+E8ifBq//AF7+BtRXhU+3wRDFGENh6F0UL8VLDE3ZU4OqnpWaxJ0XjWVlcRVPfVJ4+Id9c+Br/4Sz7oANr8Gjp0Pxp+2ex2DoLv4w4/6lqKio2+f8wx/+QF1dXbfPYwyFoVfh3bGYDb7B5GQHn+Xw4sl5nDU6i9+/s4mi8trDP4yJhdN/BN/4D4jAU+fBh78Dn4lEa+hZ/GHG/cuQIUNaP1PV1twUoWAMhcHQFm8TMaXLWe4bxZD+KUEfJiLcc8kE4mNjuHXBWny+dsYjCk6A6z+CcZfAe3fDM3OtMQyDIUwUFRUxZswYvve97zF16lRKSkq45ZZbGD9+PBMmTOCFF14ArMl2s2bN4vLLL2f06NF85StfQVV58MEH2bVrF2eccQZnnHFGt7SYmdmG3sOetcS0NLDMN5of9E8O6dCBaUn8/IKx3PryWv62dAfXnDLkyEpJaXDZ4zD8TPj3LZYb7dxHYPSXeka/ITp46yewZ13PnnPgBDjv3k6r+EN4AAwdOpQHHniATZs28dRTT/HII4+wYMECVq9ezZo1aygvL+eEE05gxowZAKxatYrPP/+c3NxcTj31VD755BNuvPFG7r//fhYtWsSAAQO6Jd+0KAy9h+IlAKzwjQypReHniuPzmTkyk9+8/QXFFR0010VgylesSXppBfD8VZbRaA4+Ub3B0B6BXU+vvvoqAIMHD+bkk62Jox9//DFXXXUVsbGxZGdnM3PmTD777DMATjzxRPLz84mJiemx8Y1ATIvC0HsoXkp5Qh7EZ5OSGPqjLSL8+tIJzHngQ25bsJZnv3USMTEdJKEfcBx867/w7i9gyUNQ9Alc/iRkje7mlzA4zlHe/CNJSsqhF562uSkCSUxMbN2OjY3F6/X2qA7TojD0DlSheAnrYscytAutCT+56R5+ev4YlmyvYPIv3uFrT3zKfe9s4t2Ne6k42GamdlwinHMPfOVlOLgX5s+C5U+ZOReGsDBjxgxeeOEFWlpaKCsr48MPP+TEE0/s9JjU1FRqamq6fW3TojD0Dsq3QF0FH8eOYHCI4xNtmXdCAX0S41i8rYLVJVU8vGgr/vHtggwPkwv6MbkgnckF6YzL7UvSiNnw3cXw6nfgXzfB3s/h/N93/zsZDAFccsklLFmyhEmTJiEi/Pa3v2XgwIF88cUXHR5z3XXXcd5555GTk8OiRYu6fG3prDnjVqZNm6bLly93WoYhkqx4Gt64kTMa7+PyObO44YzjeuzUdU1e1pVWs7qkqnXZXW2NScTFCGNy+lqGI78vczbfQZ9tbyK3l1gtDoMr2LhxI2PGjHFaRkRp7zuLyApVPSJImiMtChEpAmqAFsCrqtNEJAN4ARgCFAFXqmqlXf924Jt2/RtV9T8OyDZEM8VL8HoGUNgwsEsD2Z2RnBDHScP6c9Kw/q1lew80HDIcxVW8srKUvy1t4ZyYwfwloRF2rYIOotcaDG7Dya6nM1S1PGD/J8C7qnqviPzE3r9NRMYC84BxQC7wXxEZqapmxpPhEMVLKO83BSql211PwZDdN4lzxg3knHEDAWjxKVv3HeSRNxOg5AErc54xFIZeQjQNZs8Fnra3nwYuDih/XlUbVbUQ2Ap0PoJjOLY4sBsqi9jqmQDAkAE926IIhtgYYdTAVMYeN4wtvjy8RZ9EXIPBEC6cMhQKvCMiK0TkOrssW1V3A9jrLLs8DygJOLbULjsMEblORJaLyPKysrIwSjdEHSVLAViloxnQJ5E+XXCN7Sly0z185huFlHxqwnwYeg1OGYpTVXUqcB5wg4jM6KRue47sR4zAq+p8VZ2mqtMyM4OP82PoBexYAvHJLKnLZUgEup06IzfdwzLfaGKbaizvJ4OhF+CIoVDVXfZ6H/AqVlfSXhHJAbDX++zqpUBBwOH5gAmyYzhE8RLIP4Ft+xsd6XYKJM82FK26DIZeQMQNhYikiEiqfxuYA6wHXgeusatdA7xmb78OzBORRBEZCowAlkVWtSFqaTgAe9fTnHcSew80Ot6iyExNZF9MJtUJA2GHGacwBI8/zPj48eO58MILqaqqclpSK060KLKBj0VkDdYP/puq+jZwLzBbRLYAs+19VPVz4EVgA/A2cIPxeDK0UvoZqI9daZMBZwayA4mNEXLSk9iSNN7qEuuF85QM4cEf62n9+vVkZGTw8MMPd/ucPRXKI+Kjfqq6HZjUTnkFcFYHx9wD3BNmaQY3UrwEJJbN8aOATT0+h6Ir5KZ5WFE7lmm1/4X926H/cKclGVzG9OnTWbt2LQDbtm3jhhtuoKysjOTkZB577DFGjx7NG2+8wd13301TUxP9+/fn2WefJTs7mzvvvJNdu3ZRVFTEgAED+Mc//tFtPSaEh8HdFC+FnIlsq7Z8HiIxh+Jo5KV7+KDiOL4D1nwKYyhcxW+W/YYv9nccFqMrjM4YzW0n3hZU3ZaWFt59912++c1vAlYYjkcffZQRI0bw6aef8r3vfY/33nuP0047jaVLlyIiPP744/z2t7/lvvvuA2DFihV8/PHHeDyeHtFvDIXBvXiboHQ5TLuWovJaBvRJIDUp3mlV5KZ7eO3gADS9P7JjMUz9mtOSDC7An4+iqKiI448/ntmzZ3Pw4EEWL17MFVdc0VqvsdEKTllaWsqXv/xldu/eTVNTE0OHDm2tc9FFF/WYkQBjKAxuZvca8NbDoJMp+riWwVHQ7QSQ189Diw8ack7EU7zYaTmGEAn2zb+n8Y9RVFdXc8EFF/Dwww/z9a9/nfT0dFavXn1E/R/84Af86Ec/4qKLLuL999/nzjvvbP0sMDx5TxBNM7MNhtDwu58Omk5ReV1UdDuB1aIAKM84HiqLrJnjBkOQpKWl8eCDD/L73/8ej8fD0KFDeemllwArJ8WaNWsAqK6uJi/Pmnv89NNPd3i+nsAYCoN7KV4KGcOpT+jPngMN3cpD0ZPkpScBsD15olVgWhWGEJkyZQqTJk3i+eef59lnn+WJJ55g0qRJjBs3jtdes2YO3HnnnVxxxRWcfvrp3U51ejRM15PBndiJihj1JYr3W2lLBzvsGusnJ81qUWzQwcxM6GMNaI+/zGFVhmjn4MGDh+2/8cYbrdtvv/32EfXnzp3L3LlzjygP7ILqKUyLwuBOyjdD/X4YdDKF5bUAUdOiSEmMIz05np0HmqHgRGs+hcHgYoyhMLgT//jE4FPYUWEZikFRMkYBlovsrqoGGHQK7NsA9ZVOSzIYuowxFAZ3UrwUUjIhYxhFFbVkpCSQ5nHeNdZPbrqHXVX1MHg6oFD8qdOSDIYuYwyFwZ0UL7ESA4lQVF7neIyntuSle9hZWQ95x0NMvIn75AJ6Y1rojgj1uxpDYXAfdqIiBk0HYEdFbVSE7ggkNz2JmkYvB1riLGNhIslGNUlJSVRUVBwTxkJVqaioICkpKehjjNeTwX0EzJ9oaG5hV3WD48EA2+KfS7Grqp6+g6fD4j9BUx0kRFfLx2CRn59PaWkpx0rSs6SkJPLz84OuH5ShEJGMIKr5VLUq6CsbDF2leCnEp8DAiRSX266xUdj1BJahGD3oFPj4Adi5HIZ2lqPL4BTx8fGHhcAwHE6wLYpd9tJetjk/scCgbisyGI5G8WLInwaxca2usdHW9eQ3FDurGmDSiYBY8ymMoTC4kGANxUZVndJZBRFZ1QN6DIbOaai2UozOuBWg1TU22gzFgD6JxMeKNaDtGQwDx1uGwmBwIcEOZk/voToGQ/ewExVZbqdQVFFHv+R40pKjxzUWICZGyEmzXWTBmk9R+hm0NDsrzGDoAkEZClVt6Ik6BkO3KV4KEgt50wAoKq+NuoFsP7npSYcMxeDp0FxnRbw1GFzGUQ2FiMwWkcdEZLK9f13YVRkMHbFjCeRMhMQ+1m5FXdR1O/nJS08+vEUBpvvJ4EqCaVF8D7gF+KqInAlMDqsig6EjvE2W55D9o2u5xtZHnceTn7z0JPYcaKC5xQep2ZAx3MynMLiSYAxFmapWqeqPgTnACWHWZDC0z+414G2wZmQDJfvrUIWhUdv15MGnsPeA3Ss7eLplKHw+Z4UZDCESjKF407+hqj8BngmfHIOhE1on2lmGoqjCP4cieg0FYAUHBKslVF8JZT2bj9lgCDdHNRSq+lqb/T9196IiEisiq0TkX/Z+hogsFJEt9rpfQN3bRWSriGwSkXO6e22DiyleYnXf9MkCrIFsiJ7w4m3J63do0h0Ag+1xCpPIyOAyQor1JCLTRORVEVkpImtFZJ2IrO3CdX8IbAzY/wnwrqqOAN619xGRscA8YBxwLvCIiMR24XoGt+PzWR5Pgw95YRdV1JIeha6xfnLT/JPubEPRbwik5pj8FAbXEWpQwGeBp4DLgAuBC+x10IhIPnA+8HhA8VzAn/T1aeDigPLnVbVRVQuBrcCJIWo29AYqttiJig4Zih0VdVHb7QTgSYglIyXhkKEQsfTvWGxl6DMYXEKohqJMVV9X1UJV3eFfQjzHH4BbgcARvWxV3Q1gr7Ps8jygJKBeqV12BCJynYgsF5Hlx0pgr2MKv1tpgKEoLK9laJR6PPk5bC4FWN1PNbugKtR/G4PBOUI1FHeIyOMicpWIXOpfgj1YRC4A9qnqimAPaaes3VcxVZ2vqtNUdVpmZmawkgxuISBREUCj1+8aG70tCrC6n44wFGC6nwyuItQw49cCo4F4DrUIFHglyONPBS4SkS8BSUBfEfk7sFdEclR1t4jkAPvs+qVAQcDx+VjBCQ3HGsVLrNaEWO8O0e4a6yevn4dPtpajqogIZI6BpHRrQHvyVU7LMxiCItQWxST7rf0aVb3WXr4R7MGqeruq5qvqEKxB6vdU9avA68A1drVrAL+n1evAPBFJFJGhwAhgWYiaDW7ngN1VE9DtVBSl4cXbkpfuobaphQMNXqsgJsZy7zUtCoOLCNVQLLU9kXqae4HZIrIFmG3vo6qfAy8CG4C3gRtUtSUM1zdEM23mT4Dl8QTRFzW2Lf65FDsr23Q/VWyBg/s6OMpgiC5C7Xo6DbhGRAqBRqwxBFXViaFeWFXfB963tyuAszqodw9wT6jnN/QiAhIV+SmqqCXNE0+/lAQHhR2dwEx3Y3P7WoX+uE/FS2DsXIeUGQzBE2yGu+nAUqy5DAZDZCleAgUnQOyhx9UKBhjd3U5geT0B7KoOaFHkTII4j9X9ZAyFwQUE2/V0DbAC+A1wBtDYDfdYgyF4/ImKBh2e7qQwisOLBzIgJZGEuJhDcykA4hKsDH07PnFOmMEQAsHmo7heVacCdwL9gL+KyBIR+ZWIzDCzpQ1hY/N/rERFw85oLWr0trCrKvpdY8FKYJSblnQo3pOfwafC3vXQcMAZYQZDCIQ0mK2qX6jqA6p6LnAm8DFwBfBpOMQZDKxfAGkFkH8oaHFpZT0+xRVdT2CNU+ysrDu8cPB0ywCWGCc+Q/QTlKEQkZtE5AQRae0kVtV6Vf23qv5AVaeFT6LhmKVuP2x9F8ZdYrmV2viDAbqh6wksQ3FEiyL/BIiJMwECDa4gWK+nfOCPwGg7COBi4BNgiaruD5c4wzHOxjfA1wzjLzus2B9ePNpdY/3kpXvYW2MlMIqPtQ1eQgrkTDYZ7wyuINgxih+r6inAQOD/gP3AN4D1IrIhjPoMxzLrF1hhxXMmHVa8o6KWvklx9IvSqLFtyUv3oAp7qtuOU0yHnSug2aSbN0Q3oU648wB9gTR72YUZnzCEg5q9UPSR1ZqQw0N++T2eRNoLBRZ9tE66C/R8Ams+RUsT7FrpgCqDIXiCnUcxHysnRA2WYVgM3K+qlWHUZuhFeFt8NLconoQgHeQ2vGYN9rbpdgJrDsWkgvSeFRhGWudSHGEo7JnmOxYfChZoMEQhwbYoBgGJwB5gJ1awvqowaTL0Qu5+cyNfevAjmrxB5otevwCyxkHW6MOKm7w+Sivroj68eCCBs7MPIzkDssaacQpD1BPsGMW5wAnA7+2im4HPROQdEbkrXOIMvYe1pVUUltfy8orSo1euKoGSpTD+yAj2pZV1+DR682S3R1J8LAP6JLCzrecTWBMJS5aBz4QwM0QvQY9RqMV64N/AW1heT8Ox0poaDJ3i91R6eNHWo7cqPn/VWrdjKHb4PZ5c4hrrx3KRrT/yg8GnQFMN7FkXeVEGQ5AEO4/iRhF5XkRKgA+xUqBuAi4FMsKoz9ALqK5rZn9tE6cdN4CdVfVHb1WsXwC5U1uTFAVS6J9D4aKuJ7ASGB0xmA2HQpMUm7Djhugl2BbFEOBl4ERVHaaqX1PVR1R1jaoG2elsOFYptEOC/8/0wUwZlN55q6JiG+xe3e4gNliusamJcWREedTYtvhbFNo2V3ZaHqQPNnGfDFFNsGMUP1LVl/15rQ2GUPDPpB46IIUfnjWCnVX1LFjZQativZ0scdwl7X5cWFHnKtdYP7npSdQ1tVBd33zkh4NPsSLJtjUiBkOUEGzX01EdvYOpYzg2KSyvRQQKMpKZOTKTyQXpPPReB62K9Qus+QVpee2ea0dFbdRntWuP/H4dzKUAq/uprhwqtkZYlcEQHMF2PY0RkbWdLOuAAeEUanAvheW15KV7SIqPRUS46ewOWhV7N0DZxnYHsQGaW3yUVta7JnRHIIdcZNvxfBp8qrU23U+GKCXYWE+jj14F499naJeiilqGBngpzRyZySS7VXHZ1HwS4uz3lfULQGJg7MXtnqe0sp4Wn7rO4wkCU6LWHflh/+GQkml1Px3/9cgKMxiCINgxih1BLEE4yBuONVTVCrkR0Apot1WhahmKoTOhT2a75zqUJ9t9XU/9UxJIiIthV9t4T2CFKBk03USSNUQtocZ6MhhCYn9tEzUN3iNaAbPsVkWrB9SuVVBZ2KG3E7gvvHggIkJeegcusmANaFcVQ7V53zJEH8ZQGMKKf97DsDY/7v5WRWllPa+sLLVaEzHxMOaCDs+1o6KOPolx9HeZa6yfvI4m3QEMnWGt//N/4G2MnCiDIQhCMhRi8VUR+X/2/iAROTHEcySJyDIRWSMin/tDgIhIhogsFJEt9rpfwDG3i8hWEdkkIueEcj2DsxR20gqYNTKTSflpPPzeZnT9K3Dc2eDpd0Q9P0W2x5PbXGP95KYnsbOyA0ORPQ7m3GMFQ/z7ZVaucIMhSgi1RfEIMB24yt6vAR4O8RyNwJmqOgmYDJwrIicDPwHeVdURwLv2PiIyFpiHFb32XOARk6PbPRRV1BIbI63uoYFYrYqRZFevQWp2ddrtBFbXkxu7nfzkpnvYV9NIo7cDv49Tvg+XPgbFS+GpL8EBM23JEB2EaihOUtUbgAYAO8x4SP0Adsyog/ZuvL0oMBd42i5/GrjY3p4LPK+qjapaCGwFQmrFGJyjqLyOgn6eQ5nd2jBrVCbXpq2kgQSaR3TcWDzkGuu+gWw/fs+nvdWddC1NvBK+8iJUFsETc6B8S2TEGQydEKqhaLbf5hVARDKBkEN4iEisiKwG9gELVfVTINs/89teZ9nV84CSgMNL7TKDC9hefrhrbFvE18JsXcJ/W6bwyvqqDuvtrKzH61NXzqHwk99RAqO2DD8Tvv4meOstY1HyWQTUGQwdE6qheBB4FcgSkXuAj4FfhXpRVW1R1clYubhPFJHxnVRvr0P6iFgHInKdiCwXkeVlZWWhSjKEAVVlR8VRuouKPiKhsYJ16Wfxp/e20tzS/ntHq2usy7ueoJ28FO1WngzffAc86fD0hbD5P2HVZjB0RkiGQlWfBW4Ffg3sBi5W1Ze6enFVrQLexxp72CsiOQD2ep9drRQoCDgsHysFa9tzzVfVaao6LTOzfT98Q2TZV9NIXVNLpy0K1i+AhFSmnzPvkAdUO/jDi7sxfIefgWlWprujtij8ZAyDb7wDmaPguatg5d/CqM5g6JiQ3WNV9QtVfVhVH1LVjaEeLyKZIpJub3uAs4EvgNeBa+xq1wCv2duvA/NEJFFEhgIjgGWhXtcQeQ6FBO/AUHibYOPrMPp8Zo4bxMT8tA5bFYXltaQkxJLZJzGcksOKlcAoMbgWhZ8+mVY31LCZ8Pr34cPfmeCBhogTqnvs0/4feXu/n4g8GeI1c4BFIrIW+AxrjOJfwL3AbBHZAsy291HVz4EXgQ3A28ANqmrChbiAwoCose2y7T3LDXT8ZYfNq3h15c4jqlrBAN0XNbYteelJwbco/CT2gategIlfhvfuhn//2GTEM0SUYGM9+ZlodxcBlteTiEwJ5QSquhY44hhVrQDO6uCYe4B7QpNqcJqi8loSYmNa++aPYP0Ca97EsFkAnDEqy2pVLNrCJVPzDvOU2lFRx5icvhFQHV7y+nnYtKcm9APjEuDiRyF1IHzyRzi4z3KljU/qeZEGQxtC7XqKaTMRLoPQjY3hGKGwvJZB/ZOJjWmnFdBUB5v+DWMusn4EseZV/PCsEZTsP7xV4W3xUby/ztXjE35y0zzsqmo4MoFRMMTEwOxfwDm/trrs/n4p1Ff1uEaDoS2hGor7gCUi8ksR+SWwGPhdz8sy9AaKKmo7Hp/Y8g40HTxikt2Zo7OYkGe1KvxjFbuqGlzvGusnN91DfXMLlXXtJDAKlunfg8uegJJl8NR5cOAI3w6DoUcJ1evpGaw82Xvt5VK7zGA4DJ9PKaqoY1hmBz/u6xdAShYMOe2wYv9YRcn+el5dZbUqCnuBa6yfkFxkO2PC5fDVBVBVAo/PhrJNPaDOYGifUAezE7HCbvQFMoDL/XGfDIZAdlXX0+T1td8KaDhgtSjGXQIxR0Zj8bcqHrI9oHa4OLx4W/KCnXQXDMNmwrVvQksTPHu5CSZoCBuhdj29hhVSwwvUBiwGw2EUlVvzHoYMaOfHfdNb4G3oMLaTf6yieH8dr67aSVF5HckJsWSmutc11k9evx5qUfjJmQSXPGqFKF9pGveG8BDqQHS+qp4bFiWGXoW/u6hd19j1CyCtAPJP6PD4s8ZkMT6vLw+9t5UhA1J6hWssQL/keJLiYzqOItsVhp9ppVP98Hcw+SuQ4P6WlyG6CLVFsVhEJoRFiaFXUVhWiyc+luzUNu6bdfth27t2t1PHj5+IcNNZIyneX8eHm8t6RbcTWN8rN93DruoeNBQicObP4OBe+OzxnjuvwWATqqE4DVhh54VYKyLr7IlzBsNh+HNHxLR1jd34Bvi8Rw0pDodaFdA7BrL9WJnu2kmJ2h0GnwLDz4KPH7DGgAyGHiRUQ3EeVgiNOcCFwAX22mA4jKKOosauXwAZw62+9aNgjVWMBGB4Zp+elugYnWa66w5n/gzq98PSP/f8uQ3HNKG6x+4ADgDZwOCAxWBoxT9B7ohWQM1eKPrIak0EOd5w9pgsnvnGiVwwMScMSp0hN91DWWcJjLpK3lQYfQEsecjq4jMYeohQ3WO/BXwI/Ae4y17f2fOyDG6m1M4dcUSLYsNroL6gup38iAgzRmaSFN97khr651Ls7unuJ4AzfgqNNbD4wZ4/t+GYJdSupx8CJwA7VPUMrJhNJvmD4TA69HhavwCyxkHWaAdURQ+56dYAf1i6n7LHWpPxPv2L1YIzGHqAUA1Fg6o2gDX5TlW/AEb1vCyDmylqL7x4VQmULIUJwbcmeis9OumuPWbdbk2++/iB8JzfcMwRqqEotcOM/xNYKCKv0U4SIcOxTVF5LX0S4xjQJyCd+uevWutxlzojKooYmJaEiBXDKiz0Hw6Tr4blT0B1+4mgDIZQCHUw+xJVrVLVO4GfA08AF4dBl8HF+PNkHzZBbvsiyB4PGUOdExYlJMZZCZjC0vXkZ+Zt1vqD34bvGoZjhpAz3PlR1Q9U9XVVbepJQQb3U9Q2T7Yq7FwJecc7JyrKyE33hK/rCSC9AI6/Flb9HSq2he86hmOCoAyFiHxsr2tE5EDbdXglGtxEk9fHzsp6hgbOpN6/HRqqjKEIIGxzKQI5/WaITYAPfhPe6xh6PUEZClU9zV6nqmrftuvwSjS4ieL9dfi0zUzqnSutdd5UZ0RFIbl2StQuJTAKltRsOOk6WPsi7As5vb3B0EpQQQFF5Eedfa6q9/eMHIPbaTdP9q6VEOeBzDEOqYo+8tI9NHp97K9ton+fMEbFPfUm+OxJWPQr+PLfwncdQ68m2DGKVHuZBnwXyLOX64Gx4ZFmcCNF7RmKnSutkB2xJmuun0MJjMLk+eQnOQOm32ClTt21OrzXMvRagu16uktV7wIGAFNV9WZVvRk4HsgPp0CDuyisqCU9OZ70ZNs1tsULu9eYbqc25LbOpagL/8Wm3wCefvDe3eG/lqFXEqrX0yAg0MupCRgSyglEpEBEFonIRhH5XER+aJdniMhCEdlir/sFHHO7iGy1o9aeE6JmQwQpKm+TJ7tsI3jrIdcYikAOTboLc4sCIKmv1QW1dSEULw3/9Qy9jlANxd+AZSJyp4jcAXwKhJpWywvcrKpjgJOBG0RkLPAT4F1VHQG8a+9jfzYPGAecCzwiIr0n8E8vo7C8lmFmIPuopCfH44mPDb/nk58Tv23lKH/vbstd2WAIgVAn3N0DXAtUAlXAtar6qxDPsVtVV9rbNcBGrPGOucDTdrWnOTSRby7wvKo2qmohsBU4MZRrGiJDfVMLu6sb2ng8rYCkdMgY5piuaEREyOsXARdZPwkpMOPHVvTe7e9H5pqGXkNXJtwVAkuAVUCqiMzo6sVFZAhWYMFPgWxV3Q2WMQGy7Gp5QEnAYaV2mSHK2LHfjvHU1uMpd0rQYcWPJcI+6a4tx38d+uabVoUhZBwLMy4ifYAFwE2q2tmkvfZ+YY54ykXkOhFZLiLLy8pMQFsnaPV48o9RNNfD3g1mol0H5KUnRa5FARCXCDNvhZ3LYfPbkbuuwfU4EmZcROKxjMSzqvqKXbxXRHLsz3OAfXZ5KVAQcHg+7QQiVNX5qjpNVadlZmaGKsnQA2z3R40dYM/K3r0WtMWMT3RAbpqH8oNNNDT3cAKjzph8tdUN+N7d4PNF7roGVxPxMONiRYp7AtjYZqLe68A19vY1wGsB5fNEJFFEhmKlYl0Wom5DBCgqr2VAn0RSk+Ktgl32QLbxeGqXvH52AqPqCHg++YmNt8KQ710PG/4ZuesaXI0TYcZPBb4GnCkiq+3lS8C9wGwR2QLMtvdR1c+BF4ENwNvADaoawVcwQ7AUldcxdEBAjKedKyE1F/r2njSmPcmhSXcR7H4CK8Ng5hhrtnaLN7LXNriSoKfK2i2BG1W1CrhTRBYBaVg/3kGjqh/T/rgDwFkdHHMPcE8o1zFEnsKKWmaNDOj227nCdDt1QutcisoIG4qYWDjzp/DCV2HtCzDlK5G9vsF1BN2iUCt62T8D9k2YcUMrNQ3NlNU0MjTTHsiur4L92yyPJ0O7ZPe1EhhF1PPJz+gLIGcyfHAveM2/sKFzQu16WioiJ4RFicHV7KiwQlG0ejztWmWtjcdThyTExZCVGuYERh0hAmf+HKqK4WMT09PQOaEaijOAJSKyTUTWisg6EVkbDmEGd1FY3mYOxc4V1tq0KDolL93DrmoHDAXAcWfBxC9b+SqKPnFGg8EVhBrO87ywqDC4Hv8ciiGBLYqM4eBJd06UC8hN9/D5Lodyf4nA+fdB6Wfwyrfh+o+taLMGQxuCblHYg9k+Vd3RdgmjPoNLKCyvJSctCU+CHYbLpD4Nijx7drbP59BM6cRUuPxJOLgPXrvBzNg2tEuXB7MNhkAKKwKixh7YDTW7jMdTEOSme2jy+qiodXBAOXcKzP4FbPo3LHvMOR2GqMUMZht6hKLy2kPjE2aiXdA4NpeiLSd/F0acA+/81JpRbzAE0JXB7KVmMNsQSFVdE5V1zYcm2+1cCRILOROdFeYC8qLFUIjAxY9Acn94+RvQeNBZPYaoItTB7HM5NFnOdGYagMA82X2sgp0rIHssxHscVOUODiUwcthQAKQMgEvnw9MXwVu3WobDYCBIQyEiNbRvGMQu79uTogzuoqjCbyiSrcHQXatg7FyHVbmDvp44UhJio8NQAAydATNugQ9/C8NmwcQrnVZkiAKCMhSqmhpuIQb3UlheR4xAQUYy7N8ODVXG4ylIRITc9AgmMAqGmbdZCY7+9b/W37H/cKcVGRymK4mLDIbDKCqvJTfdQ2JcrEl92gWsTHcRjCB7NGLj4NLHICbOGq8wIT6OeYyhMHSbwvJahgZ6PMV5rOikhqCIuhYFQHoBzH0Ydq+Gd+9yWo3BYYyhMHQLVaUo0FDsXAk5k6y3UkNQ5KV7qKhtor4pyqLnj7kATvg2LHkINr/jtBqDgxhDYegWFbVN1DR6rcl2LV7YvcZ0O4VIbnoSgHMxnzpjzt2QPR7+eb01kdJwTGIMhaFbtObJHpACZRvBW28m2oVIblqUzKVoj/gkuPwpK//5K98GX5S1egwRwRgKQ7fYHmgo/BFjTYsiJPwpUaPSUABkjoQv/c7yhDIhyY9JjKEwdIui8lriYoT8fh5rfCIpHTKGOS3LVWT3TSJGYGc0eT61ZfJXYPzlsOjXULzUaTWGCGMMhaFbFFXUUpCRTFxsjOXxlDvFCgdhCJr42Biy+yZFPiVqKIjABQ9Y3lALvgV1+51WZIggxlAYukVheR1D+idDUx3s3WAm2nWRqHSRbUtSX2u8omYPvP4DE5L8GMIYCkOXOeQa2wf2rANtMeMTXSTXyUx3oZA3Fc6+A774F3z2uNNqDBEi4oZCRJ4UkX0isj6gLENEForIFnvdL+Cz20Vkq4hsEpFzIq3X0DF7DzRS39xixXgyocW7RV66h91VDc4lMAqFk2+A4WfBf++0Eh4Zej1OtCj+ihWFNpCfAO+q6gjgXXsfERkLzAPG2cc8IiKxkZNq6IzD8mTvXAGpudA3x2FV7iQvPYmmFh/lBxudlnJ0YmLgvN9YLrMf/MZpNYYIEHFDoaofAm1HwuYCT9vbTwMXB5Q/r6qNqloIbAVOjIROw9HxR40d0j/FTn1qWhNdJTeawo0Hw4ARMO1aWP4UlG9xWo0hzETLGEW2qu4GsNdZdnkeUBJQr9QuM0QBheW1JMTFkJvYCPu3WR5Phi4x2E4j+7clO2hxQ/cTWFFm4z1WF5ShVxMthqIj2vOzbPe/SESuE5HlIrK8rKwszLIMYBmKwRnJxO5ZZRUYj6cuc1xWH3541gheWbWTG59bRZPX57Sko9MnC069yRrYNnMrejXRYij2ikgOgL32j5CVAgUB9fKBXe2dQFXnq+o0VZ2WmZkZVrEGi9Y82f7Q4qZF0S3+d/ZIfnb+GN5ct5vr/rY8+oIEtsf070GfgfDOz427bC8mWgzF68A19vY1wGsB5fNEJFFEhgIjgGUO6DO0ocWn7NhfZ4Xu2LUKMoaDJ91pWa7nW6cP495LJ/DB5jKueXIZNQ3NTkvqnIQUOPOnULoMNr7utBpDmHDCPfY5YAkwSkRKReSbwL3AbBHZAsy291HVz4EXgQ3A28ANquqC16zez66qepq8vkMxnky3U48x78RBPDhvCiuLK7n6sU/ZXxvliYMmXW3lH/nvnSbJUS/FCa+nq1Q1R1XjVTVfVZ9Q1QpVPUtVR9jr/QH171HV4ao6SlXfirReQ/v4PZ5GeA5CzW7j8dTDXDgpl/n/czyb99bw5b8sYU91FMeBio2D2XdZaXBX/NVpNYYwEC1dTwaX4Q8vPrx5k1VgJtr1OGeOzubpb5zIrqp6rvjLYoor6pyW1DEj5sCQ0+GDe6Gh2mk1hh7GGApDlygsr8MTH0v6/nUgsZAz0WlJvZKTh/XnH98+mZoGL5c/upjNe2ucltQ+IjDnl1BXAZ/80Wk1hh7GGApDlygsP8iQASnIrpWQPdbypzeEhUkF6bxw3XQAvvyXJawrjdI39twpMOEKWPIwVO90Wo2hBzGGwtAliirqGNrfY4cWN91O4WbUwFReun46KYlxXPXYUj7dXuG0pPY58+egPlj0K6eVGHoQYygMIeNt8VGyv44pKfut/mjj8RQRBvdP4aXrp5PdN5H/eXIZizZFYUC+foPhxOtg9bOw93On1Rh6CGMoDCFTWlmP16dMiNluFRiPp4iRk+bhxe9M57isPlz3zHLeXLvbaUlHcvrNVu6Khf/PaSWGHsIYCkPI+KPGDm3cBHEey4feEDH690nkuetOZnJBOj94biUvflZy9IMiSXIGzLgFtv4Xti1yWo2hBzCGwhAyfkORUbUOciZZfvSGiNI3KZ5nvnESp43I5NYFa3l40dboCiZ4wrchbZDVqvC5IG6VoVOMoTCETFFFLemJQty+9abbyUE8CbE89j/Hc/7EHH73n03Mffhj1pRUOS3LIj4Jzvp/sGctrHvJaTWGbmIMhSFkCstrOT29HPHW90qPJ1WlqqGKivoKqhurqWmqoa65jsaWRrw+LxpFwe8S42J56KopPHT1FPYdaOTiRz7hZ/9cR3VdFMSIGn+Z1eJ875fQHMUzyw1HxfQZGEKmsLyWG/rugGpc26Lw+rzsPribkpqS1qX0YGnrdr238wRCMRJDrMRaS0wsMRJDnMQRIzFkp2Rz9qCzmT14NkPShoT9u4gIF0zMZebITO5fuJmnFxfx9vo9/N+XxnDJlDxE2ovWHwFiYmD2L+GZi2DZX+DUHzqjw9BtJJrejnqKadOm6fLly52W0Stp9LYw5udv889BLzKx+n24rcialRuFNLU0UVhdSGlN6WEGoaSmhN21u2kJiC+ZEJNAfmo+BakFFKQWkNsnl7iYOHzqw+vz4lMfLdpCi6/FWtvbPvXhVW9rvRZtYUvlFtaUrQFgRL8RzB48mzmD5zA8fXhEvvf6ndX87J/rWV1SxcnDMrj74vEcl5UakWu3y7NXQPGn8MPV1kC3IWoRkRWqOu2IcmMoDKGwdV8NZ9//Iauzf0F6/xz4n386LamVA00HWL1vNav2rWLl3pWsL19Pk+9QNNO0xDQK+liGINAo5Kfmk5WcRYz0XE/snto9vFv8Lu8UvcOqfatQlGFpwzh78NnMGTyHkf1GhvVN3+dTnv+shN+8/QV1TV6+ffowfnDmCDwJDqSc37sBHj0VTvounGsm4kUzxlAYeoR3Pt/DjX9bzEbPt5DTbrIGLB1iT+0eVuxdYRmGfSvZWrkVRYmTOMYOGMvUrKmM6z+Ogr6WQeib0NcRnWV1Zbxb/C4Ldyxk+d7l+NTHoNRBzB48m9lDZjM2Y2xQRkNVqW6sZl/9PsrqythXt499dfsoqy+j2ddM/6T+ZCZnMsAzgExPJv09/ZGWvjzwThELVpaS38/DXReN46wx2RH41m147fuw5nn4wXLoNyTy1zcEhTEUhh5h/ofbePut13kl8U6Y9w8YfX5ErutTH1urtrJqr2UUVu1bxe5aa7JZSnwKkzMnMyVrClOzpzJ+wHg8cdEZe6qivoL3St5jYdFClu1ZRou2kNcnj9mDZzMzfyaKWj/+dWXsrdtLWX2AQagrO6yF5KdfYj9iY2LZ37Afnx7pitonvg8pcf3YfyCRurpkBqUN5LyxIxjWL4fslGymZE0hMTYxvF/8wC54cKr1vFz+RHivZegyxlAYeoTbX1lHxrrHuUX/Cj/6AvrmhO1aXp+XD0s/5NWtr7Ji7wpqmqzIqZmeTKZmT7UMQ9ZURvYbSWyMA10q3aSqoYpFJYtYuGMhS3YvwevzHva5J85DdnI2WclZZCZnkuXJat3OTs4mMzmTTE8mCbEJALT4WqhsrKSivoKy+jLK68tbl7K6MsrqytleuZuqpv1ITGPrdfom9OXC4RdyyXGXMCpjVPi+8Ht3w4e/g28vcq0TRG/HGApDj3DV/KVcX/FrZiZsgpu/CMs1yuvLeWXLK7y0+SX21O4hKzmL0/NOZ2r2VKZmTSWvj4OePGHiQNMBlu9ZTnJ8MlnJWWR5suiT0Ccs1yqtrOPnr6/k/a3bKMg+yKBBX7Ch+hOafc2M7z+eS0deynlDzuv56zccgAenQOZo+Pq/otYJ4ljGGApDj3Dyr97ldW4ka9hkmPdsj51XVVldtprnvniOhTsW4vV5OTnnZOaNmsfMgpnExRhP7p5m4Ya93P3mBnZU1DEkC44fu51tDe+xrXornjgPcwbP4bKRlzE5c3LPGeZlj8G/fwxjLoKZt8LACT1zXkOP0JGhMP99hqDZuPsAdQfKyUoqhdxre+Scdc11vFn4Ji988QKbKjeRGp/KvFHzuHLUlQxNG9oj1zC0z+yx2ZwxKpO31u/h0Q+2seD9YWT3HcOV05pp9Cxl4Y63eW3bawzpO4TLRlzGhcMvpL+nf/cuevy1UFsGS/8MG1+HkedZcaHyTQTiaMa0KAydUl3fzOtrdvHy8hLWlFYzK249f437FXztVRh+ZpfPu716Oy9uepHXtr7GweaDjOo3inmj5/GloV8iOT65B7+BIRhUlY+2lPPoB9tYvK2CvklxXHVSNnkFm1lY/Aary1YTJ3HMKpjFpSMu5ZTcU7o3LlRfBcvmw9JHoL4Shp1hGYwhp/bYdzKEjul6MgSNz6d8sq2cl5aX8p/P99Do9TF6YCpXTCvgqoYXSf74V9ZEO0+/kM7r9Xl5v+R9nt/0PJ/u/pS4mDjmDJ7DVaOvYlLmpF437uBWVpdU8ej72/jPhj0kxMZw5bQCzp0Ci/e9xRvb3qCysZLs5GzOGXIOEzMnMnHARAamDOza36+xBpY/CYv/ZLU0Bp0CM2+xDId5HiKOqw2FiJwL/BGIBR5X1Xs7q28MRdcorqjj5RUlLFi5k51V9fRNiuPiKXlccXwB4/P6Wj8Ez10NZV/AjSuPer6DTQfZWrWVzZWb2Vy5mUUli9hXt4+BKQO5cuSVXDri0u53ZRjCxrayg8z/YDuvrCrFp3D+hBy+dfog9nhX8MqWV/hsz2et7roDPAOYMGACEzMnMmHABMb1HxfaYHhzPax8xsq3fWCnlQxrxi0w8lxjMCKIaw2FiMQCm4HZQCnwGXCVqm7o6BhjKIKnrsnLW+v28NKKEpZu348InHbcAK6cVsDssdkkxbfpXrhvNAw5DS57vLXI6/NSfKCYzVWb2bx/M1uqtrClcgs7Dx7Km5wSn8LkrMlcOfJKZuTPMIPTLmLvgQae/LiQvy/dQW1TCzNHZvLdWcOZOiiVzVWbWVe+jnVl61hXvo6iA0UACMKwtGFMyJzQakCOSz/u6H93byOseQ4+uh+qdkD2BJhxszX47UIXaLfhZkMxHbhTVc+x928HUNVfd3RMVw2F19uMz4HY+aqKAqqgKP4/SeC+Ym/b5bT9s4n14iWtu3JoW2jd87+cbSwt4+3PPmfFpkISvFUMS21mRn4ckzOhj9bgq6+Ehip8DdVovbWmoYrmlkYKT7meLQNHsblyM1sqt7Ctalvrm2WsxDKk7xBG9BvByH4jW9c5KTmma8nlVNc18/dPd/DUJ4WUH2wiu28iaZ54UpPi6ZMYR2pSHImJDTTF7qBGt7Pfu5U9jZupbzkAQGJMEsPTRzMmYyzpiWkkxibaSxKJsYkkxSaREJdAUmwiiTHxpBR9ROrqZ0iqLCIhfSix028kZswlSEx8j3yfwMfx0H/LkZ+1pb2fTD3iH7KDawZcp+012ruk/6ytvwl2Sbsa7LKkhATi4rpmVN1sKC4HzlXVb9n7XwNOUtXvd3RMVw3F9x+bxQcJUZq0PgoZ4BlgGYP0EYzMGMnIfiMZmjY0/LN8DY7S0NzCgpWlrCqu4mCDl5rGZmvd4KWm0UtNQzMNzf4XLkXi9xPrKSHWU0xsUikxSbuQGG+n1zB0ndsH/g9Xn3NLl451s3tsZ4b2UCWR64DrAAYNGtSlC03LPYu0fau6dGx3kSM27LcPaadOELRr/vXQG0l8fDyZ6f1ISEyBeA8xCclIfAoxCSkQG0+MxFitEpHW7RiJIUZiKEgtYES/EWQkmUigxyJJ8bF85aTBfOWkwR3WaW7xBRiPZmoavK1GpabBi9fnpdnXSLOvEa820exrstfWvtfXRLM22usmvC2NpNZuJrFpb/i/YDDvzt1tHB/lGtreJTq4prT5kRhVcEI3hLWPGwxFKVAQsJ8P7GpbSVXnA/PBalF05UJfP//nXTnMYDC0IT42hn4pCfRLSXBaiqEHcEOGu8+AESIyVEQSgHnA6w5rMhgMhmOGqG9RqKpXRL4P/AfLPfZJVf3cYVkGg8FwzBD1hgJAVf8N/NtpHQaDwXAs4oauJ4PBYDA4iDEUBoPBYOgUYygMBoPB0CnGUBgMBoOhU6J+ZnZXEJEyoBYod1pLkAzAPVrBXXrdpBXcpddNWsFdep3SOlhVM9sW9kpDASAiy9ubih6NuEkruEuvm7SCu/S6SSu4S2+0aTVdTwaDwWDoFGMoDAaDwdApvdlQzHdaQAi4SSu4S6+btIK79LpJK7hLb1Rp7bVjFAaDwWDoGXpzi8LQA4jJNmTAPAfHOq41FCKS45aHV0RyRcQ12XxEZIKI3AagUd7kFJGBTmsIBRHJdlpDsIjIKBE5D6L/OQAQkcEi0rVkNBFGRJKc1hAKrjMUIpIoIn8GPgDmi8ilTmvqCBHpIyL3A28Bj4vI1XZ5VN53sfg98A8gTkR6JudkGBARj4j8AXhbRB4QkblOa+oM+1l4AHhLRP7iguf2PuA5IOoTStjPwgNY/2dPi8h37fKo+z8TkRQRmQ/cISL97bKof+GNuhsZBBcBOao6EvgX8AsRGemwpiMQkVzgr1j/aKcCrwH+t/TIJ+YOjkwgBzheVe9R1WanBXXCDUCmqk4G/gn8SkSOc1RRB4hIHvA3rP+3L2G95PzWUVEdICJ9gVeA01R1qqq+5rSmILgRyFXVscCdwE0Qff9ndiviF8BpQCpwBrijteYKQyEifQJ2FSgDsB/it4HviEi6A9KOQERS7c1q4GZV/b6qHgSygX+KSKZdLyrufYBegDRghKo2icg5IvJjETnHKW1t8T8HIhIL9MN6UUBVP8CaiX+HiKQ5p7BDGoDHVfWHqroHeBFYLSITHdbVHg1YRu1zABE5VUTmiMgIez8qnluwngNbjwBr7eJc4E0RGe2cssMRkWR7sxH4MzAD2AIcLyLD7TpR3aqImj96e4jIcSLyIvBXETlfRFKAeuCA/cYO8DtgKjDOPsaRG95WKxCvqjtEJFlEfgj8BEjBeojHqqrPyYcjQO9T9r3NAA4Cn4jIL4BbsX40/iAi17Qx1k5pfVpELrCLa4CTRGSSbXy/AEYCw+xjnLy3o0TkURHxAKhqBfB+QJUCLJ2bHJB3GO1obQLeA1RE9gC/AmYDH4jIuCh4blv1qmqL3WrYBQwSkY+A32A9G/8VkdkOax0hIs9gdZFfBKSq6lZVLQcWAUm4pFURtYbCflP4A7AO6w3nAuDnwH+B0cAkEUlQ1b1YTfn/BWdueButz2B1L/zS/rgeeEtVC1T1x1gtoD86pRXavbfnA/+nqruxklnNAH6kqg9h3fML6X46+Z7Q+gzWc/AL4D6sVsTPgIVY/envAN8FR+/taVj39DrgR3aZqGptQLUEoEhVGx2Q2Ep7Wm12Y41T/V5VZ6rqLcDjWPc8qu6tzd+xXmx2Ayeq6h3Ar4H/dVDr17C6m5dgGd4LgYv9n6vqWmADME5EjndCY0ioalQuQB7WAxAbsL8MOAm4AngK66EAy3A8hvUWHy1alwAX2fvCoTkrw7D61D1Rdm8/xTIQk7B+eL8RUH8RVh9wNGmdY+8PBTLs7cuwfhzw328H9I4BxgPHAVuxgqy1rTMP+J29/W1gYpRoHRLwWVKbuiOwxi6SIqkxGL32/1ce8AAwzC5LxGrF9XdI6xzgwoD93wDX29tx9noQ1ovO97B6HGY4dW+PtkRViyKw/1NVdwLTsJq9/v1HgLtU9SVgM3C7iNwMPA9s1wgOvgah9c8EtHJUVUVkOvAksFhV6yOlNQS9P1fVNVizQi8Ukdvt5vx6YH8UaX0Y+D97v1BV94vIDKy3zBK7PGJvkm30bgS2qupWLIP7i7Z1gLOA/iKyALgaq4svGrTeZdcRVW0IOOYU4AlgaWB5tOi1/9Z7sIzZt0Xk68B/gM+wxgqd0PoO8I6I+NNNN2CNn6CqXntdDPQB7sZ6eYjY/1jIOG2psN4Efg8kBJT53x6/DnwcUJ6ONRB4AtZbxOlY3ThfjVKtz9kaU7Ae6lXAlVF8b18ATrH3xwE3A/OiVOtz2G9gWC2JLcDVTt7bgM/8rcdUrDffs9p8/hbWYPHl0awV60fsNmA18OVov7fARKy38zedfG47qPcscGmbshOwusu+Eql72+Xv6ejF4Xqst9WH7Icyps3nsVj9ezcFlD0NjHebVmCym/S6SSuQHk16/Zrt9U3Av+ztq7BecGa5RGscMNJF9zai3blBao0BkoFXsTwfBTgHSIyk1m5/V0cuat9Q4E8d/TBx6M3heKAQayDoq8AKYKyLtEb0h/cYu7fjou3ettVtb1didYE8QYT6+HtIa8R+eHtA72P2D3LYx6ZC0WrXy8F60fkG1jjrPVgeT46Mo3XpO0f0Yvago/9mY3myZGN1c/wOq4shsI7/zWEuVtfNh1gTgYxWF+t1k9au6A2om2Z/vhY41Wh1t95uaL0Q8GF1m58eqXvbk0tEosfak6DuA8ZiebB8oqprROTXWJZ1HLAA64dgNfCMqn4hIjEa4dmVbtLqNr1u0todvQHHx2C9ca5te+5jWavb9Hb3ubXnf31VVf8Sbq3hIlJeT7dj9TN/E8jA6tMDa8LRNOAl+ybeBgwEssCxKfhu0gru0usmrdBFvX5U1RepH16XaQV36e3yc+ufQ+NmIwFhNhRi4XcPe1ZVN6rq3YBPRG7FmjyzHZgCoKrrsJKKO/H26BqtbtPrJq1u0+smrW7T2xNaNRJdNhEgrIZCLbxY/sOBsw+/C/wYa/DpbiBTrAigr9maCsOpy+1awV163aQV3KXXTVrBXXrdpDXsdGeA42gLh7wDpmIF8vMEfPYEcIu9nYHlC//NcOrpLVrdptdNWt2m101a3abXTVrDvfTIYLZYSW5agD9qwOxoe8BJVLVFRJ4H6lX1WvuzHwN7VPXv3RbQS7W6Ta+btLpNr5u0uk2vm7Q6RjctbhJWKIWdwHJgUsBngb7OQ7Fir3xk15+H5dZ2aXeu31u1uk2vm7S6Ta+btLpNr5u0Or1090YLVlKeWKxwxPdjhdL1fz4QK+LnUiAemIw16eQd4LKIflEXaXWbXjdpdZteN2l1m143aXV6CfXGxmEN4hQElCXZ6xysKKNzODSbdg7wXUe+mIu0uk2vm7S6Ta+btLpNr5u0RtsSyk2eAKwE9gLPtfnMf2Nvwopjf0RIauzZtRF6IFyj1W163aTVbXrdpNVtet2kNRqXUNxjy4EHsXI/DBGROYA/LaWfhwEPME1EZorIJXYdUdWWEK7VXdyk1W163aTVbXrdpNVtet2kNfoI0Sp77PV3gPcDLTKHXMm+jRV7fStwsVMW0E1a3abXTVrdptdNWt2m101ao23p8g3HSul5Y5vySVjp/e51+ou5Uavb9LpJq9v0ukmr2/S6SWu0LN252ecAn9rb47GiOfbFodSDvUWr2/S6Savb9LpJq9v0uklrNCxdDuGhqv8BKkWkESsfbKKqHlDViq6eM1y4SSu4S6+btIK79LpJK7hLr5u0RgNdMhQiEiMid2MlO/++qp6vqvt6VlrP4Cat4C69btIK7tLrJq3gLr1u0hotdDmEh4icB7ynqo09K6nncZNWcJdeN2kFd+l1k1Zwl143aY0GIpK4yGAwGAzuJVKJiwwGg8HgUoyhMBgMBkOnGENhMBgMhk4xhsJgMBgMnWIMhcFgMBg6xRgKg8FgMHSKMRQGg8Fg6BRjKAwGg8HQKf8fC3TdmuGZO5oAAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAD4CAYAAADy46FuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABGDklEQVR4nO2dd3gc1fW/36NebElWsaxiW664IhsbY1OMKTYQMJ3EQAipBAKBfEkgISE/IIEEEkpCgBBqgBAINXRCM8UNN9wLLiqW5aJi2bK6tOf3x8zKa1mSdyXtzo583+eZZ2bu3pn57Gi0Z+69554jqorBYDAYDB0R4bQAg8FgMIQ3xlAYDAaDoVOMoTAYDAZDpxhDYTAYDIZOMYbCYDAYDJ1iDIXBYDAYOiXKaQHBID09XfPy8pyWYTAYDK5i2bJl5aqa0ba8VxqKvLw8li5d6rQMg8FgcBUiUtReuel6MhgMBkOnOGIoRCRFRF4RkQ0isl5EpolIqoh8KCKb7HU/n/q3iMhmEdkoImc4odlgMBiOVJxqUfwVeF9VRwH5wHrgV8DHqjoC+NjeR0TGAHOAscCZwCMiEumIaoPBYDgCCfkYhYgkAdOB7wKoaiPQKCLnATPsas8AnwK/BM4DXlTVBqBARDYDU4CFIRVuMBh6LU1NTZSUlFBfX++0lJAQFxdHbm4u0dHRftV3YjB7KFAGPC0i+cAy4AYgU1V3AKjqDhHpb9fPARb5HF9ilx2EiFwFXAUwaNCg4Kk3GAy9jpKSEvr27UteXh4i4rScoKKqVFRUUFJSwpAhQ/w6xomupyjgGODvqjoRqMHuZuqA9v5qh4S8VdXHVHWyqk7OyDjEu8twhGKiIxv8ob6+nrS0tF5vJABEhLS0tIBaT04YihKgRFW/tPdfwTIcu0QkC8Be7/apP9Dn+FygNERaDS7m7vc2cM7f5lHf1OK0FIMLOBKMhJdAv2vIDYWq7gS2ichRdtFpwDrgTeBKu+xK4A17+01gjojEisgQYASwOISSDS5lcUEFa0v38ZePNjktxWA4LJGRkUyYMIGxY8eSn5/P/fffj8fjAeDTTz9FRHjrrbda659zzjl8+umnAMyYMSOoc8ecmnD3U+B5EYkBtgLfwzJaL4nID4Bi4BIAVV0rIi9hGZNm4FpVNa+IhsNSVFFLVITw2OdbOGvcAPIHpjgtyWDokPj4eFasWAHA7t27ueyyy9i7dy933HEHALm5udx1113Mnj075NoccY9V1RX2eMLRqnq+qu5R1QpVPU1VR9jrSp/6d6nqMFU9SlXfc0KzwV3sq29if81+fnp8Bhl9Y7nplZU0NJv3C4M76N+/P4899hgPPfRQ6zhbfn4+ycnJfPjhhyHX0ytDeBgMReW1/C7qn1z81SLOGXMNZy6ZyEOfbObns446/MGGI5o73lrLutJ9PXrOMdlJ3DZ7bEDHDB06FI/Hw+7du1vLbr31Vm699VZmzpzZo/oOhwnhYeiVFJbv5+TIlRAZw7DVDzAv6VaWffYWa7bvdVqaweA3bb32TjrpJAC++OKLkOowLQpDr6Ry+yYGyB4aT7mXyLRBpL/zC/7d+Hs+emYeI6/9BzHJmU5LNIQpgb75B4utW7cSGRlJ//79Wb9+fWv5b37zG+666y6iokL3821aFIZeSfR2yzEuZujxMPIMIq/9kq2jrmZ6w+d4HpwES58C26PEYAg3ysrKuPrqq7nuuusOcWWdNWsWe/bsYeXKlSHTYwyFoVeSvmc5NZIIGaOtgpgEhs65hz8PeYoVTQPh7f+DJ2fCjtD9sxkMnVFXV9fqHnv66acza9Ysbrvttnbr/uY3v6GkpCRk2kzXk6FXMrxuNcV9xjM64uB3oWsu+Qaz7k/g0viF3LjnWeSxGTDlx3DKryEuyRmxBgPQ0tKxV96MGTOYMWNG6/6555570PiFdz5FsDAtCkOvY3/lToZSwt6MYw/5LDUxht+fP56/lU/myQkvw6TvwpePwsNTYM1rYEJ+GAyHYAyFoddRscH2CBk0td3Pzxqfxdnjs/jTZ7v4+tjfwQ8/gsQMeOV78K+LoHJrCNUaDOGPMRSGXkdzwQIaNIqU4VM6rHPHeWPpExfFTa+sojnrGPjRXDjzHti2GB6eCp/eA82NIVRtMIQvxlAYeh2JO5ewUocxKDO1wzrpfWK5/dyxrNxWxZPzCiAyCqZeDdctgVFnw6d/sAa7K7aEULnBEJ4YQ2HoXTTWkr5/PeuixpAQ07mvxuyjs5g1JpP7Pvyazbv3W4VJWXDJ0/Ct56GqCB49CVb824xdGI5ojKEw9C62LyNKm9mRPOGwVUWEOy8YR3x0JDe/spIWj48xGH0OXD0fsifCf6+BV38I9WZWt+HIxBgKQ++ieBEehPoBk/2q3r9vHLefO4blxVU8Pb/g4A+Tc+DKN+HUW2Ht61brYtuSIIg2GA6EGfcuhYWF3T7nX/7yF2pra7t9HmMoDL2K5sIFbPTkkpk5wO9jzp+Qw2mj+nPvBxspLK85+MOISJh+E3z/fav76akz4Iv7wGMi0Rp6Fm+Yce+Sl5fX+pmqtuamCARjKAyGtnhakJLFLPUcRV5aot+HiQh3XTCe6MgIbn51FR5PO+MRA6fA1V/AmPPg49/Bc+fDvh09p91gaENhYSGjR4/mJz/5Cccccwzbtm3jpptuYty4cYwfP57//Oc/gDXZbsaMGVx88cWMGjWKyy+/HFXlwQcfpLS0lFNOOYVTTjmlW1rMzGxD72HXGiKb9rPEM4ofpyUEdOiA5Dh+e84Ybn5lFc8tKuLK4/MOrRSfAhc/BcNOhfduhr8fD+c/Aked1SPyDWHCe7+Cnat79pwDxsNZd3daxRvCA2DIkCE88MADbNy4kaeffppHHnmEV199lRUrVrBy5UrKy8s59thjmT59OgBfffUVa9euJTs7mxNOOIH58+dz/fXXc//99zN37lzS09O7Jd+0KAy9h+JFACwJsEXh5ZJJuZw8MoN73t9AcUUHzXUROOYK+PHn1hjGC3Pg3Zuhyf9E9QZDe/h2Pb3++usADB48mKlTrYmj8+bN49JLLyUyMpLMzExOPvlkliyxxsymTJlCbm4uERERPTa+4YtpURh6D0UL2BOdSXN0NomxgT/aIsIfLxzPrAc+55evruL5Hx5HREQHSejTR8APP4aPbodFj0DRfLjoSeg/qnvfweA8h3nzDyWJiQdeeNrmpvAlNja2dTsyMpLm5uYe1WFaFIbegSoUL2JN5BiGdKE14SU7JZ7fnD2ahVsrmPC7D7jiyS+574ONfLx+FxX7Gw6uHBULZ/4RLnsZqnfCYzNg2T/NnAtDUJg+fTr/+c9/aGlpoaysjM8//5wpUzqOPgDQt29fqquru31t06Iw9A72FML+ncyPOJfBAY5PtGXOsQPpExvFgi0VrNhWxcNzN+Md3x6YGs+Egf2YMDCFCQNTGJudRNzIWXDNfHj9x/DWDbBzDZx9b/e/k8HgwwUXXMDChQvJz89HRPjTn/7EgAED2LBhQ4fHXHXVVZx11llkZWUxd+7cLl9bOmvOuJXJkyfr0qVLnZZhCCUr/g3/vYZZDfdw3qzTufaU4T126trGZlaX7GXFtqrWZcdea0wiKkIYnZVkGY7cJGZ9fRt9tryD3LLNanEYXMH69esZPXq00zJCSnvfWUSWqeohk5AcaVGISCFQDbQAzao6WURSgf8AeUAh8E1V3WPXvwX4gV3/elX9nwOyDeFM8UJaYpPZVJ/TpYHszkiIieK4oWkcNzSttWzXvvoDhqO4iteWl/DcohbOiBjMP2IaoPSrDqPXGgxuw8mup1NUtdxn/1fAx6p6t4j8yt7/pYiMAeYAY4Fs4CMRGamqZsaT4QDFi6joNxHdG9Htrid/yEyK44yxAzhjrDWxr8WjbN69n0feiYFtD0DRAmMoDL2GcBrMPg94xt5+Bjjfp/xFVW1Q1QJgM9D5CI7hyKKmHMq/ZkvCeADy0nu2ReEPkRHCUQP6Mmb4UDZ5cmgunB9yDQZDsHDKUCjwgYgsE5Gr7LJMVd0BYK/72+U5wDafY0vssoMQkatEZKmILC0rKwuidEPYYc+f+IrRpPeJpU8XXGN7iuyUeJZ4jkK2fWnCfBh6DU4ZihNU9RjgLOBaEZneSd32HNkPGYFX1cdUdbKqTs7IyOgpnQY3ULwQImOZX5tLXgi6nTojOyWexZ5RRDZWw661jmoxGHoKRwyFqpba693A61hdSbtEJAvAXu+2q5cAA30OzwVKQ6fWEPYUL4KcSWyubHKk28mXHNtQWLoWOqrFYOgpQm4oRCRRRPp6t4FZwBrgTeBKu9qVwBv29pvAHBGJFZEhwAhgcWhVG8KWxhrYsYKm3OPYta/B8RZFRt9YdkdksDdmgDVb22DwE2+Y8XHjxjF79myqqqqcltSKEy2KTGCeiKzE+sF/R1XfB+4GZorIJmCmvY+qrgVeAtYB7wPXGo8nQyvbl4GnmR3JEwFnBrJ9iYwQslLi2BQ3DooWmlnaBr/xxnpas2YNqampPPzww90+Z0+F8gj5qJ+qbgXy2ymvAE7r4Ji7gLuCLM3gRooXAcLX0aOAzT0+h6IrZCfHs6xmDJNrPoLKrZA2zGlJBpcxbdo0Vq1aBcCWLVu49tprKSsrIyEhgccff5xRo0bx1ltvceedd9LY2EhaWhrPP/88mZmZ3H777ZSWllJYWEh6ejr//ve/u63HhPAwuJuiBZA5js3V1qMcijkUhyMnJZ7PKobzY7D0GUPhKu5ZfA8bKjsOi9EVRqWO4pdTfulX3ZaWFj7++GN+8IMfAFYYjkcffZQRI0bw5Zdf8pOf/IRPPvmEE088kUWLFiEiPPHEE/zpT3/ivvvuA2DZsmXMmzeP+Pj4HtFvDIXBvbQ0Q8kSyL+UwvIa0vvE0Dcu2mlVZKfE88b+dDQlDSlaYIUlNxgOgzcfRWFhIZMmTWLmzJns37+fBQsWcMkll7TWa2iwglOWlJTwrW99ix07dtDY2MiQIUNa65x77rk9ZiTAGAqDm9m1Bhr3w6CpFC6sYXAYdDsB5PSLp8UD9VlTiC9e4LQcQ4D4++bf03jHKPbu3cs555zDww8/zHe/+11SUlJYsWLFIfV/+tOfcuONN3Luuefy6aefcvvtt7d+5huevCcIp5nZBkNgeN1PB02jsLw2LLqdwGpRAJSnTrKi2pqUqYYASE5O5sEHH+Tee+8lPj6eIUOG8PLLLwNWToqVK1cCsHfvXnJyrLnHzzzzTIfn6wmMoTC4l+KFkDKIuvgB7NxX3608FD1JTkocAFsTjrYKTKvCECATJ04kPz+fF198keeff54nn3yS/Px8xo4dyxtvWDMHbr/9di655BJOOumkbqc6PRym68ngTuxERQydQXGllbZ0sMOusV6ykq0WxTodzMkxfawB7XEXOazKEO7s37//oP233nqrdfv9998/pP55553Heeedd0i5bxdUT2FaFAZ3UrkV9u+CQVMpKK8BCJsWRWJsFCkJ0Wzf1wQDp1jzKQwGF2MMhcGd2IEAGXQ8RRWWoRgUJmMUYLnIllbVw6DjYfc6qK10WpLB0GWMoTC4k+KFEN8P0kdSWFFDamIMyfHOu8Z6yU6Jp7SqDgZPAxS2fem0JIOhyxhDYXAnxQth4FSIiKCwvNbxGE9tyUmJZ/ueOsiZBBHR1jiFIazpjWmhOyLQ72oMhcF97C+Dis322zoUVdSERegOX7JT4qhuaGZfS5RlLEwk2bAmLi6OioqKI8JYqCoVFRXExcX5fYzxejK4j23e8Ylp1De1ULq33vFggG3xzqUoraojafA0WPA3aKyFmPBq+RgscnNzKSkp4UhJehYXF0dubq7f9f0yFCKS6kc1j6pW+X1lg6GrFC2EqDjImkBxhe0aG4ZdT2AZilGDjod5D1jhRoae7LAyQ3tER0cfFALDcDD+tihK7aW9bHNeIoFB3VZkMByO4oWQMxmiYigot7yJwq3ryWsotlfVQ/4UQCzdxlAYXIi/hmK9qk7srIKIfNUDegyGzmmsgR0r4cT/A2h1jQ03Q5HeJ5boSLEGtOMHw4BxZkDb4Fr8Hcye1kN1DIbuUbIEtAUGWY9bYUUt/RKiSU4IH9dYgIgIISvZdpEFaz5FyRJoaXJWmMHQBfwyFKpa3xN1DIZuU7wIJMKa8QwUlteE3UC2l+yUuAOGYvA0aKq1WkMGg8s4rKEQkZki8riITLD3rwq6KoOhI4oXQuZYiEsCoKiiNuy6nbzkpCQc3KIA0/1kcCX+tCh+AtwEfFtETgUmBFWRwdARLc2wbUlrt5PlGlsXdh5PXnJS4ti5r56mFg/0zYTUYWY+hcGV+GMoylS1SlV/AcwCjg2yJoOhfXaugqaaVkOxrbIWVRgStl1P8XgUdu2ze2UHT7MMhcfjrDCDIUD8MRTveDdU9VfAs8GTYzB0QmsgwKmANZANhE1mu7YcmHRnG4pBx0PdHijr2XzMBkOwOayhUNU32uz/rbsXFZFIEflKRN6291NF5EMR2WSv+/nUvUVENovIRhE5o7vXNriY4gWQMhiSsgFrIBvCJ7x4W3L6HZh0B8Bge5zCJDIyuIyAYj2JyGQReV1ElovIKhFZLSKrunDdG4D1Pvu/Aj5W1RHAx/Y+IjIGmAOMBc4EHhGRyC5cz+B2vImKvD+2QGFFDSlh6BrrJTvZO+nONhT98qBvlslPYXAdgQYFfB54GrgImA2cY6/9RkRygbOBJ3yKzwO8SV+fAc73KX9RVRtUtQDYDEwJULOhN1C5FWrKWrudwPJ4CtduJ4D4mEhSE2MOGAoRa3ylaIFl+AwGlxCooShT1TdVtUBVi7xLgOf4C3Az4Duil6mqOwDsdX+7PAfY5lOvxC47BBG5SkSWisjSIyWw1xGF16100IF5nQXlNQwJU48nLwfNpQCrRVRdClWB/tsYDM4RqKG4TUSeEJFLReRC7+LvwSJyDrBbVZf5e0g7Ze2+iqnqY6o6WVUnZ2Rk+CvJ4BaKF0F8KqSPBKCh2esaG74tCrC6nw4xFGC6nwyuItAw498DRgHRHGgRKPCan8efAJwrIt8A4oAkEfkXsEtEslR1h4hkAbvt+iXAQJ/jc7GCExqONIoXWq0Jsd4dwt011ktOv3jmby5HVRERyBgNcSnWgPaES52WZzD4RaAtinz7rf1KVf2evXzf34NV9RZVzVXVPKxB6k9U9dvAm8CVdrUrAa+n1ZvAHBGJFZEhwAhgcYCaDW6nehdUbjlofKKwPDzDi7clJyWemsYW9tU3WwUREdb3MDO0DS4iUEOxyPZE6mnuBmaKyCZgpr2Pqq4FXgLWAe8D16pqSxCubwhnvImK2ng8QfhFjW2Ldy7F9j1tup8qNsP+3R0cZTCEF4F2PZ0IXCkiBUAD1hiCqurRgV5YVT8FPrW3K4DTOqh3F3BXoOc39CKKF0FUPAw48JgVVtSQHB9Nv8QYB4UdHt9Md2OyrfhUrXGfihfCmPMcUmYw+I+/Ge6mAYuw5jIYDKGlaAHkWomKWosqaskL824nsLyeAEr3+rQosvItw1dkDIXBHfjb9XQlsAy4BzgFaOiGe6zB4D8N1bBz9UFusWC5xoZreHFf0hNjiYmKODCXAiyDlzsZiuY7J8xgCAB/81FcrarHALcD/YB/ishCEfmDiEw3s6UNQWPTh1aiIp8Uog3NLZRWhb9rLFgJjLKT4w7Ee/Iy+ATYtQbq9zkjzGAIgIAGs1V1g6o+oKpnAqcC84BLgC+DIc5gYM2r0GfAQS2Kkj11eBRXdD2BNU6xfU/twYWDp4F6YJtx4jOEP34ZChH5mYgcKyKtYxqqWqeq76rqT1V1cvAkGo5Y6vfCpg9g3IUQcaDR6g0G6IauJ7AMxSEtitxjISLKBAg0uAJ/vZ5ygb8Co+wggAuA+cBCVa0MljjDEc6Gd6ClEcZddFCxN7x4uLvGeslJiWdXtZXAKDrSfjeLSYSsCWY+hcEV+DtG8QtVPR4YAPwaqAS+D6wRkXVB1Gc4klnzKqQMgpxJBxUXVdSQFBdFvzCNGtuWnJR4VGHn3rbjFNNg+zJoMunmDeFNoBPu4oEkINleSjHjE4ZgUFMBW+ZarQk5OOSX1+NJpL1QYOFH66Q7X88nsOZTtDRC6XIHVBkM/uPvPIrHsHJCVGMZhgXA/aq6J4jaDL2I5hYPTS1KfIyfDnLr37C8ndp0O4E1hyJ/YErPCgwirXMpDjEUdkiSovkHzTo3GMINf1sUg4BYYCewHStYX1WQNBl6IXe+s55vPPgFjc1+5ote85oVKTZz3EHFjc0eSvbUhn14cV98Z2cfREIq9B9jIskawh5/xyjOBI4F7rWLfg4sEZEPROSOYIkz9B5WlVRRUF7DK8tKDl953w4onNdut1PJnlo8Gr55stsjLjqS9D4xbG/r+QSW2++2xeAxIcwM4YvfYxRqsQZ4F3gPy+tpGFZaU4OhU7yeSg/P3Xz4VsW6/wLaYbcTuMc11ovlIlt36AeDj4dGe/a5wRCm+DuP4noReVFEtgGfY6VA3QhcCKQGUZ+hF7C3tonKmkZOHJ7O9qq6w7cqVr9iBQBMH3HIRwXeORQu6noCK4HRIYPZcGAioXGTNYQx/rYo8oBXgCmqOlRVr1DVR1R1par62elsOFIpsEOCf2faYCYOSum8VbGnELYvbbc1AZZrbN/YKFLDPGpsW7wtCm2bKzs5B1IGm4l3hrDG3zGKG1X1FW9ea4MhELwzqYekJ3LDaSPYXlXHq8s7aFWssZMljr2g3Y8LKmpd5RrrJTsljtrGFvbWNR364eDjrQHttkbEYAgT/O16Oqyjtz91DEcmBeU1iMDA1AROHpnBhIEpPPRJB62KNa9B7hToN7jdcxVV1IR9Vrv2yO3XwVwKsLqfasutZEYGQxjib9fTaBFZ1cmyGkgPplCDeykoryEnJZ646EhEhJ+d3kGromwj7FrdYbdTU4uHkj11rgnd4csBF9l2PJ8Gn2CtTdhxQ5jib6ynUX7UMf59hnYprKhhiI+X0skjM8i3WxUXHZNLTJT9vrLmNUBg7PntnqdkTx0tHnWdxxP4pkStPfTDtGGQmGF1P036bmiFGQx+4O8YRZEfix8O8oYjDVW1Qm74tALabVWoWrGd8k6EvgPaPdeBPNnu63pKS4whJiqC0rbxnsCaKzJomhnQNoQtgcZ6MhgCorKmker65kNaATPsVkWrB9TO1VCxqcNuJ3BfeHFfRISclA5cZMEa0K4qhr3mfcsQfhhDYQgq3nkPQ9v8uHtbFSV76nhteQmsecXKz9BJDumiilr6xEaR5jLXWC85HU26Axgy3Vq/f4uJJmsIOwIyFGLxbRH5f/b+IBGZEuA54kRksYisFJG13hAgIpIqIh+KyCZ73c/nmFtEZLOIbBSRMwK5nsFZCjppBcwYmUF+bjIPfbIJXf0qDDvVin/UAYW2x5PbXGO9ZKfEsX1PB4YicyzMugvWvwnPX2wlbTIYwoRAWxSPANOAS+39auDhAM/RAJyqqvnABOBMEZkK/Ar4WFVHAB/b+4jIGGAOVvTaM4FHTI5u91BYUUNkhLS6h/pitSpG0n/vKmRfSafdTmB1Pbmx28lLdko8u6sbaGjuwO/j+OvgwseheBE8/Q0r5pXBEAYEaiiOU9VrgXoAO8x4QP0Adsyo/fZutL0ocB7wjF3+DHC+vX0e8KKqNqhqAbAZCKgVY3COwvJaBvaLP5DZrQ0zjsrge8nLaSCaphFndnieA66x7hvI9uL1fNq1t6HjSkd/Ey5/yZqh/uRMKPs6NOIMhk4I1FA02W/zCiAiGUDAITxEJFJEVgC7gQ9V9Usg0zvz2173t6vnANt8Di+xywwuYGv5wa6xbRH1MIuFfNIygdfW7uuw3vY9dTR71JVzKLzkdpTAqC3DToXvvgPN9fDULNi2JATqDIaOCdRQPAi8DvQXkbuAecAfAr2oqrao6gSsXNxTRGRcJ9Xb65A+JNaBiFwlIktFZGlZWVmgkgxBQFUpqjhMd1HRfGLry1iVchp/+2QzTS3tv3e0usa6vOsJ2slL0W7lCfCDDyC+HzwzGza+H1xxBkMnBGQoVPV54Gbgj8AO4HxVfbmrF1fVKuBTrLGHXSKSBWCvd9vVSoCBPoflYqVgbXuux1R1sqpOzsjI6KokQw+yu7qB2saWTlsUrHkVohM57oxLD3hAtYM3vLgbw3d4GZBsZbo7bIvCS+pQ+P4H0H8UvHgZLH8uiOoMho4J2D1WVTeo6sOq+pCqrg/0eBHJEJEUezseOB3YALwJXGlXuxJ4w95+E5gjIrEiMgQYASwO9LqG0HMgJHgHhqKlCda9AaO+wcljB3N0bnKHrYqC8hoSYyLJ6BMbTMlBxUpgFOtfi8JLnwy48m0YOgPevA4++7MJHmgIOYG6xz7j/ZG39/uJyFMBXjMLmCsiq4AlWGMUbwN3AzNFZBMw095HVdcCLwHrgPeBa1XVhAtxAQU+UWPbZctcqNsD4y4+aF7F68u3H1LVCgbovqixbclJifO/ReEltg9c9h84eg7MvRPe+bnJiGcIKf7GevJytN1dBFheTyIyMZATqOoq4JBjVLUCOK2DY+4C7gpMqsFpCstriImMaO2bP4Q1r0JcsjV4C5xyVH+rVTF3Excck3OQp1RRRS2js5JCITuo5PSLZ+PO6sAPjIyGCx61wpvM/wvU7IYLn4DouB7XaDC0JdCup4g2E+FSCdzYGI4QCsprGJSWQGREO62ApjrY8A6MPheiLA9rEeGG00awrfLgVkVzi4fiylpXj094yU6Op7Sq/tAERv4gAjPvgDPvhvVvw3MXQF1Vj2s0GNoSqKG4D1goIr8Xkd8DC4A/97wsQ2+gsKKm4/GJTR9auaLbTLI7dVR/xudYrQrvWEVpVb3rXWO9ZKfEU9fUwp7adhIY+cvUa+DiJ61MgE+fBXsP7aozGHqSQL2ensXKk73LXi60ywyGg/B4lMKKWoZmdPDjvuZVK7R23kkHFXvHKrZV1vH6V9YPYEEvcI31EpCLbGeMuwgufwWqtsGTs2D3hh5QZzC0T6CD2bFYYTeSgFTgYm/cJ4PBl9K9dTQ2e9pvBTRUw9f/gzHnQ+ShPZfeVsVDtgdUkYvDi7clx99Jd/4w9GT43rvgaYLnL4HmTmZ8GwzdINCupzewQmo0AzU+i8FwEIXl1ryHvPR2ftw3vg/NdR3GdvKOVRRX1vL6V9spLK8lISaSjL7udY31ktOvh1oUXrKOtga59xbDsmcOX99g6AKBDkTnqmrHAXkMBhtvd1G7rrFrXoWkHBh4XIfHnza6P+Nyknjok83kpSf2CtdYgH4J0cRFR3QcRbYrDD0FBp8IX9wLE78NMe5veRnCi0BbFAtEZHxQlBh6FQVlNcRHR5LZt437Zm0lbP4Ixl0IER0/fiLCz04bSXFlLZ9/XdYrup3A+l7ZKfGU7u1BQyECp94K+3fBksd77rwGg02ghuJEYJmdF2KViKy2J84ZDAfhzR0R0dY1dsPbVp/6YUKKw4FWBfSOgWwvVqa7Hk5ONHgaDD8d5j0A9R0HVzQYukKghuIsrBAas4DZwDn22mA4iMKOosauedWKYZQ14bDnsMYqRgIwLKNPDyt0jk4z3XWHU2+1Zrov+nvPn9twRBOoe2wRsA/IBAb7LAZDK94Jcoe0AvbvhoLPrdaEn+MNp4/uz7Pfn8I5R2cFQakzZKfEU9ZZAqMun3gijJ4NCx+yuvgMhh4iUPfYHwKfA/8D7rDXt/e8LIObKbFzRxzSolj3BqjHr24nLyLC9JEZxEX3nqSG3rkUO3q6+wnglN9Y7sfz/9rz5zYcsQTa9XQDcCxQpKqnYMVsMskfDAfRocfTmleh/xjoP9oBVeFDdoo1wB+U7qf+o2H8JfDlP6B6V8+f33BEEqihqFfVerAm36nqBuConpdlcDOF7YUX31sCxQstb6cjnB6ddNceM34FLY0w7/7gnN9wxBGooSixw4z/F/hQRN6gnSRChiObwvIa+sRGkd7HJ5362tet9VhjKAYkxyFixbAKCmnDYOLlsPQpK8SHwdBNAh3MvkBVq1T1duC3wJPA+UHQZXAx3jzZB02Q2/IJ9B9r/Ygd4cRGWQmYgtL15GX6zdb68z8F7xqGI4aAM9x5UdXPVPVNVW3sSUEG91PYNk+2KmxfDrmTnRMVZmSnxAev6wkgZSBM/j589TxUbAnedQxHBH4ZChGZZ6+rRWRf23VwJRrcRGOzh+176hjiO5O6civUV0HOMY7pCjeCNpfClxNvhMgY+PTu4F7H0Ovxy1Co6on2uq+qJrVdB1eiwU0UV9bi0TYzqUu/stbZxlB4ybZTonYpgZG/9M2E434Mq1+GXeuCdx1Dr8evoIAicmNnn6uqca8wAB3kyd6+HKLij3i3WF9yUuJpaPZQWdNIWp8gRsU94QZrUHvuXTDn+eBdx9Cr8XeMoq+9TAauAXLs5WpgTHCkGdxIYbuGYpkVDjsy2iFV4ceBBEZB8nzykpAK066zYmxtXx7caxl6Lf52Pd2hqncA6cAxqvpzVf05MAnIDaZAg7soqKghJSGalATbNbalGXasNN1ObchunUtRG/yLTb0G4lOtVoXB0AUC9XoaBPh6OTUCeYGcQEQGishcEVkvImtF5Aa7PFVEPhSRTfa6n88xt4jIZjtq7RkBajaEkMLyNnmyyzZYSYpyJjknKgw5MOkuyC0KgLgkOPFnVnj3ooXBv56h1xGooXgOWCwit4vIbcCXQKA5s5uBn6vqaGAqcK2IjAF+BXysqiOAj+197M/mAGOBM4FHRKT3BP7pZRSU1zC0bbcTGI+nNqQkRBMfHRl8zycvx/4I+mTCJ7+33JUNhgAIdMLdXcD3gD1AFfA9Vf1DgOfYoarL7e1qYD3WeMd5gDeX4zMcmMh3HvCiqjaoagGwGZgSyDUNoaGusYUde+vbeDwth7hkK7S4oRURIadfCFxkvcQkwEm/gKL5sHVuaK5p6DV0ZcJdAbAQ+AroKyLTu3pxEcnDCiz4JZCpqjvAMiZAf7taDuAbh6DELjOEGUWVdoynth5P2cf4HVb8SCLok+7aMulKSB4IH5tWhSEwHAszLiJ9gFeBn6lqZ5P22vuFOeQpF5GrRGSpiCwtKzMBbZ2g1ePJO0bRVAe71ppupw7ISYkLXYsCICoWTv6l1crb+G7ormtwPY6EGReRaCwj8byqvmYX7xKRLPvzLGC3XV4CDPQ5PJd2AhGq6mOqOllVJ2dkZAQqydADbPVGjU23Z2XvXA3aYgayOyA7OZ7y/Y3UN/VwAqPOyL8UUofBJ3eBxxO66xpcTcjDjIsVKe5JYH2biXpvAlfa21cCb/iUzxGRWBEZgpWKdXGAug0hoLC8hvQ+sfSNs+dLeP32jWtsu+T0sxMY7Q2B55OXyCg45dewey2sfe3w9Q0GnAkzfgJwBXCqiKywl28AdwMzRWQTMNPeR1XXAi8B64D3gWtVNYSvYAZ/KSyvZUi6T4yn7cugbxYk9Z40pj3JgUl3Iex+AivUe/+x8OkfrXkuBsNh8CuEB7S2BK5X1SrgdhGZCyRj/Xj7jarOo/1xB4DTOjjmLsDMFgpzCipqmDHSp9uvdLnpduqE1rkUe0JsKCIi4NTfwIuXwcoX4JgrQnt9g+vwu0WhVvSy//rsmzDjhlaq65soq25gSIY9kF1XBRWbIXuio7rCmcwkK4FRSD2fvBz1DatL8LN7oLkh9Nc3uIpAu54WicixQVFicDVFFVYoilaPJ2/EWOPx1CExURH07xvkBEYdIQKn3gp7t8Hn94b++gZXEaihOAVYKCJbRGSViKwWkVXBEGZwFwXlbeZQlHoHsk2LojNyUuIp3euAoQAYfhrkXwaf/xkKvnBGg8EV+D1GYXNWUFQYXI93DkVrnKftyy03zPh+nRxlyE6JZ22pg7m/vvFnKFkMr/0Irp4PiWnOaTGELX63KOzBbI+qFrVdgqjP4BIKymvISo4jPsYOw7V9uel28oMce3a2x+PQTOnYPnDxU1BbAW/8xMzYNrRLlwezDQZfCip8osbu2wHVpcbjyQ+yU+JpbPZQUeOgT0hWPsz8PXz9Pnz5qHM6DGGLGcw29AiF5TXtjE+YFsXhcGwuRVuO+zGMPAs++C2UrnBWiyHs6Mpg9iIzmG3wpaq2kT21TQcm221fDhIJA8Y7K8wF5ISLoRCB8x+BxAx45fvQUO2sHkNYEehg9pkcmCxnOjMNgG+e7D5WQelyyBxjhbY2dMqBBEYOGwqw0qZe9Dg8MxvevQkuMN1QBgu/DIWIVNO+YRC7PKknRRncRWGF11AkWIOh25fDmPMcVuUOkuKjSIyJDA9DAZB3Iky/GT67G4bOgPw5TisyhAF+GQpV7RtsIQb3UlBeS4TAwNQEqNwK9VXG48lPRITslBAmMPKH6TdB4Rfw9o2QMxnShzutyOAwXUlcZDAcRGF5Ddkp8cRGRfrMyDYeT/5iZboLYQTZwxEZBRc+DlEx8Mr3TIgPgzEUhu5TUF7DEK/H0/ZlEBUPGaOdFeUiwq5FAZCcA+c9AjtXwUe3O63G4DDGUBi6hapSeJChWA5ZR1tvpQa/yEmJp6KmkbrGMIueP+obMOXHsOgR2BhQkGhDL8MYCkO3qKhppLqh2Zps19IMO1aabqcAyU6JA3Au5lNnzPyd5eb832tgX6CpZwy9BWMoDN2iNU92eiKUrYfmOjPRLkCyk8NkLkV7RMfBxU9b4xSv/gg8YdbqMYQEYygM3WKrr6Hwpj41Hk8B4U2JGpaGAiB9BJx9LxTNgy/uc1qNwQGMoTB0i8LyGqIihNx+8dZAdlwypA51WparyEyKI0Jgezh5PrUl/1IY/00rfWrRAqfVGEKMMRSGblFYUcPA1ASiIiOsGdnZx1jhIAx+Ex0ZQWZSXOhTogaCCJxzP/TLg1d/CLWVTisyhBBjKAzdoqC8lry0BGiqg13rTLdTFwlLF9m2xPa1QpLv3w1vXGdCkh9BGENh6DIHXGP7wI5VoC3G46mLZDuZ6S4QsifCzDtg4zuw5Amn1RhCRMgNhYg8JSK7RWSNT1mqiHwoIpvsdT+fz24Rkc0islFEzgi1XkPH7NrXQF1TixXjyYQW7xY5KfHsqKp3LoFRIEz9CQw/3ZqIt3+302oMIcCJFsU/saLQ+vIr4GNVHQF8bO8jImOAOcBY+5hHRCQydFINnXFQnuzty6FvFiRlOazKneSkxNHY4qF8vwvCZYjAmfdAcz18erfTagwhIOSGQlU/B9qOhJ0HPGNvPwOc71P+oqo2qGoBsBmYEgqdhsPjjRqbl5ZoeTyZbqcukx1O4cb9IX04TPoeLPsnlH3ttBpDkAmXMYpMVd0BYK/72+U5wDafeiV2mSEMKCivISYqguy4BqjcYvVfG7rEYDuN7HMLi2hxQ/cTwMm/hOgE+PgOp5UYgky4GIqOaM/Pst3/IhG5SkSWisjSsrKyIMsygGUoBqcmELljhVVgPJ66zPD+fbjhtBG89tV2rn/hKxqbPU5LOjx9MuDEG2DD21C00Gk1hiASLoZil4hkAdhr7whZCTDQp14u0G7AGVV9TFUnq+rkjIyMoIo1WLTmyd6+zCowLYpu8X8zR3Lr2aN5Z/UOrnpuafgFCWyPqddaY1Mf/ta4y/ZiwsVQvAlcaW9fCbzhUz5HRGJFZAgwAljsgD5DG1o8SlFlrRW6o/QrSB0G8f0Of6ChU3540lDuvnA8n31dxpVPLaa6vslpSZ0TkwCn/BpKlsC6Nw5f3+BKnHCPfQFYCBwlIiUi8gPgbmCmiGwCZtr7qOpa4CVgHfA+cK2quuA1q/dTWlVHY7PnQIwn0+3UY8yZMogH50xkefEeLnv8SyprGp2W1DkTLrfyj3x8BzSHuVZDl3DC6+lSVc1S1WhVzVXVJ1W1QlVPU9UR9rrSp/5dqjpMVY9S1fdCrdfQPl6PpxHx+6G61Hg89TCz87N57DuT+HpXNd/6x0J27g3jOFARkVY48sqtsOxpp9UYgkC4dD0ZXIY3vPiwpo1WgZlo1+OcOiqTZ74/hdKqOi75xwKKK2qdltQxI2bCkOnw2T1Qv9dpNYYexhgKQ5coKK8lPjqSlMrVIJFWchtDjzN1aBr//tFUquubufjRBXy9q9ppSe0jYrUqaitg3l+cVmPoYYyhMHSJgvL95KUnIqXLIXOMNahpCAr5A1P4z1XTAPjWPxayuiRM39izJ8L4S6zUqXu3O63G0IMYQ2HoEoUVtQxJiz8QWtwQVI4a0JeXr55GYmwUlz6+iC+3VjgtqX1O/S2oB+b+wWklhh7EGApDwDS3eNhWWcvExEqrP9p4PIWEwWmJvHz1NDKTYvnOU4uZuzEMA/L1GwxTroIVz8PONYevb3AFxlAYAqZkTx3NHmV8xFarwHg8hYys5Hhe+vE0hvfvw1XPLuWdVTuclnQo039hZTr86DanlRh6CGMoDAHjjRo7pGEjRMVbPvSGkJHWJ5YXrprKhIEp/PSF5by0ZNvhDwol8f0sY7H5I9gy12k1hh7AGApDwHgNRWrVasg6GiKjHFZ05JEUF82z3z+OE0dkcPOrq3h47ubwCiY45SpIGQQf/j/wuCBulaFTjKEwBExhRQ0psULU7jWm28lB4mMiefw7kzj76Cz+/L+NnPfwPFZuq3JalkVULJz6/2DnKlj9stNqDN3EGApDwBSU13BSSjnSXGc8nhwmNiqShy6dyEOXTWT3vgbOf2Q+t/53NXtrwyBG1LiLICsfPvk9NIXxzHLDYTF9BoaAKSiv4dqkIthLr/N4avG0sKNmB9uqt9GiLURIBFESRYREEBkRSaRYi+9+a52ICCIlkuTYZOKj4kOmWUQ45+hsTh6Zwf0ffs0zCwp5f81Ofv2N0VwwMQeR9qL1h4CICJh1JzwzGxb/A064wRkdhm5jDIUhIBqaWyitqmNs0mbLsyV1qNOSukR1YzWFewsp3FdIwd6C1nXxvmIaPd0LbBcVEcWEjAlMy57G1KypjE0bS2RE8DP49o2L5rbZY7nomFxu/e8abnxpJS8t3cad549jeP++Qb9+uwyZDiNmwef3wcQrICHVGR2GbiHaC2PIT548WZcuXeq0jF7J5t3VnH7/56zI/B0paVnwnf86LalDWjwtlO4vpWBfwSFGobyuvLVepESS2zeXIUlDyEvOIy8pj0FJg4iOiKZFW/CohxZtocXTcmDfd1tbDvq8uLqYRaWLWF+5HoC+MX05bsBxTM2ayrTsaQzsOzDob/kej/Likm3c8/4Gahub+dFJQ/npqSOIj3Eg5fyudfDoCXDcNXCmmYgXzojIMlWd3LbctCgMAbG1rIY4GkjetwmOPttpOa141EPxvmLWVqy1lvK1bKjcQG3zgUB6ybHJDEkawok5J5KXlMeQZMswDOwzkOjI6J4VNAkq6ytZvGMxC3csZGHpQj4q/giAnD45TM2aytTsqUwdMJWUuBS/TlnbVMvu2t3WUrf7wHbtbpo8TaTFpZEal0pafBpp8WmMGJzGUz8axDNfVPDIp5t5c2Upd5w7ltNGZ/bsdz0cmWOsUOSLH4PjroJ+eaG9vqHbmBaFISAe+3wL77/3Jq/F3g5z/g2jQm8sVJVt1dtYV7Gu1TCsr1jP/qb9AMRGxjIqdRRj0sYwKnWUZRCS8ugX51xiJVWlaF8Ri3YsYmHpQhbvXMz+pv0Iwui00UzNmsrkzMk0ehrZXbubstoydtXuajUEZbVlVDcdGhAwMTqR/gn9iYqIorKukj0Ne/Dooe6okRKFNvehqTGRtPhUJg8cxMDk/vSP78/JuSczMGngIcf0KPtK4cFjrOfl4ieDey1Dl+moRWEMhSEgbnltNf1WP8HN+k+4cQMkZQX9mjtrdrKqbFWrUVhXsY7qRutHMyYihqNSj2JM2hjGpo1lTNoYhqUMIyoivBvLzZ5m1pSvaTUcq8pW0azNrZ9HSRTpCen0j+9P/wRryUjIIDMhs3W/f0J/EqMTDzpvi6eFqoYqKuorqKyvpKKuwlrqKyivrWDFjhKK9uyCyGoio2vwYF1zcuZkLhhxAacPOp2E6CAFePzkTvj8z/Cjub3OCaK3YAyFoUe49LFFXF3xR06O2Qg/3xC066gqC3cs5Nl1zzJ/+3zAGiQe2W8kY9PGthqF4SnDe77byAFqmmpYV7GOhOgEMhMySY1LJUKC471esqeW299cx0frdzIsq4lJYwpZW/0RxdXFJEYncmbemZw//HzyM/J7diylfh88OBEyRsF337ZCkxvCCmMoDD3C1D98zJtcT/+hE2DO8z1+/oaWBt7d+i7PrnuWzVWbSYtL41ujvsX03OmMSBlBTGRMj1/zSOXDdbu48511FFXUMiQjgbMn1VMZOY+Pij+krrmOIclDuGD4BcweNpv0+PSeuejix+HdX8Doc+Hkm00ekzDDGApDt1m/Yx/f+ut7rIq7ygonPf0XPXbuiroKXtr4Ei9ufJHK+kpG9hvJd8Z8h7OGnGWMQxBpbvHw3pqdPPrZFtaW7mNAUhxXHJ9Jv/7rea/wTVaUrSBSIjkp9yQuGH4BJ+WeRHREN1pwLc3w+Z9g0d+hYR+MPAum3wS5ZoZ/OGAMhaFL7K1r4s2VpbyydBsrS/YyI2oN/4z6A1zxOgw7tdvn37xnM8+tf463t7xNo6eR6bnTuWLMFRw34DjnJoodgagqX2wq59HPtrBgSwVJcVF8Z1oep46Hz3a8y5tb3qS8rpzUuFRmD53NBSMuYFjKsK5fsK7K8oJa9AjU7YGhp1gGI++EHvtOhsAxhsLgNx6PMn9LOS8vLeF/a3fS0Oxh1IC+XDJ5IJfWv0TCvD/ALwutKKFdQFVZULqA59Y9x/zS+cRFxnHusHO5fMzlDE125wS+3sSKbVU8+ukW/rduJzGREXxz8kB+cOIgiuq+4vXNr/PZts9o1maGpwxnQv8J5Gfkc3TG0eQl5QU+rtJQDUufggV/g5oyGHQ8nHyTZTjMi0LIcbWhEJEzgb8CkcATqnp3Z/WNoegaxRW1vLJsG68u3872qjqS4qI4f2IOl0wayLicJOsN/4XLoGwDXL884PM3tDTw9pa3+df6f7G5ajPp8elcOupSLhl5iaOuq4b22VK2n8c+28prX5XgUTh7fBZXnzyMzH5NvL317VZvLa/bblJMEuMzxpOfkU9+ej7jM8bTN8bPGeFNdbD8WZj/V9i33Qo2Of0mGHmmMRghxLWGQkQiga+BmUAJsAS4VFXXdXSMMRT+U9vYzHurd/Lysm0s2lqJCJw4PJ1vTh7IzDGZxEW3mcl73yjIOxEueqLd83nUw576Peys3cmuml3sqt3Fzpqd7KrdxcLShVTWVzIqdRRXjLmCM/PONOMPLmDXvnqemlfAvxYVUdPYwskjM7hmxjCOG5KKohTuLWRl2crWZUvVFhRFEIYmDyW/fz5Hpx9NfkY+Q1OGdt7qaG6AlS/AF/dDVRFkjofpP7cGv0MQBuVIx82GYhpwu6qeYe/fAqCqf+zomK4aiubmJjwOxM5XVRRQBUXx/kl89xV72y6n7Z9NrBcvad2VA9tC65735Wx9SRnvL1nLso0FxDRXMbRvE9Nzo5iQAX20Gq2rQuv34Knfi9ZV4anfC/VVNLc0UHHSDewceiK7anYdYhC8s4R9iYqIIjMhk6P6HcXloy/n2AHHmvEHF7K3tol/fVnE0/MLKN/fSGZSLMnx0fSNi6ZPbBR946wlLqaJWimgyrOZssav2V63kdqWfQAkRCVyVL/R9ItNJT46gYTIBBKi44mPSiA+KoGEaHsdGUNSyRKSVr1In6pi4lLyiJl6PZGjL0C6M5jug+8jeOC/5dDP2tLeT6Ye8g/ZwTV9rtP2Gu1d0nvW1t8Eu6RdDXZZXEwMUVFdM6puNhQXA2eq6g/t/SuA41T1uo6O6aqhuO7xGXwWE6ZJ68OU6IhoMhMyyUzMbF0PSBhw0DqYcwIMoae+qYVXl5fwVXEV++ubqW5ostb1zVQ3NFNd30R9k+8LlyLRFUQmFBEZv43IuO0QUY9ENCARDRDRiEh4/w65iVsGfIfLzripS8e6OdZTZ4b2QCWRq4CrAAYNGtSlC03OPo3k3V916djuIods2G8f0k4dP2j3304PvJFER0eTkdKPmNhEiI4nIiYBiU4kIiYRIqOJkAirVSLSuh0hEYgI6XHprYahX1w/YwSOMOKiI7n8uMFcftzgDus0tXh8jEcT1fXNB4xKQwsej/q0pJVmTyMNWk9jSx1NWkdjSz2NnloaPfU0aj1NLXUk7l9PTOPO4H9Bf2xWdxvEh7mGtneJDq4pbX4kjhp4bDeEtY8bDEUJ4BuIJhcobVtJVR8DHgOrRdGVC3337N925TCDwdCG6MgI+iXG0C/RjEH1BtzwKrgEGCEiQ0QkBpgDvOmwJoPBYDhiCPsWhao2i8h1wP+w3GOfUtW1DssyGAyGI4awNxQAqvou8K7TOgwGg+FIxA1dTwaDwWBwEGMoDAaDwdApxlAYDAaDoVOMoTAYDAZDp4T9zOyuICJlQA1Q7rQWP0nHPVrBXXrdpBXcpddNWsFdep3SOlhVM9oW9kpDASAiS9ubih6OuEkruEuvm7SCu/S6SSu4S2+4aTVdTwaDwWDoFGMoDAaDwdApvdlQPOa0gABwk1Zwl143aQV36XWTVnCX3rDS2mvHKAwGg8HQM/TmFoWhBxCTYciAeQ6OdFxrKEQkyy0Pr4hki0is0zr8RUTGi8gvATTMm5wiMsBpDYEgIplOa/AXETlKRM6C8H8OAERksIh0LRlNiBGROKc1BILrDIWIxIrI34HPgMdE5EKnNXWEiPQRkfuB94AnROQyuzws77tY3Av8G4gSkZ7JORkERCReRP4CvC8iD4jIeU5r6gz7WXgAeE9E/uGC5/Y+4AUg7BNK2M/CA1j/Z8+IyDV2edj9n4lIoog8BtwmIml2Wdi/8IbdjfSDc4EsVR0JvA38TkRGOqzpEEQkG/gn1j/aCcAbgPctPfSJuf0jA8gCJqnqXaradLgDHORaIENVJwD/Bf4gIsMdVdQBIpIDPIf1//YNrJecPzkqqgNEJAl4DThRVY9R1Tec1uQH1wPZqjoGuB34GYTf/5ndivgdcCLQFzgF3NFac4WhEJE+PrsKlAHYD/H7wI9FJMUBaYcgIn3tzb3Az1X1OlXdD2QC/xWRDLteWNx7H70AycAIVW0UkTNE5BcicoZT2trifQ5EJBLoh/WigKp+hjUT/zYRSXZOYYfUA0+o6g2quhN4CVghIkc7rKs96rGM2loAETlBRGaJyAh7PyyeW7CeA1uPAKvs4mzgHREZ5ZyygxGRBHuzAfg7MB3YBEwSkWF2nbBuVYTNH709RGS4iLwE/FNEzhaRRKAO2Ge/sQP8GTgGGGsf48gNb6sViFbVIhFJEJEbgF8BiVgP8RhV9Tj5cPjofdq+t6nAfmC+iPwOuBnrR+MvInJlG2PtlNZnROQcu7gaOE5E8m3juwEYCQy1j3Hy3h4lIo+KSDyAqlYAn/pUGYilc6MD8g6iHa2NwCeAishO4A/ATOAzERkbBs9tq15VbbFbDaXAIBH5ArgH69n4SERmOqx1hIg8i9VFfi7QV1U3q2o5MBeIwyWtirA1FPabwl+A1VhvOOcAvwU+AkYB+SISo6q7sJry/wfO3PA2Wp/F6l74vf1xHfCeqg5U1V9gtYD+6pRWaPfeng38WlV3YCWzmg7cqKoPYd3z2XQ/nXxPaH0W6zn4HXAfViviVuBDrP70D4BrwNF7eyLWPb0KuNEuE1Wt8akWAxSqaoMDEltpT6vNDqxxqntV9WRVvQl4Auueh9W9tfkX1ovNDmCKqt4G/BH4Pwe1XoHV3bwQy/DOBs73fq6qq4B1wFgRmeSExoBQ1bBcgBysByDSZ38xcBxwCfA01kMBluF4HOstPly0LgTOtfeFA3NWhmL1qceH2b39EstA5GP98H7fp/5crD7gcNI6y94fAqTa2xdh/Tjgvd8O6B0NjAOGA5uxgqy1rTMH+LO9/SPg6DDRmufzWVybuiOwxi7iQqnRH732/1cO8AAw1C6LxWrFpTmkdRYw22f/HuBqezvKXg/CetH5CVaPw3Sn7u3hlrBqUfj2f6rqdmAyVrPXu/8IcIeqvgx8DdwiIj8HXgS2aggHX/3Q+nd8WjmqqiIyDXgKWKCqdaHSGoDe36rqSqxZobNF5Ba7Ob8GqAwjrQ8Dv7b3C1S1UkSmY71lbrPLQ/Ym2UbvemCzqm7GMri/a1sHOA1IE5FXgcuwuvjCQesddh1R1XqfY44HngQW+ZaHi177b70Ty5j9SES+C/wPWII1VuiE1g+AD0TEm266Hmv8BFVtttfFQB/gTqyXh5D9jwWM05YK603gXiDGp8z79vhdYJ5PeQrWQOCxWG8RJ2F143w7TLW+YGtMxHqovwK+Gcb39j/A8fb+WODnwJww1foC9hsYVktiE3CZk/fW5zNv67Ev1pvvaW0+fw9rsPjicNaK9SP2S2AF8K1wv7fA0Vhv5+84+dx2UO954MI2ZcdidZddHqp72+Xv6ejF4Wqst9WH7Icyos3nkVj9ez/zKXsGGOc2rcAEN+l1k1YgJZz0ejXb658Bb9vbl2K94MxwidYoYKSL7m1Iu3P91BoBJACvY3k+CnAGEBtKrd3+ro5c1L6hwN86+mHiwJvDJKAAayDo28AyYIyLtIb0h/cIu7djw+3ettVtb+/B6gJ5khD18feQ1pD98PaA3sftH+Sgj00FotWul4X1ovN9rHHWu7A8nhwZR+vSdw7pxexBR+/NxvJkycTq5vgzVheDbx3vm8N5WF03n2NNBDJaXazXTVq7otenbrL9+SrgBKPV3Xq7oXU24MHqNj8pVPe2J5eQRI+1J0HdB4zB8mCZr6orReSPWJZ1LPAq1g/BCuBZVd0gIhEa4tmVbtLqNr1u0todvT7HR2C9ca5qe+4jWavb9Hb3ubXnf31bVf8RbK3BIlReT7dg9TP/AEjF6tMDa8LRZOBl+yb+EhgA9AfHpuC7SSu4S6+btEIX9XpRVU+ofnhdphXcpbfLz613Do2bjQQE2VCIhdc97HlVXa+qdwIeEbkZa/LMVmAigKquxkoq7sTbo2u0uk2vm7S6Ta+btLpNb09o1VB02YSAoBoKtWjG8h/2nX14DfALrMGnO4EMsSKAvmFrKgimLrdrBXfpdZNWcJdeN2kFd+l1k9ag050BjsMtHPAOOAYrkF+8z2dPAjfZ26lYvvA/CKae3qLVbXrdpNVtet2k1W163aQ12EuPDGaLleSmBfir+syOtgecRFVbRORFoE5Vv2d/9gtgp6r+q9sCeqlWt+l1k1a36XWTVrfpdZNWx+imxY3DCqWwHVgK5Pt85uvrPAQr9soXdv05WG5tF3bn+r1Vq9v0ukmr2/S6Savb9LpJq9NLd2+0YCXlicQKR3w/Vihd7+cDsCJ+LgKigQlYk04+AC4K6Rd1kVa36XWTVrfpdZNWt+l1k1anl0BvbBTWIM5An7I4e52FFWV0Fgdm084CrnHki7lIq9v0ukmr2/S6Savb9LpJa7gtgdzk8cByYBfwQpvPvDf2Z1hx7A8JSY09uzZED4RrtLpNr5u0uk2vm7S6Ta+btIbjEoh7bDnwIFbuhzwRmQV401J6eRiIByaLyMkicoFdR1S1JYBrdRc3aXWbXjdpdZteN2l1m143aQ0/ArTK8fb6x8CnvhaZA65kP8KKvb4ZON8pC+gmrW7T6yatbtPrJq1u0+smreG2dPmGY6X0vL5NeT5Wer+7nf5ibtTqNr1u0uo2vW7S6ja9btIaLkt3bvYZwJf29jisaI5JOJR6sLdodZteN2l1m143aXWbXjdpDYelyyE8VPV/wB4RacDKBxurqvtUtaKr5wwWbtIK7tLrJq3gLr1u0gru0usmreFAlwyFiESIyJ1Yyc6vU9WzVXV3z0rrGdykFdyl101awV163aQV3KXXTVrDhS6H8BCRs4BPVLWhZyX1PG7SCu7S6yat4C69btIK7tLrJq3hQEgSFxkMBoPBvYQqcZHBYDAYXIoxFAaDwWDoFGMoDAaDwdApxlAYDAaDoVOMoTAYDAZDpxhDYTAYDIZOMYbCYDAYDJ1iDIXBYDAYOuX/A/leyXLwIcirAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -9974,13 +9977,13 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 37, "id": "eb96c79f", "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAD4CAYAAAAtrdtxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABCZElEQVR4nO2dd3gc1dX/P2dXvdlWdZFly7YkV1wBG0wx1RBsU98YUkhC4hAgQAgJEJIXSAIvIYSWF5IQSELekFBCCOaX0LuxMdhxx0WSq9wky7aK1Vf398eM7LW1K63kbbM6n+eZZ2bu3Nn97uzsnrn3nHuuGGNQFEVRlN7girQARVEUxbmoEVEURVF6jRoRRVEUpdeoEVEURVF6jRoRRVEUpdeoEVEURVF6TVykBYST7OxsM3z48EjLUBRFcRTLly/fZ4zJ8XWsTxmR4cOHs2zZskjLUBRFcRQiss3fMe3OUhRFUXqNGhFFURSl16gRURRFUXpNn/KJKIqi9ITW1lYqKipoamqKtJSwkJSURH5+PvHx8QGfo0ZEURTFDxUVFaSnpzN8+HBEJNJyQooxhurqaioqKigsLAz4vLB3Z4nIH0SkUkTWepVlishbIlJqrwd4HbtDRMpEZKOInO9VPlVE1tjHHpNY/4YVx9PU6qGp1UOrp532ds2e7QSamprIysqKeQMCICJkZWX1uNUViZbIn4D/Bf7sVXY78I4x5n4Rud3ev01ExgLzgXHAYOBtESk2xniA3wALgE+AfwOzgdfC9ikUpQta2tpZv7uWlTsOsmL7AVbsOMi26oaj6ohAnEtwiRDnEtyHF9dR+3EuIT8zhZmjspg5Kocxg9L7xJ9atNCXrnVvPmvYjYgx5kMRGX5M8TzgTHv7GeB94Da7/DljTDOwRUTKgJNEZCuQYYxZAiAifwYuRo2IEgGMMeyqaWLF9gOs3H6QFTsOsmZnDS1t7QDkpicyuaA/l03JJ97twtPeTlu7ob3d0NZu8NhLm9f6yDGr7sY9ddz37w3ABrLTEjh1VDanFeUwc1Q2A/slRfYCKCHF7XYzYcIEWltbiYuL4+qrr+bmm2/G5XLx/vvvM2vWLBYuXMicOXMAuOiii7j11ls588wzOfPMM3nwwQeZNm1ayPRFi08kzxizG8AYs1tEcu3yIVgtjQ4q7LJWe/vY8k6IyAKsFgsFBQVBlq30RRpa2lhdUcOK7QdZueMAK7YfpLKuGYDEOBcThvTj6hnDmDR0AJML+jOoX1JQnmZ31zSyqHQfi8r28XHZPl5ZuQuAotw0ZhZlc1pRNicXZpGaGC0/ayUYJCcns3LlSgAqKyu56qqrqKmp4Z577gEgPz+fe++997ARCTfRfrf5+uWZLso7FxrzJPAkwLRp07QjWuk163bVcP9rG1hcXo3H9mkMz0rh1FHZTC7oz6Sh/Rk9MIOEuNC4Ggf1S+aKaUO5YtpQ2tsNG/bUsaisio9K9/HXpdv548dbiXcLUwoGcFpRNjOLcpgwpB9uV9/pjol1cnNzefLJJznxxBO5++67AZg4cSKtra289dZbnHvuuWHXFC1GZK+IDLJbIYOASru8AhjqVS8f2GWX5/soV5SgU1nXxENvbuL5ZTvolxzPtWeMYOqwAUwaOoDM1ISIaHK5hLGDMxg7OIMFp4+kqdXDsq0H+KisikWl+3jwzU08+OYmMlMTuOOC0Vw+Nb9P9e2HgnteXcfnu2qD+ppjB2dw15xxPTpnxIgRtLe3U1lZebjsxz/+MT/+8Y/7tBFZCFwN3G+vX/Eq/6uIPITlWC8CPjXGeESkTkSmA0uBrwK/Dr9sJZZpavXw9KItPPFeGc1t7Xzj1EJuPKuIfimBx9CHi6R4NzOLsplZlA0XQHV9Mx+XV/OXJdv4wd9X8/raPdx36QTyMtR/EgsYc3SnymmnnQbARx99FHYtYTciIvI3LCd6tohUAHdhGY8XROQaYDtwBYAxZp2IvAB8DrQB19uRWQDfwYr0SsZyqKtTXQkKxhj+tWY397+2gYoDjZw7No8fXTiGwuzUSEsLmKy0ROZOHMxFEwbxp8VbeeCNDZz38IfcM3cc8yYN1lZJL+hpiyFUbN68GbfbTW5uLuvXrz9cfuedd3LvvfcSFxfev/VIRGdd6efQ2X7q3wvc66N8GTA+iNIUhVU7DvKz//c5y7YdYPTAdP76zZM5ZVR2pGX1GpdL+MbMQs4syeHWF1dx8/MreW3tbn5+8QRy0hMjLU/pIVVVVVx77bXccMMNnR4EzjvvPH7yk5+wa1d4e/ajpTtLUSLK7ppGfvn6Rv6xYifZaQncf+kErpg2NGac0iNy0njx2lN4etFmHnxzE+c9/AE/u3g8F50wONLSlG5obGxk0qRJh0N8v/KVr3DLLbf4rHvnnXcyb968sOqTY/vWYplp06YZnU9E8aaxxcPvPizntx+U027gmpmFXHfmSNKTos/vESxK99Zx64urWFVRwxdOGMTP5o2PWIBAtLN+/XrGjBkTaRlhxddnFpHlxhifg020JaL0SdrbDa+s2skvXtvIntomvjBhELdfMJqhmSmRlhZyivLSeek7p/C7DzfzyNubWLq5mp9fPIHZ4wdGWpriQNSIKH2OytomvvV/y1m14yAn5Pfj11dN5sThmZGWFVbi3C6unzWKs8fk8v0XVnHtX5Zz8aTB3D13HP1TtFWiBI4aEaVP0d5uuPn5lWzaU8evrpjIJZOH4IoRv0dvGD0wg39efypPvFfOr98t5ePyau6/dAJnj8mLtDTFIeikVEqf4smPNrO4vJp75o7jsqn5fdqAdBDvdnHTOUX88/pTyUpN4JpnlnHri6uoaWyNtDTFAagRUfoMqysO8uAbG/nChEFcMS2/+xP6GOOH9GPhDTO5YdYoXl6xk68+vfRwEklF8YcaEaVPcKi5jRv/toLc9ETuu2SCDrbzQ0Kci1vPL+HXV05mVUUNv3prY6QlKVGOGhGlT3D3wnVs29/Aw1+cFJVpS6KNCycM4sqTCvjdB5tZVLov0nL6NG63m0mTJh1etm7detyv+cgjj9DQ0NB9xQBQI6LEPK+u2sWLyyu4YdYoTh6RFWk5juG/LxrLqNw0vvfCSqrrmyMtp8/SkQq+Yxk+fPjhY8YY2tt73uWoRkRRAqTiQAM/enkNkwv6c+PZRZGW4yiSE9w8Nn8yNQ2t/ODvqzsl/VMiw9atWxkzZgzXXXcdU6ZMYceOHfzgBz9g/PjxTJgwgeeffx6A999/nzPPPJPLL7+c0aNH86UvfQljDI899hi7du1i1qxZzJo167j1aIivErO0edq5+bmVGAOPfnEy8W59ZuopYwdncMeFo7nn1c95ZvFWvnZqYaQlRY7Xboc9a4L7mgMnwAX3d1mlI+0JQGFhIQ8//DAbN27kj3/8I0888QQvvfQSK1euZNWqVezbt48TTzyR008/HYAVK1awbt06Bg8ezKmnnsrHH3/MjTfeyEMPPcR7771Hdvbx54XTX5USszz+XjnLth3g5xePpyAr9keih4qvnTKcs0bnct9rG1i/O7jzaSjd492d9fLLLwMwbNgwpk+fDsCiRYu48sorcbvd5OXlccYZZ/DZZ58BcNJJJ5Gfn4/L5QqaP+VYtCWixCTLt+3n0Xc2ccnkIVw82efMyUqAiAi/vPwEZj/6Ed/92wpevWEmyQnuSMsKP920GMJJauqRaQm66mZMTDySqdntdtPW1hZ0LdoSUWKO2qZWbnpuJUMGJPPTedExB4TTyUpL5KH/mkhZZT0/+9fnkZajeHH66afz/PPP4/F4qKqq4sMPP+Skk07q8pz09HTq6uqC8v5qRJSYwhjDj19ey+6aJh6dPzmms/GGm9OKcvj26SP469LtvL52d6TlKDaXXHIJJ5xwAhMnTuSss87igQceYODArpNpLliwgAsuuCAojnVNBa/EFP/4TwW3vLCK759bzHc1GivotLS1c/lvF7OtuoHXbjqNwf2TIy0ppGgqeIuuUsFrS0SJGbZVH+In/1zLScMzuW7WqEjLiUkS4lw8On8yrZ52vvf8SjztfechVPGNGhElJmj1tHPjcytxu4SH50+KmRkJo5HC7FR+Om88S7fs54n3yiItR4kwakSUmOCRtzexasdB7r/sBIbEeBdLNHDZlCHMnTiYR94pZfm2A5GWo0QQNSKK41lSXs0T75fzxWlDuXDCoEjL6ROICD+/ZDyD+ydx03MrqG3StPF9FTUiiqM52NDC955fSWFWKv89Z2yk5fQpMpLieXT+ZHbXNHHny2s1LUofRY2I4liMMdz+0hqqDzXz6PzJpCbq2NlwM6VgALecW8yrq3bx9+UVkZajRAA1Iopjef6zHby+bg8/OL+ECfn9Ii2nz3LtGSOZPiKTuxauY3NVfaTlxBwdqeDHjx/PnDlzOHjwYKQlHYUaEcWx/PaDcqYOG8A3Z46ItJQ+jdslPPLFySTEubjpuZU6G2KQ6cidtXbtWjIzM3n88ceP+zWDmf5EjYjiSHYdbGRrdQMXThik86RHAQP7JfHAZSewZmcND76psyGGihkzZrBz504AysvLmT17NlOnTuW0005jw4YNALz66qucfPLJTJ48mXPOOYe9e/cCcPfdd7NgwQLOO+88vvrVrwZNU1R1IovI94BvAgZYA3wdSAGeB4YDW4H/MsYcsOvfAVwDeIAbjTFvhF+1EgmWlFcDcMpInWQqWjhv3EC+PL2AJz/czJUnFVCYndr9SQ7iF5/+gg37NwT1NUdnjua2k24LqK7H4+Gdd97hmmuuAazUJb/97W8pKipi6dKlXHfddbz77rvMnDmTTz75BBHhqaee4oEHHuBXv/oVAMuXL2fRokUkJwcvDD5qjIiIDAFuBMYaYxpF5AVgPjAWeMcYc7+I3A7cDtwmImPt4+OAwcDbIlJsjPFE6CMoYWRxeTWZqQmU5KVHWorixZdOHsZfPtnOmp01MWdEIkXHfCJbt25l6tSpnHvuudTX17N48WKuuOKKw/Wam63ZJysqKvjiF7/I7t27aWlpobDwyBwwc+fODaoBgSgyIjZxQLKItGK1QHYBdwBn2sefAd4HbgPmAc8ZY5qBLSJSBpwELAmzZiXMGGNYUr6P6SMytSsryhiRk4rbJZTtDU6G2Ggi0BZDsOnwidTU1HDRRRfx+OOP87WvfY3+/fuzcuXKTvW/+93vcssttzB37lzef/997r777sPHvFPIB4uo8YkYY3YCDwLbgd1AjTHmTSDPGLPbrrMbyLVPGQLs8HqJCrtMiXG2VTewq6aJGSOPf1Y2JbgkxrkZlpXCpr0apRVs+vXrx2OPPcaDDz5IcnIyhYWFvPjii4D1YLVq1SoAampqGDLE+it85plnQq4raoyIiAzAal0UYnVPpYrIl7s6xUdZp9FOIrJARJaJyLKqqqrgiFUiymL1h0Q1RblpbKqMvZZINDB58mQmTpzIc889x7PPPsvTTz/NxIkTGTduHK+88gpgOdCvuOIKTjvttKBMf9sd0dSddQ6wxRhTBSAi/wBOAfaKyCBjzG4RGQRU2vUrgKFe5+djdX8dhTHmSeBJsFLBh1C/EiYWl+8jLyOREdrnHpUU56Xz9vpKmts8JMb1wRkQg0x9/dGtuldfffXw9uuvv96p/rx585g3b16ncu9urWASNS0RrG6s6SKSIiICnA2sBxYCV9t1rgZesbcXAvNFJFFECoEi4NMwa1bCjOUPqeaUkdlYt4kSbRTlpeNpN2zZdyjSUpQwEDUtEWPMUhH5O/AfoA1YgdWCSANeEJFrsAzNFXb9dXYE1+d2/es1Miv22bS3nupDLczQrqyopSg3DbC+q9EDMyKsRgk1UWNEAIwxdwF3HVPcjNUq8VX/XuDeUOtSoofF5fsA9YdEMyNyUnEJMRmhpXQmmrqzFKVbFpdXU5CZQv6AlEhLUfyQGOdmeFZqzERo9aXsxL35rGpEFMfgaTd8srlaWyEOoCgvNiK0kpKSqK6u7hOGxBhDdXU1SUlJPTovqrqzFKUrPt9VS11Tm/pDHECsRGjl5+dTUVFBXxkekJSURH5+fo/OCciIiEhmANXajTEHe/TuitIDOvwhakSin1G5aYcjtJzsXI+Pjz8qbYjSmUBbIrvspauYSjdQcNyKFMUPi8urKcpNIze9Z81tJfwU2znNNEIr9gnUiKw3xkzuqoKIrAiCHkXxSUtbO59t3c/lU3vW1FZ6iDHw+Svw7s8h/0S45De9ehmN0Oo7BOpYnxGkOorSK1ZXHKShxaNO9VCy41N4+jx48Wo4VAWr/mqV9YJYi9BS/BOQETHGNAWjjqL0lsXl1YjAyYVqRILO/i3w4tfg6XPh4DaY8xjcvBpSc+Gt/7ZaJ70gViK0lK7p1oiIyLki8nsRmWTvLwi5KkU5hsXl+xg7KIMBqQmRlhI7NOyHN+6E/z0RNr0BZ9wO3/0PTL0akvrBmbfD9iWw8bVevXxxXjrbqhtobtNEErFMIC2R64AfAF8WkbOASSFVpCjH0NTq4T/bDmpXVrBoa4Elj8Njk631xPmW8Zh1BySmHak35auQNQrevgs8PZ+T2ztCS4ldAjEiVcaYg8aYW4HzgBNDrElRjmL5tgO0eNo5JRjzhxgDu1bCimehqfb4X89JGAPr/gmPnwRv/AiGTIFrF8G8/4WMQZ3ru+PhnLth3yZY+Zcev11HhFap+kVimkCis/7VsWGMuV1EvhtCPYrSicXl+3C7hBMLAxmu5IO2ZtjyEWz8t9U1U2fPGPD+/8Dcx2DkWcETG63s+NTquqr4FHLHwpdfglHndH/e6Itg6Mnw3v/AhCsgIfD0+x0RWqUaoRXTdGtEjDGvHLP/69DJUZTOLC6vZmJ+P9ISe5BgoWE/lL4JG/4F5e9CSz3Ep1gGo+TH1pP3v38I/3cJTLkazvuZ5QeINfZvgXfugXUvQ1oezP01TPoSuAIcRS4C5/4U/nA+fPIEnP6DgN9aI7T6Bj1KeyIi04A7gWH2uQIYY8wJIdCmKNQ3t7G6oobvnDGy+8rV5UdaG9uXgGmHtIHWE3TJhVB4OsR7DVS89iOrNbL411D2ttUqCeTp3Am0t8Pix+C9e8EVB2feATNuONrnESgF06HkC7DoUZj6dUgNvFuxKC+NUo3Qiml6mjvrWSwn+xqgPfhyFOVoPtuyH0+78e1Ub/dAxbIjhmPfRqs8bzyc9n0ouQAGTQaXH9dffLL1lD1mLvzzOvjLZTD5K3D+vc5uldTtgZe/DZvftz7bBQ/49nn0hHPugiemwwcPwIUPBHxaUW5s5NBS/NNTI1JljFkYEiWK4oPF5ftIiHMxZdiAzgdfusbqpnHFwbBTYdo3LMMxYFjP3iR/Gnz7Q/jgfvj4USh7B+Y8CsXnBedDhJONr8Er10NrozXeY8pXrS6p4yWnxHqtZX+A6ddC5oiATivKi40cWop/epoK/i4ReUpErhSRSzuWkChTFCx/yNSCASTFH/MUa4z1pD36IvhBOVy90Ppz66kB6SA+yYpE+ubbVivkr1dYrZPGg8f5CcJEayP8+wfwt/mQMRgWfGCN9wjmFMJn3mFFbL3zs4BP0Qit2KenRuTrWONEZgNz7OWiIGtSFAAOHGrh8921vrP21u6ExgMwchYk9w/emw6ZCt/+AE67FVY9Z3XhbHojeK8fCirXw+/Pgk+fhOnXwzffgZzi4L9P+kCYcT2s+wfsXB7QKYXZGqEV6/TUiEw0xkwzxlxtjPm6vXwjJMqUPs/SLdUY42cq3N2rrfXAEMR0xCXC2T+Bb70DyQPgr/8FL19rGa1owhj47Cl48kwr19WXXoLZ91n6Q8UpN0JKFrx1V0DpUJLiNUIr1umpEflERMaGRImiHMPi8mpSEtyckN+/88E9awCBvHGhEzB4Mix4H07/Iax+AR6f3usUIEGnYT889yX41/ctf9B3FkNRGCLLkjLgjNtg60dQ+lZAp2iEVmzTUyMyE1gpIhtFZLWIrBGR1aEQpiiLy6s5cXgmCXE+btM9q62UHD0Y/NYr4hLhrDvhW+9aoa1/m2/9ee/8T2jftyu2fAi/OcUaB3P+ffClv0Nabvjef+rXYUChlQ6lvfu8WEW56WzVHFoxS0BGRERmiIhg+UKKsNKfdPhD5oROntJXqaxtoqyy3n++rD1rYOCE8AkaPAm+9R7MutMa/f77WfDneZZzP1zzb3ta4e174Jm5kJBmdbfNuN5/CHOoiEuAs/8bKj+3/Ebd4B2hpcQegd59VwPLgV8As4BmY8y2jiVk6pQ+y5LN1QC+82U1HrRSlofTiID153nGD+F7a+CceyyH9p/nWQbl81cCeirvNfs3W6PGFz0Ek79sOf8HTQzd+3XHuEtg8BRrMGNrY5dVNUIrtgl0PpFrjTFTgLuBAcCfRGSJiNwnIqeLiI4iUoLK4rJqMpLiGDvYx9iCvWutdSic6oGQ1A9m3gw3rYaLHrGM2gtftRIb/ufPVq6uYNDusQIIPn4Ufns6VJfBFX+yEiaGuhuvOzrSodTuhKW/67KqRmjFNj0abGiM2QBsAB4WkWSsVskVwEPAtODLU/oqSzZXM31EFm6Xj3EOe9ZY60ERzrYTnwTTvm4Nwvv8FVj0MCz8rpWscMb11jiNxPTAX6+tBXatgG0fW2lbti+F5hrr2LBT4ZLfQf+hofksvaHwNCg6Dz56yLoGKb4TZGqEVmwTkBERkZuBj4EVxpg2AGNMI/Bve1GUoLFjfwPb9zfwjVOH+66wZ42VTDCczuSucLlh/KVWF0/5u5YxefNO+PCXcNICOPnbvvNNNddbWXW3LYFti2HnMmizJwjNLobxl0DBKTBsBvQvCO9nCpRz7oHfngof/cpKF+MHjdCKXQJtieQDjwKj7WisxVhGZYkxZn+wxIhIf+ApYDxggG8AG4HngeHAVuC/jDEH7Pp3ANcAHuBGY0yUjwpTAuGwP2SUn0R/u1eH3x8SCCIw6mxrqVhmGZMPH7ASPE75qtUyObDVMhjbFsPuVWA8IC6ra27aN2DYKVAwo0dJDiNK3liYeJU10PGkBX4zBmgOrdglICNiT0iFiCRgdVudgvUH/3sROWiMCdbYkUeB140xl9vvlQL8CHjHGHO/iNwO3A7cZo9XmQ+MAwYDb4tIsTFG4wgdzpLyarLTEijK9ZFxtq0FqjaEZ0zE8ZA/DeY/C1Ub4ePHYNnT8KntO3AnWsdnfs9qZeSfZI2/cCqzfgRr/2452S990meVjgitrfsaKBnYgy4+JerpaQLGZCAD6Gcvu7Ay+h43IpIBnA58DcAY0wK0iMg84Ey72jPA+8BtwDzgOWNMM7BFRMqAk4AlwdCjRAZjDIvL9zFjZDbiK+9T1QZob42cU72n5JTAxY9bU8+Wvgk5Y6wZBUM5qjzc9BsCJ19rBQDMuN5n1FhHhNamvXVqRGKMQMeJPCkiH2N1K83A6s66wk6B8vUgaRkBVAF/FJEVdqLHVCDPGLMbwF53dIQPAXZ4nV9hlykOZvO+Q+ytbWbGiC7Gh4BzjEgH/fLt7qoZsWVAOpj5PSuH2Vt3+TysEVqxS6DjRAqARGAPsBPrD/tgkLXEAVOA3xhjJgOHsLqu/OErPWmnUV8iskBElonIsqqqquAoVULG4vKO8SH+jMhqiE+FzMIwqlK6Jbm/Nevh5ves4IJj6IjQKq3UCK1YI9BxIrOBE4EH7aLvA5+JyJsick+QtFQAFcaYpfb+37GMyl4RGQRgryu96nvHO+Zjda8dq/1Ju8U0LScnJ0hSlVCxpHwfg/slMSwrxXeFPWusfFmBTu+qhI8Tv2lFkb11lzWz4jGMyk1jk7ZEYo6A8yUYi7VYIb2vYUVnjQRuCoYQY8weYIeIlNhFZwOfAwuxRsxjrzvmfF8IzBeRRBEpxErH8mkwtCiRob3dsKS82r8/xBjLiER6fIjim7hEKznjntWwq3NuseI8zaEViwQ6TuRGrIisU4FW7PBe4A8EybFu813gWTsyazPW/CUu4AURuQbYjjW4EWPMOhF5AcvQtAHXa2SWs9mwp44DDa3+u7IOboPm2ugM71UsCmZY66oNVgSaFxqhFZsEGp01HKt76XsdTu5QYIxZie+R72f7qX8v4H+Ek+IoFpfvA/A9CRV4zSGiRiRq6T8M3AlWaPMxFOVqhFYsEug4kVtCLURRPtlcTWF2KoP7J/uusGcNiBtydUqbqMUdZ6Xo37ep06ERORqhFYsEGuLb7eQJgdRRFH+0edpZunm//1YIWEYkuxji/RgZJTrILvbZEtEIrdgk0O6sMd1MPiVYgw8VpVes3VVLXXObf38IWEZk2CnhE6X0jpwSWL8QWpusJJVeaIRW7BGoERkdQB11aiu9psMfMt3fIMOG/VBbof4QJ5BdDKbdSl0/cPxRh4rz0nlng+bQiiUC9YnoxFNKSFlSXs3ogelkp/kZzb1HneqOIceO0t+3sZMR0Qit2CPM82oqSmea2zx8tnW//1YIODfdSV8kaxQgUNXZue4doaXEBmpElIizcvtBmlrbu/eHZAyB1C7qKNFBfDIMGG6NFTkGjdCKPXpkRMTiyyLy3/Z+gYicFBppSl9hcXk1LoGTu2qJROscIopvckp8hvlqhFbs0dOWyBNYWXyvtPfrgMeDqkjpcywpr2b8kH70S473XaG10fpDUiPiHLKLLce6p63TIY3Qii16akRONsZcDzQB2DMMJgRdldJnaGhpY8WOA12PD6lcb80AqP4Q55BTAp4WK1XNMXTk0Gpp65ykUXEePTUirSLixk65LiI5gN4JSq9Zuf0grR4ToFNdWyKOIduO0PKV/sSO0Nqy71CYRSmhoKdG5DHgZSBXRO4FFgH3BV2V0mfo6NYYN6iL6WH3rIbEDCsvk+IMcoqt9b6uc2gpzqdH0+MaY54VkeVYCREFuNgYsz4kypQ+QWllPRlJceSkdzHb3541kDceXBpM6BiS+kHaQJ9hvocjtNS5HhP0dI51jDEbgM6xe4rSC8oq6ynKS/c9fwhYkxvtWQtTvhJeYcrxk1PssyWSFO9mWFaqhvnGCD0N8X1GRPp77Q8QkT8EXZXSZyirrGdUTpr/Cge2QOsh9Yc4kewSqyViOs1aTZFGaMUMPe0fOMEYc7Bjx47OmhxURUqfYf+hFqoPtVCU14UR2b3KWqsRcR45JdBSB3WdpyDSCK3YoadGxCUiAzp2RCSTXnSJKQpYrRCwxg34Zc8acMVBTiA5QJWoItt2rvsYua4RWrFDT43Ir4AlIvIzEfkZsBj4ZfBlKX2B0kqrO6NbI5Iz2pq/W3EWHYZfc2jFND2NzvqziCwDzrKLLjXGfB58WUpfoHRvPSkJbgb362KSqT1rYORZ/o8r0UtarhWl5cO5rhFasUOPjIiIJAKTgAz73MtFBGPMT0OgTYlxyqvqGZmThsvlJzKrvhLq96g/xKmIHHGuH4NGaMUOPe3OegWYB7QBh7wWRekxpXvrKeqyK0vnEHE8fsJ8QSO0YoWeOsXzjTGzQ6JE6VPUNbWyp7aJUV1FZh1OdzLefx0luskugRV/sWamTMk86lDHLIctbe0kxOlAUqfS029usYjoY6Fy3ByOzOpqjMju1dC/AJIH+K+jRDeHZzn04VzXCK2YoKdGZCawXEQ2ishqEVkjIqtDIUyJbTocqkV5XUyRumeNZu51OofDfDWHVqzS0+6sC0KiQulzlFfWk+B2MXSAn8islkPWfBQTLg+vMCW49C+AuCSfLRGN0IoNehriu80ebFgEJHkd6jxpgKJ0QWllPSNyUolz+2kM7/0cMOpUdzouN2QV+WyJaIRWbNDTEN9vAjcB+cBKYDqwhCPjRhQlIMoq6zkhv5//Cns60p1od5bjySmGis98HirKTdOWiMPpqU/kJuBEYJsxZhZW3qyqYAoSEbeIrBCR/2fvZ4rIWyJSaq+9067cISJlto/m/GDqUEJHY4uHHQcauh+pntQf+uWHTZcSIrJL4OB2q4vyGIry0ti675Dm0HIwPTUiTcaYJrAGHtpp4UuCrOkmwHuOktuBd4wxRcA79j4iMhaYD4wDZgNP2LMuKlFOeVU9xhxxrPpkzxqrK8tfinjFORyO0CrtdKg4L502jdByND01IhV2Kvh/Am+JyCvArmCJEZF84AvAU17F84Bn7O1ngIu9yp8zxjQbY7YAZcBJwdKihI7yqo7ILD8tEU8b7F2nXVmxQldhvvaDREceNcV59NSxfom9ebeIvAf0A14Pop5HgB8C3o+oecaY3fb77xaRXLt8CPCJV70Ku+woRGQBsACgoKAgiFKV3lK6tx63Sxieleq7QnUZtDXBIDUiMUHmSBC3T+d6R4TWpr3qF3EqvR4maoz5wBiz0BjTEgwhInIRUGmMWR7oKb5kdSow5kljzDRjzLScnJzj0qgEh9LKOoZlpfgfpXx4pLpGZsUEcQmQWaizHMYoAbVERGSRMWamiNRh/VGL99oYkxEELacCc0XkQqzw4QwR+QuwV0QG2a2QQUClXb8CGOp1fj5B7FpTQke3sxnuWQ3uhCMD1RTn4ycRI2iEltMJqCVijJlpr9ONMRnHroMhxBhzhzEm3xgzHMth/q4x5svAQuBqu9rVWEkgscvni0iiiBRijV35NBhalNDR0tbO1uqGrmcz3LMGcseAOz58wpTQklMM+8vB09rpkEZoOZtAWyK3dHXcGPNQcOT45H7gBRG5BtgOXGG/5zoReQH4HCur8PXGGE8IdShBYFv1ITztxn9kljFWS6TkwvAKU0JLdgm0t8H+LZZB8cI7QqtkYBcRe0pUEqhjveObLcEaJ7LQ3p8DfBhsUcaY94H37e1q4Gw/9e4F7g32+yuho7S7KXHrdkNDtUZmxRodhmPfxk5GxDtCS42I8wjIiBhj7gEQkTeBKcaYOnv/buDFkKlTYo7SvfWIwEh/PhF1qscm3okYx8w56pBGaDmbnkZnFQDe0VgtwPCgqVFinrKqeob0TyY5wc+40I6JqPLGhU+UEnoS0yFjiM+xIhqh5Wx6msX3/4BPReRlrOisS4A/B12VErOU7q3rejbD3ashcwQkBSVeQ4kmsouhaoPPQ6M0Qsux9KglYvsgvg4cAA4CXzfG3BcCXUoM4mk3bN53KIA5RLQrKybJGW2lPmnvHIVVrBFajqU3gw23YGXuXQGki8jpwZWkxCo79jfQ0tbuf4xIUy0c2KJGJFbJKYbWBqit6HRIc2g5lx4ZETsV/IfAG8A99vru4MtSYpHDkVn+xojsXWetNTIrNsm2c2j5GHTYEa2nObScR9Slgldil7Luwns7nOpqRGKTw4kYO6c/GZmTphFaDiUaU8ErMUppZR15GYlkJPkZib5nNaRkQ/rA8ApTwkNqNiRndjnL4YbdtREQphwPPY3OOjYV/AE0X5USIGWV9TqHSF8np8RnmC/AlIIBvLthL+3tBpdL7wGnEHBLREQEuNEYc9AYczfwE+BpjszvoSh+McZYiRf9dWV5WqFyvTrVY53sYp8tEYAZI7M40NDKRh0v4igCNiLGGIPVAunYD2oqeCW22VXTREOLx78RqdoInhb1h8Q6OSXQuB8O7et0aMbILACWlFeHW5VyHPTUJ/KJiJwYEiVKTNPhVPc70LAj3YlORBXbHI7Q6twaGdI/mYLMFJZsViPiJHpqRGYBS0SkXERWi8gaEVkdCmFKbNGR0sJ/ZNYaiEuGrFFhVKWEnY7ki35Grs8YkcXSzdV42jvNL6dEKT11rF8QEhVKzFNWWU9magJZaYm+K+xZDXljweUnp5YSG2TkQ3yKX+f6jJFZPL9sB+t31zJ+SL8wi1N6Q08d6+3GmG3HLiHUp8QIXc5m2DGHiDrVYx+Xq1vnOqhfxEn02rGuKIFijKG0st7/SPWaHdBUo071vkIXYb55GUmMyE5Vv4iDUMe6EnKq6pupaWzt3qmuRqRvkF0MtTuh2Xco7/SRWXy6ZT9tHk3G6AR641j/RB3rSk/oPt3JGkAsn4gS+xxOf+LHLzIii/rmNtbu0tHrTqCnjvXZQMdQUg2fUALiSHivn9Hqu1dbUVkJqWFUpUQM70SMQ6Z2Ojx9xBG/yKSh/cMoTOkNARkREanDt9EQu1xnEFL8UlZZT3piHHkZ/iKz1sBQ7SXtM2QWgivOZyJGgJz0RIpy01iyuZrvnDkyzOKUnhJQd5YxJt0Yk+FjSTfGqAFRuqR0bz0jc9MQXzmxGg9AzXaNzOpLuOMhc6TPlPAdzBiZxbKt+2lVv0jU05tJqRSlR5RW1vt3qu9cbq3ViPQtcor9tkTA8os0tHhYXXEwfJqUXqFGRAkpBxta2Fff7N+p/vlCSEiDYaeGV5gSWbJLYP8WaGv2efjkETpexCmoEVFCymGnuq8xIp5WWL8QSi6A+OQwK1MiSk4JGA9Ul/s8nJmawOiB6TpexAGoEVFCSpeRWVs+sHwi4y4Jsyol4mTbObS66tIamcWyrQdobvOESZTSG9SIKCGltLKepHgXQ/r7aGmsfRkSM2Dk2eEXpkSW7GJAunauj8iiua2dldsPhk2W0nOixoiIyFAReU9E1ovIOhG5yS7PFJG3RKTUXg/wOucOESkTkY0icn7k1Cv+KK2st+bPPnamurYW2PAqlFwI8UmREadEjoQU6D+0y5bIyYVZiKBdWlFO1BgRoA34vjFmDDAduF5ExgK3A+8YY4qAd+x97GPzgXFYgyCfEBFNARtllPubzXDze1a+rPGXhl+UEh1kl3TZEumXEs+4wRnqXI9yosaIGGN2G2P+Y2/XAeuBIcA84Bm72jMcmY53HvCcMabZGLMFKANOCqtopUvqm9vYebDRd3jvupchqR+MmBV+YUp0kFMC1aXQ7t/nMWNEFiu2H6SpVf0i0UrUGBFvRGQ4MBlYCuQZY3aDZWiAXLvaEGCH12kVdtmxr7VARJaJyLKqqqqQ6laOpvxwzqxjnOqtTbDhXzB6DsQlRECZEhVkF0NbExzc7rfKjJFZtHja+c+2A2EUpvSEqDMiIpIGvATcbIzpKgObj+HPnVOzGGOeNMZMM8ZMy8nJCZZMJQD8Jl4sfxeaazUqq6/TTSJGgBOHZ+J2ifpFopioMiIiEo9lQJ41xvzDLt4rIoPs44OASru8AhjqdXo+sCtcWpXuKa2sJ94tDMtKOfrAun9A8gAYcUZkhCnRQUeYr58JqgDSk+IZP6Sf+kWimKgxIvbMiU8D640xD3kdWghcbW9fDbziVT5fRBJFpBAoAj4Nl16le8oq6ynMTiXe7XWbtTbCxtdgzBwrh5LSd0nJhNScLiO0wPKLrKo4SENLW5iEKT0haowIcCrwFeAsEVlpLxcC9wPnikgpcK69jzFmHfAC8DnwOnC9MUa9b1FEWWVd566s0regpR7GaVSWQrcRWmD5RVo9hmVb1S8SjfR0PpGQYYxZhG8/B4DP0WjGmHuBe0MmSuk1Ta0etu9vYO6kY2Id1r0MKdkw/LTICFOii5xiWPMSGAO+sjwD04YNIM72i5xerH7NaCOaWiJKDLFl3yHazTFO9ZZDsOl1GDsX3FHz/KJEkuwSaK6B+r1+q6QmxjFxaH/1i0QpakSUkFB6OGeWlxEpfRNaG7QrSzlCTvfOdbD8Imt21lDfrH6RaEONiBISyirrcQkUZntNebv2H5CWB8NOiZwwJbrIGW2tuwjzBcsv4mk3fLZlfxhEKT1BjYgSEsoq6yjITCEp3s5E01xvtUTGzgOXZqdRbNIHQUJ6ty2RKQUDiHfreJFoRI2IEhJK99YfPVJ90+vW6GQdYKh4I9LtLIcAyQluJg8doH6RKESNiBJ0Wj3tbK0+dLRTfd3L1lPn0OmRE6ZEJwGE+QJMH5nFul011DS2hkGUEihqRJSgs626gVaPOeJUb6q1xoeMvRhcesspx5BTDPV7rKzOXTBjRBbtBj5Vv0hUob9oJeiUVdYBXlPibnwNPM2a9l3xTbadQ6ub1sjkgv4kxLm0SyvKUCOiBJ2OxIsjc2wjsu4fkJEPQ6ZFUJUStRxOxNi1XyQp3s3UggHqXI8y1IgoQae0sp4h/ZNJTYyz5lAvewfGXaxdWYpv+g8Dd0K3EVpghfqu313LgUMtYRCmBIL+qpWgU+Y9m+GGf0N7qw4wVPzjjoOsUQEbEYClW7Q1Ei2oEVGCiqfdHG1E1v0D+hfAkCmRFaZEN9ndh/kCTMzvT3K8W/0iUYQaESWo7DzQSHNbuxWZ1bAfNr9vjQ3xk1xPUQDLL3JgmzVVQBckxLmYNlz9ItGEGhElqJRVWZFZo3LTYP2r0N6mXVlK9+SUAAaqy7qtOn1EFpv21rOvvjn0upRuUSOiBJXSvV5T4q57GTJHwKCJEValRD2Hw3wD94t8oq2RqECNiBJUyirryUlPpL+phS0faleWEhhZo0Bc3SZiBJgwpB+pCeoXiRbUiChBpbSynlE5abB+IRiPdmUpgRGfBAMKrS7QQ10bh3i3ixMLM9UvEiWoEVGChjFWZFZRXpqV9j2rCPLGRVqW4hTOvw/2b4Y/nA8Ht3dZdcaILDZXHWJvbVOYxCn+UCOiBI29tc3UN7cxvl8TbPvYSnOiXVlKoJTMhq/8Ew5VwlPnwp61fquqXyR60DlKlaBRaufMmtbwEZj2Pp/2/VDrIfY27KWyoZKqhir2N+0nzhVHvCueBHcCie5EElwJJLiPWeyyRHci8a54Et2JpMSn4JI+8Mw3bAZ8/XX4y2Xwxwvhyr/C8Jmdqo0b3I/0pDiWlFczb9KQCAhVOlAjogSNjsis/F1vQM4YyB0TYUWhobW9lerGavY27KWqoeooQ1HZUGmVN1ZxqPVQ0N4zwZXA0PShDM0YSkF6AUPT7XXGUAalDiLOFUM/5byxcM2bliH5v0vg0t9baXO8cLuEk9UvEhXE0J2nRJqyqnpGJdURX/EJnHlHpOX0GmMM1U3VVNRVsKNuBxX1FVTU2Ut9BVUNVRjMUefESRw5KTnkpuRSNKCIU4ecSm5KLjnJOeSl5JGbkktmcibt7e20tLfQ7Gmm1dN6eLvF00Krp9Xabm+x9ttbDx+rbqxme912ttdt55Ndn9DkaTrqvYekDyE/PZ+C9AJrySggPz2f/LR8EtwJ4b6Ex0//ofCN1+GvX4QXvwaHfgknfeuoKtNHZPH2+kp2HWxkcP/kyOhU1IgowaNsbz1Xpa9A6kzUd2U1tTWxq34XFfW2ofAyEhV1FUf9SQPkpuSSn5bP9EHTGZw2mNyUXHKTc611Si4DkgaErbvJGENVYxXba7ezo24HO+p2WAamdjurKldR31p/VP2UuBQyEjPISPBaErvfDudn8klKJnz1Ffj7N+Dft0LdHjjrx4f9bB1+kSXl1Vw2NT9yOvs4akSUoFFWVc9ZiYsgb7w10VAUYIxhZ/1ONh3YxMYDGyk9UMrG/RvZUbfjqNZEclwy+en5DE0fyozBM8hPy7ee5NPzGZI2hER3YgQ/xdGIyGHjNW3g0en1jTEcaD5gGZba7eys30lNcw21LbXW0lzL9rrt1FbXUtdSR2Ob/zQjOck5nDf8PGYPn80JOSdExqAkpMAX/wL/+h589CDU74WLHgF3HGMGZtA/JZ4lm9WIRBI1IkpQqK5vJvHQboZ71sL0n0REQ0NrA5sObOq0dPgmBKEgo4CSzBIuGnHRUV0+mUmZSAxEkokImUmZZCZlMjGn+0wBrZ5WalpqDhuYDmNT01zDZ3s+48WNL/Ls+mcZmDqQ84edz+zC2YzLGhfea+WOgzmPQdpA+PABOLQPLv8DroQUyy+igw4jihoRJSiUVtZzofsTayfEXVnGGHYd2sWG/RvYtH/T4VbGjrodh+ukxadRPKCYOSPmUJxZTMmAEkb1H0VKfEpItTmNeHc82cnZZCdndzr2pTFfor6lnvd2vMcbW9/g2Q3P8sznz5Cfls/swtnMHj6b4gHF4TEoInDWnZCeB/+6Ff48D656nhkjsnhj3V527G9gaKZ+t5HA8UZERGYDjwJu4CljzP0RltQnKaus5yL3UlpyTyAha2TQXrfZ00z5wXI27t/IxgMbDxuOulYrnLijdTE6czRzR86lZEAJxZnFDE4dHBMti0iTlpDGnJFzmDNyDjXNNby7/V1e3/o6f1z7R55a8xTDM4YfNigj+wfve/fLid+E1Fx46Zvwh9mcdv6fAcsvokYkMogxpvtaUYqIuIFNwLlABfAZcKUx5nNf9adNm2aWLVsWRoV9h0defJub112GOeceZObNvXqN/U37LWPhZTC21GzBYzyA5bcoHlDM6MzRh9fauogM+5v28/a2t3lj6xt8tuczDIZR/Ucxe/hszhl2DnkpeaEd27J1EfztKkxCCvMP3crgkmk8/MVJoXkvBRFZbozxOb+1043IDOBuY8z59v4dAMaY//FVv7dGxNPmoaWtFeAoZ6y/SxfIJe3tQ3LHa/vS4e9tO96q4z3FLjlWgwi0m3bqDjVysKGJ2kNN1DU0UNvQxKGGJuobreVQUxMNjc00NDfR2NRMU3Mzp3mWclX8mzR+8x0aUjNpbGukobWBhraGw9uNbY0+92ubayk9UEplY+VhLbkpuYzOHE3JgBJKMksYnTmaoelD+8aAO4exr3Efb259kze2vsF/Kv9zuNwlLtLi00hPSCcjIYP0hPTDS1p8Wqey9IR0ktxJuF1u3GIvrmPW3tv7NuF67iu0HKrlNtcPeeTWa/3+rrr6ufW2xWqM9Sv0/k0e3jZHfqPWtn28C23ipdLfb9a7rKe43W6SEnoX7h3LRuRyYLYx5pv2/leAk40xN/iq31sjsvDDp7lzyyPHI1XxwiUukuOSSYlLITkumbSENEb2G0lJpmUwSgaUMCBpQKRlKr1gz6E9LN29lIPNB6lrqTtqqW2ppa7V2q5vqe8UiqyElunN6fx+weJenduVEXG6T8SXTT7KKorIAmABQEFBQa/eZOTgCczbXBSAGPHe8Y8Pu+37GaXnr33sIb+v6qNF00GcOw632018XBxx9johLg53nBuXxFmPQuIGlwvEjbhcIC7i0geTkppDSlyKZSDijxiKlPiUw9uJ7kT1V8QoA1MHMm/UvIDqeto91LfWH2Vkmj3NtJt2PO0e2kwb7aadtvY2PMbjd7upoZZdGxaDp63Heo/3EVo6bXTsio+yIGg6DsHDBo7t/cld4PSWSFi6sxRFUfoyXbVEnN7B/BlQJCKFIpIAzAcWRliToihKn8HR3VnGmDYRuQF4AyvE9w/GmHURlqUoitJncLQRATDG/Bv4d6R1KIqi9EWc3p2lKIqiRBA1IoqiKEqvUSOiKIqi9Bo1IoqiKEqvcfQ4kZ4iIlXAIWBfpLX0gGyco1e1hg4n6XWSVnCW3khpHWaMyfF1oE8ZEQARWeZv0Ew04iS9qjV0OEmvk7SCs/RGo1btzlIURVF6jRoRRVEUpdf0RSPyZKQF9BAn6VWtocNJep2kFZylN+q09jmfiKIoihI8+mJLRAkCorncFfQ+UGLQiIjIICfd2CIyWEQSI60jEERkgojcBmAc0IQVkYGR1hAoIpIXaQ2BIiIlInIBOOY+GCYivZtMKMyISFKkNfSUmDEiIpIoIr8BPgCeFJFLI62pK0QkTUQeAl4DnhKRq+zyqPtOxOJB4K9AnIjER1pTV4hIsog8ArwuIg+LSGCzJEUA+z54GHhNRH4XzfetrfVXwN+A3s2zGkbs++BhrN/YMyLyHbs8Gn9jqSLyJHCXiGTZZY54GI66i3kczAUGGWOKgf8H/FREiiOsySciMhj4E9YP8VTgFaDjCb89csr8kgMMAqYaY+41xrRGWlA3XA/kGGMmAf8E7hORURFV5AMRGQL8H9bv8EKsB6AHIirKDyKSAfwDmGmMmWKMeSXSmgLgRmCwMWYscDdwM0Tfb8xuffwUmAmkA7PAGa08cLgREZE0r10DVAHYN/jrwLdFpH8EpPlERNLtzRrg+8aYG4wx9UAe8E8RybHrRfx78dIK0A8oMsa0iMj5InKriJwfKW2+6LgXRMQNDMB6kMAY8wFWloK7RKRf5BT6pAl4yhhzkzFmD/ACsFJEToiwLl80YRm8dQAicqqInCciRfZ+xO/ZDkTEbesRYLVdPBj4l4iMjpyyoxGRFHuzGfgNcDpQCkwVkZF2nahvjUTNF98TRGSUiLwA/ElEviAiqUAjUGs/5QP8EpgCjLPPidiXcaxeIN4Ys01EUkTkJuB2IBXrJh9rjGmPlF4vrX+0r20mUA98LCI/BX6I9YfyiIhcfYwhj6TeZ0TkIru4DjhZRCbahnkDUAyMsM+J1LUtEZHfikgygDGmGnjfq8pQLI0bIyDvKHxobQHeBYyI7AHuA84FPhCRcZG8Z4/Va4zx2K2NXUCBiHwE/ALrvnhbRM6NsNYiEfkzVrf7XCDdGFNmjNkHvAck4aDWiOOMiP2E8QiwBuvJ6CLgJ8DbwGhgoogkGGP2YnUPfA8i92Uco/fPWN0WP7MPNwKvGWOGGmNuxWo9PQqR0evj2n4B+JExZjfWBGanA7cYY/4X65rPwXraiwg+ru1FWN0Cv8JqffwYeAurD/9N4DsQsWs7E+uaLgBuscvEGHPIq1oCsNUY0xxufd740mqzG8sv9qAx5gxjzA+Ap7CudyR/Y/70/gXroWc3cJIx5i7gf4DvRVDrV7C6r5dgGeU5wMUdx40xq4HPgXEiMjUSGnuMMcZRCzAE6+Zwe+1/CpwMXAH8EeuGAcuo/B7ryT+a9C4B5tr7wpHxOiOw+vCTo0jrUizjMRHrD/kbXvXfw+pzjqZruxQ4z94vBDLt7cuw/jzouN5h1joGGA+MAsqwEtodW2c+8Et7+1vACRG6rsdqHe51LOmYukVYvpKkcGoMRK/92xoCPAyMsMsSsVp/WRHSeh4wx2v/F8C19nacvS7AegC6DquX4vRIXdtAFke0RLybnsaYncA0rKZ0x/4TwD3GmBeBTcAdIvJ94DlgswmzIzgAvb/Bq4VkjDEiMgP4A7DYGNMYZVp/YoxZhTVado6I3GF3EawF9odLa4B6Hwd+ZO9vMcbsF5HTsZ5Qd9jlYXkKPUbreqDMGFOGZYx/atfx/g2eDWSJyEvAVVjdhmGhG633dNQxxjR5nXMK8DTwiXd5tOi1v+c9WIbuWyLyNeAN4DMsv2QktL4JvCkiHVOTN2H5azDGtNnr7UAa8HOsB4uw/sZ6TKStWBcWOxfrD0K8yjos9deARV7l/bGckidiPX2chtUt9OUo1vs3W2cq1k2/AvivKNX6PHCKvT8O+D4wP8qv7en2/mVYzsqrIqXV61hHizMd64n57GOOv4bluL48mrVi/cHdBqwEvhjJ+yBAvSdgPdX/K1z3bVdaj6n3LHDpMWUnYnXBfSlc1/a4PmukBfi5sHfaN8IbwOPeN4m97cbqT7zZq+wZYLwT9QKTnKLVgde2f7Ro7dBrr28G/p+9fSXWw8+ZDtEaBxRH033Qjd6wdg8HqNUFpAAvY0VnCnA+kBhOrUH5vJEW4OMLmI3lBHXZN2sFkNfxRXDkiWMqsAXLKfVlYDkw1mF6w/rH3Meu7bho0XpMPW8DeACrW+VpwuhTCILWcP8pH4/e39t/1mHxgwWq1a47COsB6BtYft17sSKzwu6zO54lKnwidhhpBy6syJo4LGfZZ1iOM4yNiLiNMcuxnjgmY0Vl3GSM+dxhetc6SKvTru26aNHqja25n4j8EstHc6Ex5hoTYp9CkLWG3GcXRL3fMsY0GPtfO1q02kwDzsQyPN83xtxpjGkKpdaQEEkLhjWI7SlgMdYo45FY1vlRrP7hKqyRpiuxHKO59nku1Rs7Wp2mt7davc53EabIKydpdZre47hnO1rQqcC3w33/Bv06RPTN4X6skNwxWOMOPvQ69hhwvr19GpZTbLjqjT2tTtOrWlXv8WrFYV1WXS0R6c4Si44Qt2eNMeuNMT8DPCLyc7u8GqsvE2PMR/Z2ZudXCz1O0uskreAsvao1dDhJbzC0GtuSxAIRMSLGog0rPtp7VOZ1wAKx0pg0AJeJyC0i8iKWk2xb+NU6S6+TtIKz9KrW0OEkvU7SGhYi0fzB7sfGym1VhVe0B9aAu+9gRSlciJXO4LpINdWcptdJWp2mV7WqXqdpDccS0ulxxZrAyAM8arxGjdujdMUY4xGR54BGY8zX7WO3AnuMMX/pqGvClLrZSXqdpNVpelWr6nWa1ogSIkudhJV6YiewDJjodcw7lrsQK5fNR3b9+Vipmy8Nha5Y0OskrU7Tq1pVr9O0RsMSqi9BsCZbcmOljH4IK91xx/GBWFlXPwHigUlYA27eBC4L+0VwkF4naXWaXtWqep2mNRqWYF30OOBWYKhXWZK9HoSV7fU8jsRHnwd8J2If2kF6naTVaXpVq+p1mtZoXILxBUwA/gPsBf52zLGOi34z1jwEndKGY+e7CeMN4xi9TtLqNL2qVfU6TWu0LsEI8d2HNbBmNDBcRM4DOqYp7eBxIBmYJiJniMgldh0xxniCoCFW9TpJq9P0qlbV6zSt0UmQrHmyvf428L63JedIONy3sHLnlwEXR9JyOkmvk7Q6Ta9qVb1O0xqNS9C/DKwpXm88pnwi1pSP90f6AztVr5O0Ok2valW9TtMaTUsovojzgaX29nisJGUZRGg6yljS6yStTtOrWlWv07RGyxL0tCfGmDeAAyLSjDV/cKIxptYYUx3s9woGTtLrJK3gLL2qNXQ4Sa+TtEYLQTUiIuKyE5CNAW4wxnzBGFMZzPcIJk7S6ySt4Cy9qjV0OEmvk7RGE0FPeyIiFwDvGmOag/rCIcJJep2kFZylV7WGDifpdZLWaCGkubMURVGU2CYqpsdVFEVRnIkaEUVRFKXXqBFRFEVReo0aEUVRFKXXqBFRFEVReo0aEUVRFKXXqBFRFEVReo0aEUVRFKXX/H8zCRS2wHoJdwAAAABJRU5ErkJggg==", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAD4CAYAAAAtrdtxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAABCDElEQVR4nO2dd3gc1dX/P0erXixZ1bbkJlvuFRdsbFODKQFMfTFptMQhQGghbyAkL5CE/AghoSQQQiAJCSSUBIIJoXcXDHbccZHkKtuyii1Zsrp0f3/MSF5bu9JK3jar83meeXbKnd3v7s7umXvPueeIMQZFURRF6Q1RoRagKIqiOBc1IoqiKEqvUSOiKIqi9Bo1IoqiKEqvUSOiKIqi9Bo1IoqiKEqviQ61gGCSmZlphg0bFmoZiqIojmLVqlUVxpgsT8f6lBEZNmwYK1euDLUMRVEURyEiO70d0+EsRVEUpdeoEVEURVF6jRoRRVEUpdf0KZ+IoihKT2hubqakpISGhoZQSwkK8fHx5OXlERMT4/M5akQURVG8UFJSQkpKCsOGDUNEQi0noBhjqKyspKSkhOHDh/t8XtCHs0TkjyJSJiIb3Pali8g7IlJoP/Z3O3aniBSJyBYROctt/zQRWW8fe1Qi/RtWHE9DcysNza00t7bR1qbZs51AQ0MDGRkZEW9AAESEjIyMHve6QtET+TPwW+AvbvvuAN4zxtwvInfY2z8QkXHAQmA8MAh4V0RGGWNagd8Bi4BPgf8AZwNvBO1dKEoXNLW0sWnfIdbsrmL1roOs3l3Fzsq6o9qIQHSUECVCdJTg6liijtqOjhLy0hOZOzKDuSOzGDswpU/8qYULfemz7s17DboRMcZ8LCLDjtm9ADjVXn8G+BD4gb3/eWNMI7BdRIqAmSKyA+hnjFkOICJ/AS5EjYgSAowx7K1uYPWug6zZVcXq3VWs31NNU0sbANkpcUwdksYlJ+QR44qita2NljZDW5uhpc3Qai8tbo9Hjlltt5TW8PP/bAY2k5kcy5yRmcwryGLuyEwGpMaH9gNQAorL5WLixIk0NzcTHR3NlVdeyS233EJUVBQffvghp512GosXL+b8888H4LzzzuP222/n1FNP5dRTT+XBBx9k+vTpAdMXLj6RHGPMPgBjzD4Rybb352L1NNopsfc12+vH7u+EiCzC6rEwZMgQP8tW+iJ1TS2sK6lm9a4q1uw+yOpdVZTVNAIQFx3FxNxUrpw9lCmD+zN1SBoDU+P9cje7r7qeJYUVLCmqYGlRBa+u2QtAQXYycwsymVeQyYnDM0iKC5efteIPEhISWLNmDQBlZWV85Stfobq6mnvvvReAvLw87rvvvg4jEmzC/Wrz9MszXezvvNOYJ4EnAaZPn64D0Uqv2bi3mvvf2Myy4kpabZ/GsIxE5ozMZOqQNKYMTmPMgH7ERgfG1TgwNYHLpg/msumDaWszbC6tYUlROZ8UVvC3Fbv409IdxLiEE4b0Z15BJnMLspiYm4orqu8Mx0Q62dnZPPnkk8yYMYN77rkHgMmTJ9Pc3Mw777zDmWeeGXRN4WJE9ovIQLsXMhAos/eXAIPd2uUBe+39eR72K4rfKatp4Ndvb+WFlbtJTYjhulPymTa0P1MG9yc9KTYkmqKihHGD+jFuUD8WnTyChuZWVu44yCdF5SwprODBt7fy4NtbSU+K5c5zxnDptLw+NbYfCO59bSNf7D3k1+ccN6gfd58/vkfn5Ofn09bWRllZWce+H/3oR/zoRz/q00ZkMXAlcL/9+Krb/r+JyK+xHOsFwGfGmFYRqRGRWcAK4BvAb4IvW4lkGppbeXrJdh7/oIjGljaumTOcm04vIDXR9xj6YBEf42JuQSZzCzLhHKisbWRpcSXPLt/J9/+xjjc3lPLziyeS00/9J5GAMUcPqsybNw+ATz75JOhagm5EROTvWE70TBEpAe7GMh4visi1wC7gMgBjzEYReRH4AmgBbrAjswC+gxXplYDlUFenuuIXjDG8vn4f97+xmZKD9Zw5LocfnjuW4ZlJoZbmMxnJcVwweRDnTRzIn5ft4IG3NjP/oY+594LxLJgySHslvaCnPYZAsW3bNlwuF9nZ2WzatKlj/1133cV9991HdHRw/9ZDEZ11hZdDZ3hpfx9wn4f9K4EJfpSmKKzdXcVP//0FK3ceZMyAFP72zRM5aWRmqGX1mqgo4Zq5wzl1dBa3v7SWW15Ywxsb9vGzCyeSlRIXanlKDykvL+e6667jxhtv7HQjMH/+fH784x+zd29wR/bDZThLUULKvup6fvnmFl5evYfM5Fjuv3gil00fHDFO6fysZF667iSeXrKNB9/eyvyHPuKnF07gvEmDQi1N6Yb6+nqmTJnSEeL79a9/ndtuu81j27vuuosFCxYEVZ8cO7YWyUyfPt1oPRHFnfqmVn7/cTFPfFRMm4Fr5w7n+lNHkBIffn4Pf1G4v4bbX1rL2pJqvjxpID9dMCFkAQLhzqZNmxg7dmyoZQQVT+9ZRFYZYzxONtGeiNInaWszvLp2D794Ywulhxr48sSB3HHOGAanJ4ZaWsApyEnhn985id9/vI2H393Kim2V/OzCiZw9YUCopSkORI2I0ucoO9TAt/66irW7q5iUl8pvvjKVGcPSQy0rqES7orjhtJGcMTab7724luueXcWFUwZxzwXjSUvUXoniO2pElD5FW5vhlhfWsLW0hl9dNpmLpuYSFSF+j94wZkA//nXDHB7/oJjfvF/I0uJK7r94ImeMzQm1NMUhaFEqpU/x5CfbWFZcyb0XjOeSaXl92oC0E+OK4uYvFfCvG+aQkRTLtc+s5PaX1lJd3xxqaYoDUCOi9BnWlVTx4Ftb+PLEgVw2Pa/7E/oYE3JTWXzjXG48bSSvrN7DN55e0ZFEUlG8oUZE6RMcbmzhpr+vJjsljp9fNFEn23khNjqK288azW+umMrakmp+9c6WUEtSwhw1Ikqf4J7FG9l5oI6HLp8SlmlLwo1zJw7kiplD+P1H21hSWBFqOX0al8vFlClTOpYdO3Yc93M+/PDD1NXVdd/QB9SIKBHPa2v38tKqEm48bSQn5meEWo5j+L/zxjEyO5lbX1xDZW1jqOX0WdpTwbcvw4YN6zhmjKGtredDjmpEFMVHSg7W8cNX1jN1SBo3nVEQajmOIiHWxaMLp1Jd18z3/7GuU9I/JTTs2LGDsWPHcv3113PCCSewe/duvv/97zNhwgQmTpzICy+8AMCHH37IqaeeyqWXXsqYMWP46le/ijGGRx99lL1793Laaadx2mmnHbceDfFVIpaW1jZueX4NxsAjl08lxqX3TD1l3KB+3HnuGO597QueWbaDq+YMD7Wk0PHGHVC63r/POWAinHN/l03a054ADB8+nIceeogtW7bwpz/9iccff5x//vOfrFmzhrVr11JRUcGMGTM4+eSTAVi9ejUbN25k0KBBzJkzh6VLl3LTTTfx61//mg8++IDMzOPPC6e/KiVieeyDYlbuPMjPLpzAkIzIn4keKK46aRinj8nm529sZtM+/9bTULrHfTjrlVdeAWDo0KHMmjULgCVLlnDFFVfgcrnIycnhlFNO4fPPPwdg5syZ5OXlERUV5Td/yrFoT0SJSFbtPMAj723loqm5XDjVY+VkxUdEhF9eOomzH/mE7/59Na/dOJeEWFeoZQWfbnoMwSQp6UhZgq6GGePijmRqdrlctLS0+F2L9kSUiONQQzM3P7+G3P4J/GRBeNSAcDoZyXH8+n8mU1RWy09f/yLUchQ3Tj75ZF544QVaW1spLy/n448/ZubMmV2ek5KSQk1NjV9eX42IElEYY/jRKxvYV93AIwunRnQ23mAzryCLb5+cz99W7OLNDftCLUexueiii5g0aRKTJ0/m9NNP54EHHmDAgK6TaS5atIhzzjnHL451TQWvRBQv/7eE215cy/fOHMV3NRrL7zS1tHHpE8vYWVnHGzfPY1BaQqglBRRNBW/RVSp47YkoEcPOysP8+F8bmDksnetPGxlqORFJbHQUjyycSnNrG7e+sIbWtr5zE6p4Ro2IEhE0t7Zx0/NrcEUJDy2cEjEVCcOR4ZlJ/GTBBFZsP8DjHxSFWo4SYtSIKBHBw+9uZe3uKu6/ZBK5ET7EEg5cckIuF0wexMPvFbJq58FQy1FCiBoRxfEsL67k8Q+LuXz6YM6dODDUcvoEIsLPLprAoLR4bn5+NYcaNG18X0WNiOJoquqauPWFNQzPSOL/zh8Xajl9in7xMTyycCr7qhu465UNmhalj6JGRHEsxhju+Od6Kg838sjCqSTF6dzZYHPCkP7cduYoXlu7l3+sKgm1HCUEqBFRHMsLn+/mzY2lfP+s0UzMSw21nD7LdaeMYFZ+Oncv3si28tpQy4k42lPBT5gwgfPPP5+qqqpQSzoKNSKKY3nio2KmDe3PN+fmh1pKn8YVJTx8+VRio6O4+fk1Wg3Rz7TnztqwYQPp6ek89thjx/2c/kx/okZEcSR7q+rZUVnHuRMHap30MGBAajwPXDKJ9XuqefBtrYYYKGbPns2ePXsAKC4u5uyzz2batGnMmzePzZs3A/Daa69x4oknMnXqVL70pS+xf/9+AO655x4WLVrE/Pnz+cY3vuE3TWE1iCwitwLfBAywHrgaSAReAIYBO4D/McYctNvfCVwLtAI3GWPeCr5qJRQsL64E4KQRWmQqXJg/fgBfmzWEJz/exhUzhzA8M6n7kxzELz77BZsPbPbrc45JH8MPZv7Ap7atra289957XHvttYCVuuSJJ56goKCAFStWcP311/P+++8zd+5cPv30U0SEp556igceeIBf/epXAKxatYolS5aQkOC/MPiwMSIikgvcBIwzxtSLyIvAQmAc8J4x5n4RuQO4A/iBiIyzj48HBgHvisgoY0xriN6CEkSWFVeSnhTL6JyUUEtR3PjqiUN59tNdrN9THXFGJFS01xPZsWMH06ZN48wzz6S2tpZly5Zx2WWXdbRrbLSqT5aUlHD55Zezb98+mpqaGD78SA2YCy64wK8GBMLIiNhEAwki0ozVA9kL3Amcah9/BvgQ+AGwAHjeGNMIbBeRImAmsDzImpUgY4xheXEFs/LTdSgrzMjPSsIVJRTt90+G2HDC1x6Dv2n3iVRXV3Peeefx2GOPcdVVV5GWlsaaNWs6tf/ud7/LbbfdxgUXXMCHH37IPffc03HMPYW8vwgbn4gxZg/wILAL2AdUG2PeBnKMMfvsNvuAbPuUXGC321OU2PuUCGdnZR17qxuYPeL4q7Ip/iUu2sXQjES27tcoLX+TmprKo48+yoMPPkhCQgLDhw/npZdeAqwbq7Vr1wJQXV1Nbq71V/jMM88EXFfYGBER6Y/VuxiONTyVJCJf6+oUD/s6zXYSkUUislJEVpaXl/tHrBJSlqk/JKwpyE5ma1nk9UTCgalTpzJ58mSef/55nnvuOZ5++mkmT57M+PHjefXVVwHLgX7ZZZcxb948v5S/7Y5wGs76ErDdGFMOICIvAycB+0VkoDFmn4gMBMrs9iXAYLfz87CGv47CGPMk8CRYqeADqF8JEsuKK8jpF0e+jrmHJaNyUnh3UxmNLa3ERffBCoh+prb26F7da6+91rH+5ptvdmq/YMECFixY0Gm/+7CWPwmbngjWMNYsEUkUEQHOADYBi4Er7TZXAq/a64uBhSISJyLDgQLgsyBrVoKM5Q+p5KQRmViXiRJuFOSk0Npm2F5xONRSlCAQNj0RY8wKEfkH8F+gBViN1YNIBl4UkWuxDM1ldvuNdgTXF3b7GzQyK/LZur+WysNNzNahrLClIDsZsL6rMQP6hViNEmjCxogAGGPuBu4+ZncjVq/EU/v7gPsCrUsJH5YVVwDqDwln8rOSiBIiMkJL6Uw4DWcpSrcsK65kSHoief0TQy1F8UJctIthGUkRE6HVl7IT9+a9qhFRHENrm+HTbZXaC3EABTmREaEVHx9PZWVlnzAkxhgqKyuJj4/v0XlhNZylKF3xxd5D1DS0qD/EAURKhFZeXh4lJSX0lekB8fHx5OXl9egcn4yIiKT70KzNGFPVo1dXlB7Q7g9RIxL+jMxO7ojQcrJzPSYm5qi0IUpnfO2J7LWXrmIqXcCQ41akKF5YVlxJQXYy2Sk9624rwWeUndNMI7QiH1+NyCZjzNSuGojIaj/oURSPNLW08fmOA1w6rWddbaUXbP8EPrgPcqfBWb0LftQIrb6Dr0Zktp/aKEqvWFdSRV1TqzrVA0n5Fnjnbtj6BrjiYNenMHkhDJjY46eKtAgtxTs+RWcZYxr80UZResuy4kpE4MThakT8Tm0Z/PtWeHw27FwKX7oHblkH8amWUeklkRKhpXRNt0ZERM4UkT+IyBR7e1HAVSnKMSwrrmDcwH70T4oNtZTIoakOPv4lPDoV/vsXmPFNuGk1zL0VUgbAyd+H4veg+INePf2onBR2VtbR2KKJJCIZX3oi1wPfB74mIqcDUwKqSFGOoaG5lf/urNKhLH/R1gqrn4PfTIP3fwb5p8L1K+DcByDJLevrzG9B2hB45/+gred1090jtJTIxRcjUm6MqTLG3A7MB2YEWJOiHMWqnQdpam3jJH/VD6neA4XvQEuTf57PSRS/D78/BV69HvoNhKvfgIXPQebIzm2j4+D0H0PpOtjwjx6/VHuEVqH6RSIaXxzrr7evGGPuEJHvBlCPonRiWXEFrihhxnBfpit5wBjYtwa2vAlb/mP9KQJkj4MFj0HuCX7TGrbs32j1KIretXoXl/4Rxl8M3WVCnnApLPsNvPdTGLfAMiw+0h6hVagRWhFNt0bEGPPqMdu/CZwcRenMsuJKJuelkhzXgwQLzQ2w/WMr0mjLm1CzFyQKBp8IZ/4EUgZaf6pPfQnm3ASn3AExETj/5NA+K1x3zXMQlwLzfwYzF/luDKKirM/rrxfCZ3+Ak270+aU1Qqtv0KO0JyIyHbgLGGqfK4AxxkwKgDZFobaxhXUl1XznlBE+NC6HwrdgyxuWM7j5MMQkwcgzYPQ5UDD/6DH/gvnw9o9gyUOw+XWrVzJ4ZuDeTDAxBlY+DW//GFqb4cTvwMm3Q2IvenMjToMRZ1hO+KlfhYT+Pp9akJNMoUZoRTQ9zZ31HJaTfT3Qc0+bovSQz7cfoLXNeHaqG2PNbdjyH9j6Juz+DDDQL9ea3zD6XBg213sPIyENFvwWxl8Er90MT8+H2TfAaXdBrIOzBB+uhMU3Wp/LiNPhy7+C9Pzje84z74Un5lkG98yf+HxaQXZk5NBSvNNTI1JujFkcECWK4oFlxRXERkdxwlAPd7+v3ghrnrXWB06GU++wehwDJnU/1u/OyDPgO8vg3bth+W+tP98LfgvD5vjnTQSTbR/Cy9+G+gNw1v+DE6+zhqSOlwETLcP86RMw41uQNrj7c7B6IpGQQ0vxTk+vrrtF5CkRuUJELm5fAqJMUbD8IdOG9Cc+5pi7WGOs3sfIL8GtX8C3P7aMyMDJPTMg7cT3g/Megm8stkJg/3wu/Of70OiQ8fyWJsvH85cLrffyzXdh9vX+MSDtnHaX9fjBz30+RSO0Ip+eXmFXY80TORs4317O87MmRQHg4OEmvth3yHPW3ppSqKuAgrMgNdd/L5p/itUrmflt+OxJ+N1s6+4+nKkogqfPhKWPwLSrYNFHljH1N2mD4cRvw9q/Q+l6n04ZnqkRWpFOT43IZGPMdGPMlcaYq+3lmoAoU/o8K7ZXYoyXUrjtYbq9yOvULXHJ1sS7q9+AqBj4ywLLZ9JwyP+vdTwYA//9K/x+HlTthMufhfMfDqw/Z95tVjqUd+/xqXl8jEZoRTo9NSKfisi4gChRlGNYVlxJYqyLSXlpnQ92GJEJgRMw9CS4bgnMvtFKC/L4bCh8N3Cv1xPqD8I/rrYc6LnT4LqlMPb8wL9uQn8ryqvoXZ97aBqhFdn01IjMBdaIyBYRWSci60VkXSCEKcqy4kpmDEsnNtrDZVq63oo4iksJrIjYRCsd+jVvW+vPXQIvXeXzcE5A2LkMfjcXNr0GZ9wN33jVv0N63THjW5A62Od0KAXZKezQHFoRi09GRERmi4hg+UIKsNKftPtDgnD7o/Q1yg41UFRW6z1f1r51gRnK8sbgGfDtT+Dk/7VSpjwxF569BHYssYaVgkFrC7x/H/z5y+CKsQzbvNsgKsihszHxVjqUfWthwz+7be4eoaVEHr72RK4EVgG/AE4DGo0xO9uXgKlT+izLt1UCeM6X1XAIDm4PrhEB+8/zLrh1w5E/0T9/2XJqb/p3r5IU+szBHfCnc+DjB2DSQrjuE8ibFrjX646Jl1mf//s/gZbGLptqhFZk42s9keuMMScA9wD9gT+LyHIR+bmInCwiOotI8SvLiirpFx/NuEEe5hbs32g9DghABJIvtPsFbllvTeSrLYMXvgqPn2hlx/VXYse2NijdYOWuemIelG+GS56Gi34X+GG87mhPh1K1Cz5/qsumGqEV2fRosqExZjOwGXhIRBKweiWXAb8GpvtfntJXWb6tkln5GbiiPMz5aPdHBLsnciwxCVYNjhOugi/+BUsetrLjfnCfNfP9hCutSC9faWmyEkXuXAo7l8PuT6Gh2jo2ZDZc9HvoP9T/76O3jDgd8k+z0qFM+aqVAcADGqEV2fhkRETkFmApsNoY0wJgjKkH/mMviuI3dh+oY9eBOq6ZM8xzg9K1kJhpFU4KB1zRMPFSmHAJFL1npQZ564fw0QPWvIqZ34YkD76dxloo+dxylO9aDiUroaXeOpY5CsZdaEWIDT3Jyrwbjpx5r5VafslD1roXNEIrcvG1J5IHPAKMsaOxlmEZleXGmAP+EiMiacBTwATAANcAW4AXgGHADuB/jDEH7fZ3AtcCrcBNxpi3/KVFCR0d/pCRXuqHlK6HgT1MbRIMRKDgS9ay+3NY+jB89AtY+iic8A2YdqXl29i5zFr2rQXTamUXHjAJpl9t9TiGzIbkrFC/G98YOBkm/Q+seMIqYpWa57GZ5tCKXHwyInZBKkQkFmvY6iSsP/g/iEiVMcZfc0ceAd40xlxqv1Yi8EPgPWPM/SJyB3AH8AN7vspCYDwwCHhXREYZYzSO0OEsL64kMzmWgmwPQ0GtzVC2CWZ9J/jCesLgGVaxp/It1kzylU/DZ7+3jrnirLkdc2+FobMhb6aVqsSpnP4j2PiKlQ7lwsc9NmmP0NpRUcfoASH25yh+pacJGBOAfkCqvezFyuh73IhIP+Bk4CoAY0wT0CQiC4BT7WbPAB8CPwAWAM8bYxqB7SJSBMwElvtDjxIajDEsK65g9ohMxFNPo3wLtDZZd+5OIGu09cd62g+h8G3IGguDpkZW7ZK0IVaNkuWPWb6gnPGdmrRHaG3dX6NGJMLwdZ7IkyKyFGtYaTbWcNZldgqUq/2kJR8oB/4kIqvtRI9JQI4xZh+A/Zhtt88FdrudX2LvUxzMtorD7D/UyOx8L/NDwsWp3lNS82D6NVbPI5IMSDvzvmf1pt652+NhjdCKXHydJzIEiANKgT1Yf9hVftYSDZwA/M4YMxU4jDV05Q1PA+KdZn2JyCIRWSkiK8vLy/2jVAkYy4rb54d0YUSiEyDDQ01wJXQkpsO826HoHdj2UafD7RFahWUaoRVp+DpP5GxgBvCgvet7wOci8raIeA/J6BklQIkxZoW9/Q8so7JfRAYC2I9lbu3dixrkYQ2vHav9SbvHND0ryyHOyj7M8uIKBqXGMzTDSxLB0nXWcEmwZ2kr3TNzUZfpUEZmJ7NVeyIRh8+5s4zFBqyQ3jeworNGADf7Q4gxphTYLSKj7V1nAF8Ai7FmzGM/ttd8XwwsFJE4ERmOlY7lM39oUUJDW5theXGld3+IMZYRcdpQVl8hJh5O/r4112Xf6k6HR+VoDq1IxNd5IjdhRWTNAZqxw3uBP+Inx7rNd4Hn7MisbVj1S6KAF0XkWmAX1uRGjDEbReRFLEPTAtygkVnOZnNpDQfrmr0PZVXvtibfDXSIU70vMtSuBlm22YpAc0MjtCITX6OzhmENL93a7uQOBMaYNXie+X6Gl/b3AfcFSo8SXJYVVwB4LkIFbk51NSJhS/9h4IqFii2dDhVka4RWJOLrPJHbAi1EUT7dVsnwzCQGpSV4brBvnTUxL1tL2oQtrmhIHwHlWzsdys/SCK1IxNcQ3//6o42ieKOltY0V2w5474WA1RPJGBnYyn3K8ZM1ymNPRCO0IhNfh7PGdlN8SrAmHypKr9iw9xA1jS3e/SFgGZHBM4MnSukdmaOtglnNDZ3mxGiEVuThqxEZ40MbdWorvabdHzLL2yTD+oNQvQtmXBtEVUqvyBoNpg0qizqVLx6Vk8J7mzWHViThq09EC08pAWV5cSVjBqSQmRznuYFTZ6r3RbLsKP2KLZ2MiEZoRR49rbGuKH6nsaWVz3cc8N4LAY3MchIZIwHx6Fx3j9BSIgM1IkrIWbOriobmtu79ISkDnZMivS8Tk2AVz/LgXNcIrcijR0ZELL4mIv9nbw8REfV0KsfFsuJKogRO7Konsk9nqjuKzNEeeyIaoRV59LQn8jhWFt8r7O0a4DG/KlL6HMuLK5mQm0pqQoznBs0N9vi6GhHHkDXKcqy3dY630QityKKnRuREY8wNQAOAXWEw1u+qlD5DXVMLq3cf7Hp+SPlmaGtRf4iTyBwNrY1WJcdjaM+h1dTSOUmj4jx6akSaRcSFnXJdRLIAvRKUXrNmVxXNrcZHp7r2RBxDR4SWB+e6HaG1veJwkEUpgaCnRuRR4BUgW0TuA5YAP/e7KqXP0D6sMX5gF+VhS9dBbDL0Hx4kVcpxkznKeizvOoeW4nx6VB7XGPOciKzCSogowIXGmE0BUab0CQrLaukXH01Wipf5IWD1RHImQJQGEzqGhDRIzvHYE+mI0FLnekTQ0xrrGGM2A5sDoEXpgxSV1VKQk+K5fghYxY1KN8CUKzwfV8KXrNGWP+sY4mNcDM1I0jDfCKGnIb7PiEia23Z/Efmj31UpfYaislpGZiV7b3BwOzTVqD/EibSH+ZpOVasp0AitiKGn4wOTjDFV7Rt2dNZUvypS+gwHDjdRebiJgpwujIg61Z1L1mjrBqCmcwkijdCKHHpqRKJEpH/7hoik04shMUUBqxcC1rwBr5Suh6hoyBobJFWK3+jKua4RWhFDT43Ir4DlIvJTEfkpsAz4pf9lKX2BwjJrOKNrI7LOGhY5JqW44gC6CvPVCK2IoafRWX8RkZXA6faui40xX/hfltIXKNxfS2Ksi0GpXioZgtUTGX5K8EQp/iM5B+JSPfZENEIrcuiRERGROGAK0M8+91IRwRjzkwBoUyKc4vJaRmQlExXlJTKrttwaT1d/iDMRsasces6hpRFakUFPh7NeBRYALcBht0VRekzh/loKuhrK2m871QdquhPHkjnaY08ENEIrUuipUzzPGHN2QJQofYqahmZKDzUwsqvIrH12ReacCd7bKOFN1ihY8yzUHYDE9KMOtVc5bGppIzZaJ5I6lZ5+c8tERMcWlOOmIzKrqzkipeshdXCnPx/FQWRqDq1Ip6dGZC6wSkS2iMg6EVkvIusCIUyJbNodqgU5XZRILV2v/hCn0x6hpTm0IpaeDmedExAVSp+juKyWWFcUg/t7icxqqoPKQhh/UXCFKf4lbQhEx2sOrQimpyG+O+3JhgWAe+D+Tr+qUiKewrJa8rOSiHZ56QyXfQGmTXsiTifKBRkFHnsiGqEVGfQ0xPebwM1AHrAGmAUs58i8EUXxiaKyWiblpXpvUGqPkqoRcT5Zo6Dkc4+HCrKTtSficHrqE7kZmAHsNMachpU3q9yfgkTEJSKrReTf9na6iLwjIoX2o3valTtFpMj20ZzlTx1K4KhvamX3wbru053Ep1rDIYqzyRwNVbutIcpjKMhJZkfFYc2h5WB6akQajDENYE08tNPCj/azppsB9xoldwDvGWMKgPfsbURkHLAQGA+cDTxuV11Uwpzi8lqMOeJY9ci+dVY5XG8p4hXnkDUKMJaP6xhG5aTQohFajqanRqTETgX/L+AdEXkV2OsvMSKSB3wZeMpt9wLgGXv9GeBCt/3PG2MajTHbgSJgpr+0KIGjuLw9MstLT6StFfZv1KGsSKE9zLfcew6t9jxqivPoqWO9PVTmHhH5AEgF3vSjnoeB/wXcb1FzjDH77NffJyLZ9v5c4FO3diX2vqMQkUXAIoAhQ3RoJBwo3F+LK0oYlpHkuUFlMbTUqxGJFDJGgERBhfccWlv3q1/EqfR6mqgx5iNjzGJjTJM/hIjIeUCZMWaVr6d4ktVphzFPGmOmG2OmZ2VlHZdGxT8UltUwNCPR+yzlDqe6pjuJCKLjoP9wjdCKUHzqiYjIEmPMXBGpwfqjFvdHY0w/P2iZA1wgIudihQ/3E5Fngf0iMtDuhQwEyuz2JcBgt/Pz8OPQmhI4uq1mWLoOXLFH6lEozier6xxaGqHlXHzqiRhj5tqPKcaYfsc++kOIMeZOY0yeMWYYlsP8fWPM14DFwJV2syuxkkBi718oInEiMhxr7spn/tCiBI6mljZ2VNZ1X80wawxExwZPmBJYskbDgWJobe50SCO0nI2vPZHbujpujPm1f+R45H7gRRG5FtgFXGa/5kYReRH4Aiur8A3GmNYA6lD8wM7Kw7S2Ge+RWcZYkVmjNc9nRJE5Gtpa4MB2O1rrCO4RWqMHdBGxp4QlvjrW27/Z0VjzRBbb2+cDH/tblDHmQ+BDe70SOMNLu/uA+/z9+krgKOyuJG5NKdRVqD8k0mg3HBVbOhkR9wgtNSLOwycjYoy5F0BE3gZOMMbU2Nv3AC8FTJ0ScRTur0UERnjziZTaNUQ0MiuycK+3Pvb8ow5phJaz6Wl01hDAPRqrCRjmNzVKxFNUXktuWgIJsV7mhZZqDZGIJC4F+uVqlcMIpKdZfP8KfCYir2BFZ10E/MXvqpSIpXB/TdfVDEvXWeGg8X6J11DCicxRXiO0RmqElmPpUU/E9kFcDRwEqoCrjTE/D4AuJQJpbTNsqzisNUT6KlmjoaIQ2jpHYY3SCC3H0pvJhtuxMveuBlJE5GT/SlIild0H6mhqafM+R6SxBg5sU6d6pJI5CpoPw6E9nQ5pDi3n0iMjYqeC/xh4C7jXfrzH/7KUSKQjMsvbHJH9G61H7YlEJl1UOWyP1tMcWs4j7FLBK5FLUXfhvftsp/pA7YlEJB311jsbkRFZyRqh5VDCMRW8EqEUltWQ0y+OfvExnhuUroPEDEgZGFxhSnBIyoSE/l3m0Nq871AIhCnHQ0+js45NBX8QzVel+EhRWW3XNUTanepaQyQyEbHS2XgI8wU4YUh/3t+8n7Y2Q1SUXgNOweeeiIgIcJMxpsoYcw/wY+BpjtT3UBSvGGOsxIvehrJam6266upUj2y6CPOdPSKDg3XNbNH5Io7CZyNijDFYPZD2bb+mglcim73VDdQ1tXo3IhVbobVJjUikkzUa6g/A4YpOh2aPyABgeXFlsFUpx0FPfSKfisiMgChRIpp2p7rXiYaa7qRvkOk9Qis3LYEh6Yks36ZGxEn01IicBiwXkWIRWSci60VkXSCEKZFFe0oLrz2R0vUQHQ8ZI4OoSgk67okYPTA7P4MV2yppbetUX04JU3rqWD8nICqUiKeorJb0pFgykuM8N9i3FnLGg6unl6TiKPrlQUyix3rrYA1pvbByN5v2HWJCbmqQxSm9oaeO9TZjzM5jlwDqUyKELqsZGqPpTvoKUVGQWeC9J6J+EcfRa8e6oviKMYbCslrvM9WrS6ChSo1IXyHTe6ncnH7x5GcmqV/EQahjXQk45bWNVNc3d+FUt91qAyYHT5QSOrJGWfmzGj2H8s4akcFn2w/Q0qrJGJ1Abxzrn6pjXekJ3aY7KV0PCOSMC54oJXR0pD/x4hfJz6C2sYUNe3X2uhPoqRfzbKB9KqmGTyg+cSS818ts9dL1VlRWbFIQVSkhI2uM9Vi+FXKndTo8K/+IX2TK4LQgClN6g09GRERq8Gw0xN6vFYQUrxSV1ZISF01OPy+RWaXrIHd6cEUpoSN9OERFe3WuZ6XEUZCdzPJtlXzn1BFBFqf0FJ+Gs4wxKcaYfh6WFGOMGhClSwr31zIiOxnxlBOr/iBU7dLMvX0JVwykj/Aa5gtWlNbKHQdoVr9I2NObolSK0iMKy2q9O9X3/Nd61MisvkXWKK89EbD8InVNrawrqQqeJqVXqBFRAkpVXRMVtY3eneqbFkNMEgydE1xhSmjJHA0HtkOL59R7J+brfBGnoEZECSgdTnVPc0Ram+GLxTD6HIhJCLIyJaRkjQbTCgeKPR5OT4plzIAUnS/iANSIKAGly8is7R9bGV0nXBxkVUrIybRzaHmZdAjtfpGDNLa0BkmU0hvUiCgBpbCslviYKHLTPPQ0Nr4Mcf1gxBnBF6aElswC67ErI5KfQWNLG2t2VQVHk9IrwsaIiMhgEflARDaJyEYRudneny4i74hIof3Y3+2cO0WkSES2iMhZoVOveKOwrNaqn31spbqWJtj0Gow+F2LiQyNOCR2xSZA6pEvn+onDMxBBh7TCnLAxIkAL8D1jzFhgFnCDiIwD7gDeM8YUAO/Z29jHFgLjsSZBPi4irpAoV7xS7K2a4bYPoaEaxl8UdE1KmJA1qssw39TEGMYP6qfO9TAnbIyIMWafMea/9noNsAnIBRYAz9jNnuFIOd4FwPPGmEZjzHagCJgZVNFKl9Q2trCnqt5zeO/GlyEuFUacHnxhSniQNQYqC6HNu89jdn4Gq3dV0dCsfpFwJWyMiDsiMgyYCqwAcowx+8AyNEC23SwX2O12Wom979jnWiQiK0VkZXl5eUB1K0dT3JEz6xineksjbH4dxp4H0bEhUKaEBZmjoKXBmmzqhdkjMmhqbeO/Ow8GUZjSE8LOiIhIMvBP4BZjTFcZ2DxMf+6cmsUY86QxZroxZnpWVpa/ZCo+4DXxYtF70HgIxmtUVp8mq+tEjAAzhqXjihL1i4QxYWVERCQGy4A8Z4x52d69X0QG2scHAmX2/hJgsNvpecDeYGlVuqewrJYYlzA0I/HoAxtfgYT+kH9KaIQp4YEPYb4p8TFMyE1Vv0gYEzZGxK6c+DSwyRjza7dDi4Er7fUrgVfd9i8UkTgRGQ4UAJ8FS6/SPUVltQzPTCLG5XaZNdfDlv/A2POtHEpK3yUxHZKyuozQAssvsrakirqmliAJU3pC2BgRYA7wdeB0EVljL+cC9wNnikghcKa9jTFmI/Ai8AXwJnCDMUa9b2FEUVmNh6Gsd6GpVoeyFIvM0V1GaIHlF2luNazcoX6RcKSn9UQChjFmCZ79HAAeZ6MZY+4D7guYKKXXNDS3sutAHRdMOSbWYcPLkJgJw+aFRpgSXmSNgvX/BGPAU5ZnYPrQ/kTbfpGTR6lfM9wIp56IEkFsrzhMmznGqd5UB1vfhHEXgCts7l+UUJI5GhqroXa/1yZJcdFMHpymfpEwRY2IEhAKO3JmuRmRwreguU4nGCpHyOreuQ6WX2T9nmpqG9UvEm6oEVECQlFZLVECwzPdSt5ufAWSsjXtu3KEbuqttzN7RAatbYbPtx8IgiilJ6gRUQJCUVkNQ9ITiY+xM9E01sLWt2HcAojS7DSKTb9BEJvSbU/khCH9iXHpfJFwRI2IEhAK99cePVN965vQUq9p35WjEem2yiFAQqyLqYP7q18kDFEjovid5tY2dlQePtqpvvEVSBkIg2eFTpgSnvgQ5gswa0QGG/dWU13fHARRiq+oEVH8zs7KOppbzRGnesMhKHwHxl0IUXrJKceQNQpqS62szl0wOz+DNgOfqV8krNBftOJ3ispqALeSuFvegNZGHcpSPNPuXO+mNzJ1SBqx0VE6pBVmqBFR/E574sURWbYR2fgy9MuD3OkhVKWELR2JGLv2i8THuJg2pL8618MMNSKK3yksqyU3LYGkuGior7Ky9o6/UIeyFM+kDQVXLJRv7rbp7BEZbNp3iIOHm4IgTPEF/VUrfqfIvZrh5tehrVlzZSnecUVDxkifnOuzR2QAsGK79kbCBTUiil9pbTNHG5GNr0DaEMg9IbTClPAms/swX4DJeWkkxLjULxJGqBFR/Mqeg/U0trRZkVl1B2DbB1aaEy/J9RQFsPwiB3dapQK6IDY6iunD1C8STqgRUfxKUbkVmTUyOxk2/xvaWnQoS+merNGAgcqibpvOys9g6/5aKmobA69L6RY1IopfKdzvVhJ3w8vQfzgMnBxiVUrY0xHm2/2QVrtf5FPtjYQFakQUv1JUVktWShxp5hBs/9iaG6JDWUp3ZIwEieo2ESPAxNxUkmLVLxIuqBFR/EphWS0js5Jh02IwrTqUpfhGTLzVa930Ghzu2jjEuKKYMTxd/SJhghoRxW8YY0VmFeTYQ1kZBZAzPtSyFKdw1s/hwDb441mWk70LZudnsK38MPsPNQRJnOINNSKK39h/qJHaxhYmpDbAzqU6lKX0jNFnw9f/BYfL4On5ULrBa1P1i4QPakQUv1Fo58yaXvcJmDatYKj0nKGz4eo3Lf/In86B7Z94bDZ+UCop8dHqFwkDtNC14jfaI7Py9r4FWWMhe2yIFYWOptYmKuorKKsro7y+nLK6Mg42HMQlLmJcMcRGxRLrspaYqBhr3W3fUdtRsaTFp5ESm9L9C0cCOePg2rfh2Uvg2Yvh4j9YaXPccEUJJ6pfJCxQI6L4jaLyWkbG1xBT8imcemeo5QSElrYWKusrOwxDeV05ZfVHP5bXlXOw8WCncwXBYHr92mlxaQxOGUxeSh6DUwYzOGUwQ1KGMDhlMJkJmUgkDR2mDYZr3oS/XQ4vXQWHfwkzv3VUk1n5Gby7qYy9VfUMSksIjU5FjYjiP4r21/KVlNVIjXHsUJYxhgMNB9hTu4c9tXsoqSmxHmtLKKkpofRwKa2m9ahzoiSKzPhMshKzGJQ8iClZU8hKzCInMYesxCyyErLITswmNS4VsHopTW1NNLU20dza3LHe1GZvux1vf6ysr2R3zW521+xmXfk63trxFm2mrUNDQnQCucm5nYxLXkoe/eP7kxyT7Dwjk5gO33gV/nEN/Od2qCmF03/U4Wdr94ssL67kkml5oVTap1EjoviNovJaTo9bAjkTrEJDYUpTaxO7Du3qMAztxqKk1lqvbzk69UZ6fDp5yXlMypzEucPPZUDSALITs8lKzCI7IZv0+HRcPagbHx8dTzzxx/Uemlub2Xt4b4dh2V2zm92HdrPr0C6W7V1GY+vRs7mjJZp+cf3oH9ef1LhU0uLSSItPsx7dl/i0I8fj0oiSELtNYxPh8mfh9Vvhkwet4lXnPQKuaMYO6EdaYgzLt6kRCSVqRBS/UFnbSNzhfQxr3QCzfhxqOQA0tDSw49AOiquKO5Zt1dvYXbP7qN5E+118XkoeswbO6ljPTc4lNzmXxJjEEL4Lz8S4YhjabyhD+w3tdKzNtFFeV87umt3sqd1DVWNVx1LdWM3BhoPsqtnF+or1VDVW0dzmudxsenw6swfNZs6gOZw06CQyEjIC/bY844qG8x+F5AHw8QNwuAIu/RNRsYmWX0Sd6yFFjYjiFwrLajnX9am1EeShrLrmOrYf2s62qm2Wsai2DEZJTUmHD8IlLob0G8LItJHMHzaf/NT8I8M9cf2dN9TTBVESRU5SDjlJOUyn60JgxhjqWuqOGJmGag42HqSqsYr1FetZvnc5r297HYBxGeOYM2gOc3LnMClrEjFRMcF4OxYicPpdkJIDr98Of1kAX3mB2fkZvLVxP7sP1DE4PfyMfV/A8UZERM4GHgFcwFPGmPtDLKlPUlRWy3muFTRlTyI2Y0RAXuNQ0yG2VW1je/X2jl7Ftupt7K3d22EsoqOiGdZvGGPTx3Je/nmMSBvBiNQRDO03lBhXEP/0HIKIkBSTRFJMErnJuZ2Ot5k2Nh3YxNI9S1m6Zyl/3PBH/rD+DyTHJDNr4Czm5M5hzqA5DEweGBzBM74JSdnwz2/CH89i3ll/BSy/iBqR0CDG9D5aJNSIiAvYCpwJlACfA1cYY77w1H769Olm5cqVQVTYd3j4pXe5ZeMlmC/di8y9pdfPY4yhsqHyiJFoNxrVxVTUV3S0i42KZVjqMPJT8y1DYS+DUwYH9w65j1HTVMOKfStYsmcJS/cupfRwKQD5qfnMyZ3D3EFzOSHnBOKjj8/n0y07lsDfv4KJTWTh4dsZNHo6D10+JbCv2YcRkVXGGI/dWqcbkdnAPcaYs+ztOwGMMf/PU/veGpHWllaaWqxxY/cQTW8fnS8faW9HT9qf25MOby/b/lLtryn2nmM1iFh3njWH66mqa+DQ4QZq6uo4VNfA4boGauut5XBDA3X1jdQ1NlDf0EhDYyPzWlfwtei3afr2RzSl5HSKOuoqEulwy2F2HtrZYThqmmo6NCXFJJGfmm8tadbjiNQRDEoe1CNntuJ/jDFsr97eYVBWlq6kqa0Jl7hIjEkkMTqx86O9nhCd4LFNnCuOaIkmOuroJSYqpvN6RRHRL11F0+FD3Cn/y8O3X+f1d9XVz623Q5nGWL9C999kx7o58hu11u3jXWgTN5XefrPu+3qKy+UiPja2V+dGshG5FDjbGPNNe/vrwInGmBs9te+tEVn88dPctf3h45GqdEN6fDrDU4czInUE+Wn5HevZidkR5a+IZOpb6lm1fxVrytZQ21xLXXMddS11Rz3Wt9Qf2W6pOypMWQkssxpT+MOiZb06tysj4nSfiKd/l6OsoogsAhYBDBkypFcvMmLQRBZsK/BBjLhveMeD3e5uEpqvz33sIa/P6qFH0060KxqXy0VMdDTR9mNsdDSuaBdREm3dCokLoqJAXEhUFEgUruSBxCb0P2rG9bGzsz3ti3fFkxyb3OX7V8KfhOgE5ubOZW7uXJ/aG2NobG2krqWOw82HqWuuo6m1iRbTQktbC81tzbS0dV7vWOx2dYer2LN5KbS29Fjz8d5CS6eV9k3xsM8Pmo5D8NAB43p/chc4vScSlOEsRVGUvkxXPRGnJ2D8HCgQkeEiEgssBBaHWJOiKEqfwdHDWcaYFhG5EXgLK8T3j8aYjSGWpSiK0mdwtBEBMMb8B/hPqHUoiqL0RZw+nKUoiqKEEDUiiqIoSq9RI6IoiqL0GjUiiqIoSq9x9DyRniIi5cBhoKK7tmFEJs7Rq1oDh5P0OkkrOEtvqLQONcZkeTrQp4wIgIis9DZpJhxxkl7VGjicpNdJWsFZesNRqw5nKYqiKL1GjYiiKIrSa/qiEXky1AJ6iJP0qtbA4SS9TtIKztIbdlr7nE9EURRF8R99sSei+AHRIh8Keh0oEWhERGSgky5sERkkInGh1uELIjJRRH4AYBzQhRWRAaHW4CsikhNqDb4iIqNF5BxwzHUwVER6V0woyIhIgOsK+5+IMSIiEicivwM+Ap4UkYtDrakrRCRZRH4NvAE8JSJfsfeH3XciFg8CfwOiRSSsi5iLSIKIPAy8KSIPiciCUGvyhn0dPAS8ISK/D+fr1tb6K+DvQO/qrAYR+zp4COs39oyIfMfeH46/sSQReRK4W0Qy7H2OuBkOuw/zOLgAGGiMGQX8G/iJiIwKsSaPiMgg4M9YP8Q5wKtA+x1+ONYLzQIGAtOMMfcZY5pDLagbbgCyjDFTgH8BPxeRkSFV5AERyQX+ivU7PBfrBuiBkIrygoj0A14G5hpjTjDGvBpqTT5wEzDIGDMOuAe4BcLvN2b3Pn4CzAVSgNPAGb08cLgRERH3mqoGKAewL/A3gW+LSFoIpHlERFLs1Wrge8aYG40xtUAO8C8RybLbhfx7cdMKkAoUGGOaROQsEbldRM4KlTZPtF8LIuIC+mPdSGCM+QgrS8HdIpIaOoUeaQCeMsbcbIwpBV4E1ojIpBDr8kQDlsHbCCAic0RkvogU2Nshv2bbERGXrUeAdfbuQcDrIjImdMqORkQS7dVG4HfAyUAhME1ERthtwr43EjZffE8QkZEi8iLwZxH5sogkAfXAIfsuH+CXwAnAePuckH0Zx+oFYowxO0UkUURuBu4AkrAu8nHGmLZQ6XXT+if7s00HaoGlIvIT4H+x/lAeFpErjzHkodT7jIicZ++uAU4Ukcm2Yd4MjALy7XNC9dmOFpEnRCQBwBhTCXzo1mQwlsYtIZB3FB60NgHvA0ZESoGfA2cCH4nI+FBes8fqNca02r2NvcAQEfkE+AXWdfGuiJwZYq0FIvIXrGH3C4AUY0yRMaYC+ACIx0G9EccZEfsO42FgPdad0XnAj4F3gTHAZBGJNcbsxxoeuBVC92Uco/cvWMMWP7UP1wNvGGMGG2Nux+o9PQKh0evhs/0y8ENjzD6sAmYnA7cZY36L9Zmfj3W3FxI8fLbnYQ0L/Aqr9/Ej4B2sMfy3ge9AyD7buVif6SLgNnufGGMOuzWLBXYYYxqDrc8dT1pt9mH5xR40xpxijPk+8BTW5x3K35g3vc9i3fTsA2YaY+4G/h9wawi1fh1r+Ho5llE+H7iw/bgxZh3wBTBeRKaFQmOPMcY4agFysS4Ol9v2Z8CJwGXAn7AuGLCMyh+w7vzDSe9y4AJ7WzgyXycfaww/IYy0rsAyHpOx/pCvcWv/AdaYczh9tiuA+fb2cCDdXr8E68+D9s87yFrHAhOAkUARVkK7Y9ssBH5pr38LmBSiz/VYrcPcjsUf07YAy1cSH0yNvui1f1u5wENAvr0vDqv3lxEirfOB8922fwFcZ69H249DsG6ArscapTg5VJ+tL4sjeiLuXU9jzB5gOlZXun37ceBeY8xLwFbgThH5HvA8sM0E2RHsg97f4dZDMsYYEZkN/BFYZoypDzOtPzbGrMWaLXu+iNxpDxFsAA4ES6uPeh8DfmhvbzfGHBCRk7HuUHfb+4NyF3qM1k1AkTGmCMsY/8Ru4/4bPAPIEJF/Al/BGjYMCt1ovbe9jTGmwe2ck4CngU/d94eLXvt7LsUydN8SkauAt4DPsfySodD6NvC2iLSXJm/A8tdgjGmxH3cBycDPsG4sgvob6zGhtmJdWOxsrD8IcdvXbqmvApa47U/DckrOwLr7mIc1LPS1MNb7d1tnEtZFvxr4nzDV+gJwkr09HvgesDDMP9uT7e1LsJyVXwmVVrdj7T3OFKw75jOOOf4GluP60nDWivUH9wNgDXB5KK8DH/VOwrqrfz1Y121XWo9p9xxw8TH7ZmANwX01WJ/tcb3XUAvw8sHeZV8IbwGPuV8k9roLazzxFrd9zwATnKgXmOIUrQ78bNPCRWu7XvvxFuDf9voVWDc/pzpEazQwKpyug270BnV42EetUUAi8ApWdKYAZwFxwdTql/cbagEevoCzsZygUfbFWgLktH8RHLnjmAZsx3JKfQ1YBYxzmN6g/jH3sc92fLhoPaaduwE8iDWs8jRB9Cn4QWuw/5SPR+8f7D/roPjBfNVqtx2IdQN0DZZf9z6syKyg++yOZwkLn4gdRtpOFFZkTTSWs+xzLMcZxkZEXMaYVVh3HFOxojJuNsZ84TC9Gxyk1Wmf7cZw0eqOrTlVRH6J5aM51xhzrQmwT8HPWgPus/Oj3m8ZY+qM/a8dLlptpgOnYhme7xlj7jLGNARSa0AIpQXDmsT2FLAMa5bxCCzr/AjW+HA51kzTNViO0Wz7vCjVGzlanaa3t1rdzo8iSJFXTtLqNL3Hcc2296CTgG8H+/r1++cQ0heH+7FCcsdizTv42O3Yo8BZ9vo8LKfYMNUbeVqdple1qt7j1YrDhqy6WkIynCUW7SFuzxljNhljfgq0isjP7P2VWGOZGGM+sdfTOz9b4HGSXidpBWfpVa2Bw0l6/aHV2JYkEgiJETEWLVjx0e6zMq8HFomVxqQOuEREbhORl7CcZDuDr9ZZep2kFZylV7UGDifpdZLWoBCK7g/2ODZWbqty3KI9sCbcfQcrSuFcrHQG14eqq+Y0vU7S6jS9qlX1Ok1rMJaAlscVq4BRK/CIcZs1bs/SFWNMq4g8D9QbY662j90OlBpjnm1va4KUutlJep2k1Wl6VavqdZrWkBIgSx2PlXpiD7ASmOx2zD2WezhWLptP7PYLsVI3XxwIXZGg10lanaZXtapep2kNhyVQX4JgFVtyYaWM/jVWuuP24wOwsq5+CsQAU7Am3LwNXBL0D8FBep2k1Wl6VavqdZrWcFj89aFHA7cDg932xduPA7Gyvc7nSHz0fOA7IXvTDtLrJK1O06taVa/TtIbj4o8vYCLwX2A/8PdjjrV/6Ldg1SHolDYcO99NEC8Yx+h1klan6VWtqtdpWsN18UeIbwXWxJoxwDARmQ+0lylt5zEgAZguIqeIyEV2GzHGtPpBQ6TqdZJWp+lVrarXaVrDEz9Z8wT78dvAh+6WnCPhcN/Cyp1fBFwYSsvpJL1O0uo0vapV9TpNazgufv8ysEq83nTM/slYJR/vD/UbdqpeJ2l1ml7VqnqdpjWclkB8EWcBK+z1CVhJyvoRonKUkaTXSVqdple1ql6naQ2Xxe9pT4wxbwEHRaQRq35wnDHmkDGm0t+v5Q+cpNdJWsFZelVr4HCSXidpDRf8akREJMpOQDYWuNEY82VjTJk/X8OfOEmvk7SCs/Sq1sDhJL1O0hpO+D3tiYicA7xvjGn06xMHCCfpdZJWcJZe1Ro4nKTXSVrDhYDmzlIURVEim7Aoj6soiqI4EzUiiqIoSq9RI6IoiqL0GjUiiqIoSq9RI6IoiqL0GjUiiqIoSq9RI6IoiqL0GjUiiqIoSq/5/wMwDLxZOPVjAAAAAElFTkSuQmCC", "text/plain": [ "
" ] @@ -10016,89 +10019,10 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 38, "id": "4a203939", "metadata": {}, "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "data": { "application/vnd.plotly.v1+json": { @@ -18891,16 +18815,16 @@ 0, 0, 0, - 0.00922532921605579, - 0.06698426972704541, - 0.45631485407353267, - 0.15766467197039252, - 0.15092323654234036, - 0.15238991138927577, - 0.44808997451024984, - 0.5777649816933342, - 0.4697945977685624, - 0.020227025717651958, + 0.01107939335200476, + 0.07229405101968332, + 0.4841603109631016, + 0.16719286175941553, + 0.1588860758991724, + 0.16148478298050592, + 0.4814114560345664, + 0.6235804258143973, + 0.5029250332251932, + 0.02323023239690723, 0, 0, 0, @@ -18915,16 +18839,16 @@ 0, 0, 0, - 0.007806048928080334, - 0.09711258159171181, - 0.6712014375694485, - 0.6050142667289167, - 0.5453345530388432, - 0.541913349338803, - 0.5974490172197777, - 0.6425309035506311, - 0.49038968902952096, - 0.029209223327344384, + 0.009162035792800727, + 0.10298374841169118, + 0.7216657712943658, + 0.6674385654018009, + 0.5942489504755933, + 0.58909890789783, + 0.6533719004644489, + 0.6919468804836978, + 0.521771671138194, + 0.032778768442381014, 0, 0, 0, @@ -18939,16 +18863,16 @@ 0, 0, 0, - 0.021017414210937217, - 0.4257830651672981, - 0.6555128328966618, - 0.5731275600463414, - 0.5467239492167937, - 0.5460318286658161, - 0.6046031093449046, - 0.6692730207655158, - 0.4261755189414138, - 0.03556855635841836, + 0.02367420680510747, + 0.45291059530945843, + 0.6879239886122738, + 0.6096300708464935, + 0.5853034533904411, + 0.5850448557577054, + 0.6477166632945757, + 0.7065947045739857, + 0.4515018938733276, + 0.040177267353502744, 0, 0, 0, @@ -18963,16 +18887,16 @@ 0, 0, 0, - 0.02391519451940524, - 0.2394224507455515, - 0.5730833676713282, - 0.5809310757173407, - 0.42752165489477795, - 0.40252105448408815, - 0.5559386798615233, - 0.49820838818522584, - 0.47320084878400026, - 0.04781069859081775, + 0.02754926474504114, + 0.25799883224970765, + 0.6500662922093832, + 0.656906265624172, + 0.4683119340213718, + 0.4433219327894048, + 0.627372205235259, + 0.5525560988544495, + 0.53589177360971, + 0.05581655061965419, 0, 0, 0, @@ -18987,16 +18911,16 @@ 0, 0, 0, - 0.024916896833518453, - 0.4263847315798057, - 0.6966268743637006, - 0.6681044154778657, - 0.5918020193653861, - 0.5538669324131823, - 0.4640904001111348, - 0.6439433485978099, - 0.5208734157903927, - 0.04023577899269938, + 0.027806599484287455, + 0.4575738133340196, + 0.7348825295263303, + 0.7219535177372819, + 0.6399722262542209, + 0.5931856009665855, + 0.48861408927172423, + 0.6798490349001508, + 0.5506808931856556, + 0.04445934157339954, 0, 0, 0, @@ -19011,16 +18935,16 @@ 0, 0, 0, - 0.030865716267462817, - 0.3025791707605934, - 0.5625215130934325, - 0.6394343737319816, - 0.5678306097906624, - 0.5709649786640716, - 0.6267278663515161, - 0.6877080504094331, - 0.5393173710171756, - 0.045180940622792765, + 0.033812498412766484, + 0.31762027875513393, + 0.5855765068626257, + 0.6775246148932457, + 0.6088114832885955, + 0.6055487577931886, + 0.6638650941042294, + 0.7228743132916959, + 0.573405072158737, + 0.05007798603450891, 0, 0, 0, @@ -19035,16 +18959,16 @@ 0, 0, 0, - 0.02447343461829231, - 0.41665013122334776, - 0.6777394182966328, - 0.6263164336740632, - 0.5607923923501534, - 0.5015026380228804, - 0.6374233904790568, - 0.6657901899246876, - 0.5241590885883963, - 0.043977092542718595, + 0.028054477065711823, + 0.45598541963848077, + 0.748833921519442, + 0.6903551003941844, + 0.6231878610644723, + 0.5502379253338708, + 0.7097161816103122, + 0.7447854318474578, + 0.5795123795874606, + 0.050760504180807166, 0, 0, 0, @@ -19059,16 +18983,16 @@ 0, 0, 0, - 0.011255346038986503, - 0.30131146958948857, - 0.5647359113859067, - 0.6054575806396849, - 0.5410609336350769, - 0.5049560716702205, - 0.4326138722592766, - 0.6570388413124298, - 0.5420359427786462, - 0.04811104015782725, + 0.013071345988284293, + 0.32115806978292855, + 0.6143561658379227, + 0.6827030101591414, + 0.6119508240086442, + 0.5649050566012658, + 0.4823997576242762, + 0.7389584756422474, + 0.5963374422815032, + 0.055314993236833226, 0, 0, 0, @@ -19083,16 +19007,16 @@ 0, 0, 0, - 0.014635741311683475, - 0.4157154250157151, - 0.6688855143950515, - 0.5611515301317003, - 0.5523794008784464, - 0.5511524268468794, - 0.626341398129205, - 0.25289831902122084, - 0.07472544263481429, - 0.016429854097950582, + 0.016683630776334328, + 0.4475987397875334, + 0.7189742551065313, + 0.5980336770025603, + 0.5971964509969478, + 0.5955117100224905, + 0.6765835199377652, + 0.26342928740233784, + 0.07854127236526463, + 0.018487615513348755, 0, 0, 0, @@ -19107,16 +19031,16 @@ 0, 0, 0, - 0.0077769259120780134, - 0.38546506199049696, - 0.6444779802268215, - 0.3475344710226301, - 0.5628435809336642, - 0.5348757691822258, - 0.46876987095928996, - 0.35745080546131, - 0.5331613949580883, - 0.0518631591414937, + 0.008876280644194509, + 0.40946584271951514, + 0.6705240534735274, + 0.35929389979827886, + 0.5946592769428382, + 0.5613642201873466, + 0.4899607669432672, + 0.3671763528051624, + 0.5524395648830207, + 0.055620273399756316, 0, 0, 0, @@ -19131,16 +19055,16 @@ 0, 0, 0, - 0.023807214577561655, - 0.30250994190630087, - 0.6959507728899951, - 0.6414354992836631, - 0.5793473627913309, - 0.5568506555940916, - 0.5508864278072556, - 0.40279276300713357, - 0.07580470461095119, - 0.010244376751312413, + 0.02539085641552533, + 0.31671751972627676, + 0.7252364529917714, + 0.677523168949109, + 0.6234357400244238, + 0.604040671455418, + 0.5923273297922275, + 0.42515345577502656, + 0.08015682929818184, + 0.011886023229551467, 0, 0, 0, @@ -19155,16 +19079,16 @@ 0, 0, 0, - 0.025345024352634027, - 0.4373970920740096, - 0.7108158909152863, - 0.6591904570097583, - 0.5887385005074619, - 0.5857132329277255, - 0.6101928669397884, - 0.33599245263175964, - 0.44892714771966397, - 0.08124706377178631, + 0.028157789963733745, + 0.46761646902114445, + 0.7428431633931181, + 0.6959645254879545, + 0.6371094863438319, + 0.6247884924680163, + 0.6516230214802897, + 0.3494235011930629, + 0.46734872942479566, + 0.08642830874958492, 0, 0, 0, @@ -19179,16 +19103,16 @@ 0, 0, 0, - 0.024479346467864024, - 0.37558184763414176, - 0.6793567312745317, - 0.632078126353044, - 0.22448625041568096, - 0.20613760334904593, - 0.6315204496189288, - 0.6868115701312243, - 0.6150408099405535, - 0.06672639059282647, + 0.02678756333757161, + 0.3991549955207756, + 0.7260605354162102, + 0.6768337521934822, + 0.233822119268443, + 0.2142029671231002, + 0.6684348060895221, + 0.7357881079284236, + 0.6510385907924031, + 0.07308412417472059, 0, 0, 0, @@ -19203,16 +19127,16 @@ 0, 0, 0, - 0.028128043565546594, - 0.44234612062407885, - 0.6974942631074904, - 0.6453714705782042, - 0.5786762233346995, - 0.566806018170032, - 0.6071300864166641, - 0.6586255174977821, - 0.6007242718067012, - 0.06820601614659129, + 0.03139113478497069, + 0.4781118222041173, + 0.7525566179418662, + 0.7066318911616504, + 0.6419852648725775, + 0.6268778142276843, + 0.6741552832923057, + 0.7291381936707936, + 0.6426176614005638, + 0.07696341212487624, 0, 0, 0, @@ -19227,16 +19151,16 @@ 0, 0, 0, - 0.02787036059938188, - 0.4473078543981618, - 0.6928683586257064, - 0.6445315460791234, - 0.5876373831448768, - 0.5751654317686539, - 0.6196392334724952, - 0.676424260758357, - 0.6020265511777706, - 0.07304273425479106, + 0.03046984288113586, + 0.4809283886528026, + 0.7517399366148055, + 0.699299761022307, + 0.6353593265174055, + 0.6172836986767904, + 0.66549147329429, + 0.7236390506408035, + 0.6362365351018173, + 0.07944008125304687, 0, 0, 0, @@ -19251,16 +19175,16 @@ 0, 0, 0, - 0.01599345627176623, - 0.38483427534230513, - 0.5428480446422133, - 0.4238002107631369, - 0.3893390999912452, - 0.367174540402608, - 0.2946543143395362, - 0.21104007844038403, - 0.12469008978054616, - 0.022902590920424886, + 0.01735842398477868, + 0.4032999518728712, + 0.5645756393058116, + 0.4408090453734323, + 0.4066013145490496, + 0.383875004321809, + 0.30556773103498636, + 0.21841085530811183, + 0.12952924231302854, + 0.02513483499933948, 0, 0, 0, @@ -19275,17 +19199,17 @@ 0, 0, 0, - 0.028661160749307545, - 0.449998251251504, - 0.6673710548764038, - 0.6269345009776859, - 0.6145992216491055, - 0.6124277120823217, - 0.6431683171413587, - 0.6211382570808106, - 0.4868607091919074, - 0.1327690766997008, - 0.0013004316223608349, + 0.032335527929862926, + 0.49311283347642465, + 0.7379646080566261, + 0.682171129745046, + 0.6593044646063981, + 0.6539840286771644, + 0.6804144367464591, + 0.6495929134917318, + 0.5004325763509423, + 0.14038967895915636, + 0.001577617641895445, 0, 0, 0, @@ -19299,16 +19223,16 @@ 0, 0, 0, - 0.012748708586017739, - 0.4265996483218277, - 0.7055229241634805, - 0.5796792735772407, - 0.5951734610161752, - 0.5991230435485893, - 0.5331280397525434, - 0.4097780578899292, - 0.3162267134950062, - 0.05233223178208043, + 0.01411431972813126, + 0.4499847574966362, + 0.7401839404158848, + 0.6124652248812216, + 0.6500331586681124, + 0.6451919503923087, + 0.5651741248670692, + 0.42756686374293823, + 0.3287404662485401, + 0.05680758375677992, 0, 0, 0, @@ -19323,17 +19247,17 @@ 0, 0, 0, - 0.028974926352000357, - 0.39978323333356647, - 0.6481960332414088, - 0.6286122024432839, - 0.5815338919621827, - 0.5723666471024151, - 0.622350736540575, - 0.6626822256425321, - 0.6176276522072484, - 0.10365756134894769, - 0.0009744204818429214, + 0.031159070612820857, + 0.42132384787766003, + 0.696684694036375, + 0.6819964329815505, + 0.6350229621777749, + 0.6248841064371178, + 0.6723533974367518, + 0.7169346400319188, + 0.6686630156944093, + 0.1129202332901381, + 0.0012050903516494765, 0, 0, 0, @@ -19347,16 +19271,16 @@ 0, 0, 0, - 0.03938530769721352, - 0.398163943151628, - 0.5151308803253862, - 0.5597379708620085, - 0.5882138959032027, - 0.6152360307907259, - 0.5938176116351607, - 0.46369299818094983, - 0.2243923831417532, - 0.038712770791751755, + 0.042796731875258676, + 0.42185687169756647, + 0.5507331373413988, + 0.606986295311795, + 0.6578280661226004, + 0.6884956577093994, + 0.6615313231639237, + 0.49858429988239705, + 0.23668727286959973, + 0.04277385754929418, 0, 0, 0, @@ -19371,16 +19295,16 @@ 0, 0, 0, - 0.0050196756475954524, - 0.047525390829293315, - 0.11521899052360626, - 0.2231749565874169, - 0.30049286730267893, - 0.18121467852645226, - 0.11886118638011865, - 0.27767743816271245, - 0.1683380968147104, - 0.07185346375561352, + 0.005968746005808918, + 0.0508985032208274, + 0.12239130830575363, + 0.23877241674912267, + 0.320447315811933, + 0.19320032275435955, + 0.1273194416893566, + 0.2987258357592447, + 0.1808970779899056, + 0.07825663743047286, 0, 0, 0, @@ -19395,17 +19319,17 @@ 0, 0, 0, - 0.01218402495843749, - 0.10611804237492856, - 0.13820924230091375, - 0.2818077929387027, - 0.3829905893700398, - 0.5520205621801508, - 0.2630988264284977, - 0.39458816411985204, - 0.13333152142057594, - 0.08253651648469036, - 0.002090485851367561, + 0.01411233662945804, + 0.11078707023726134, + 0.14365527118043828, + 0.2924956470432731, + 0.39907051533252247, + 0.5887233859126225, + 0.2742442290167879, + 0.41056069494249753, + 0.1389230829402472, + 0.08782676472425623, + 0.002549354468763638, 0, 0, 0, @@ -19419,17 +19343,17 @@ 0, 0, 0, - 0.020515681344468656, - 0.07206757098075199, - 0.13547882141889675, - 0.24320510712975107, - 0.341348603468209, - 0.557734142830008, - 0.3589867610572429, - 0.33485697049369423, - 0.6361034132492758, - 0.14898079113972473, - 0.0015641263047778936, + 0.0225622680825443, + 0.07472975145314018, + 0.13968240025890039, + 0.251299161751793, + 0.35520988834702144, + 0.5892466296329825, + 0.3732166254820434, + 0.3468386994230024, + 0.6778537723431312, + 0.16182393688555677, + 0.0018964875865574817, 0, 0, 0, @@ -19443,16 +19367,16 @@ 0, 0, 0, - 0.03884849642519238, - 0.5160661736882614, - 0.6528901945499805, - 0.5914182042112361, - 0.6268453927429923, - 0.621568072733487, - 0.640287425524732, - 0.5761053508660251, - 0.1065553225732843, - 0.02816228683708876, + 0.043470964850719905, + 0.5455176481042208, + 0.6898267220542933, + 0.6345104960796009, + 0.6834478781545972, + 0.7051984807168555, + 0.7156232350474284, + 0.6214774432438042, + 0.11333726600006871, + 0.03169220946682117, 0, 0, 0, @@ -19467,17 +19391,17 @@ 0, 0, 0, - 0.0318110182004575, - 0.5085212931542421, - 0.7303693341614822, - 0.6782928240072591, - 0.6237269187896262, - 0.6115919064829868, - 0.6648051642814607, - 0.5120826388140912, - 0.24243101558997762, - 0.09814792322584065, - 0.001532383686770045, + 0.03540039357168769, + 0.5423772146226395, + 0.7816700206705167, + 0.7397866736561549, + 0.682153513971386, + 0.668807996810397, + 0.7199919715383908, + 0.5368004252954667, + 0.2525195143919672, + 0.10666547387699937, + 0.001911789884952462, 0, 0, 0, @@ -19491,17 +19415,17 @@ 0, 0, 0, - 0.04566132260280371, - 0.5495654867393442, - 0.5096506010267756, - 0.6159621342678814, - 0.39435551717004047, - 0.38482382897830064, - 0.20178685218388248, - 0.18157785508321564, - 0.3974852044945752, - 0.10995186575291739, - 0.005073361102558172, + 0.050936507058356124, + 0.5947592051138023, + 0.5492372307407236, + 0.6697428684242664, + 0.42644054974831563, + 0.4148248931410841, + 0.2145530352895207, + 0.19388727444319745, + 0.4241395075587188, + 0.11867033165118204, + 0.006426172449087645, 0, 0, 0, @@ -19515,16 +19439,16 @@ 0, 0, 0, - 0.011812745441399158, - 0.032893280063330727, - 0.0909084184530659, - 0.11548847745984588, - 0.20841340143657672, - 0.372776893663572, - 0.07179221702027638, - 0.11356596840506603, - 0.05654953471416901, - 0.01914933376546436, + 0.013357502523490666, + 0.035071756543731125, + 0.09489651705466214, + 0.12049394675712119, + 0.21804651998301797, + 0.39311736832144584, + 0.07600800116205461, + 0.11884405387458187, + 0.05999055555903988, + 0.02120653821047931, 0, 0, 0, @@ -19539,17 +19463,17 @@ 0, 0, 0, - 0.04995161340790756, - 0.542469218618772, - 0.7510918373139076, - 0.7129771486466693, - 0.6528303119318629, - 0.6315258267554208, - 0.6705838376626633, - 0.7149699934720328, - 0.7078836140892697, - 0.21130798050800922, - 0.0021217376051269783, + 0.05453184503252775, + 0.5817585662812967, + 0.8018896510463647, + 0.7562730224362206, + 0.6996192586508366, + 0.6830745398138401, + 0.7282106877927579, + 0.7907109061589256, + 0.7717872570233366, + 0.22974473796848405, + 0.0025456527985548197, 0, 0, 0, @@ -19563,17 +19487,17 @@ 0, 0, 0, - 0.006578325722836097, - 0.059036457508810466, - 0.13081290524559566, - 0.22836618827462027, - 0.411118336666798, - 0.5679856350677173, - 0.5262981852236377, - 0.3825624782113828, - 0.3838839979184912, - 0.05907897293650459, - 0.001464860639903756, + 0.007661564397947001, + 0.061781335265615314, + 0.1359610104969081, + 0.23706241574446132, + 0.430615483272277, + 0.6049245361667861, + 0.5544429254649424, + 0.39916358478804875, + 0.39853505363982, + 0.06263004292140076, + 0.001895940292520083, 0, 0, 0, @@ -19587,17 +19511,17 @@ 0, 0, 0, - 0.052694658142271505, - 0.23842044523668038, - 0.6196510043027827, - 0.5938589056964555, - 0.609462431229373, - 0.20019323041826248, - 0.14132787119094473, - 0.20454194410124307, - 0.12094237871516732, - 0.030007700530119426, - 0.0009612451288422165, + 0.056016136895267896, + 0.24133435757955712, + 0.6392711364402662, + 0.6236899172579152, + 0.6504377698606066, + 0.20789366188303382, + 0.14691625877667627, + 0.21116624071520299, + 0.12524262937693229, + 0.03209790701301439, + 0.0012428139393109688, 0, 0, 0, @@ -19611,17 +19535,17 @@ 0, 0, 0, - 0.06759727663789107, - 0.5603909844434715, - 0.39454285779822934, - 0.5936772733642739, - 0.6384896391486888, - 0.45421773525825543, - 0.44727868700758294, - 0.491960361673192, - 0.39226994845496305, - 0.13583489644917554, - 0.004408732377228922, + 0.07214695668797912, + 0.571031892930207, + 0.3856234605461858, + 0.6100672227098515, + 0.6779525941717323, + 0.4758403508270769, + 0.46902977316213684, + 0.5167003852408317, + 0.40644038593916315, + 0.1431362538742434, + 0.00551886882225904, 0, 0, 0, @@ -19635,17 +19559,17 @@ 0, 0, 0, - 0.029488873032772343, - 0.14123558022327778, - 0.48011141212711084, - 0.5775141716342307, - 0.48000489637702215, - 0.5992019345085616, - 0.51948633991688, - 0.29570415563349284, - 0.11426781648192015, - 0.06828018337779737, - 0.002290720537775644, + 0.03321064459743977, + 0.14880325769458164, + 0.5013421952368684, + 0.6138999612313895, + 0.5110913096455196, + 0.6504249442939086, + 0.5555715559828275, + 0.31336856701642624, + 0.12335997346039418, + 0.07562377995511525, + 0.0030949035654363184, 0, 0, 0, @@ -19659,17 +19583,17 @@ 0, 0, 0, - 0.06016872759049972, - 0.5762880930772983, - 0.7221930136836033, - 0.6862443889785289, - 0.6353149291981108, - 0.6253199699090016, - 0.664175389468847, - 0.7211047454184351, - 0.71961438871829, - 0.27616451942788256, - 0.0033262802265772, + 0.06878331975339437, + 0.6490703515095302, + 0.8433486446343282, + 0.7942044244438887, + 0.7380357530275424, + 0.7215538100937322, + 0.7665821105598629, + 0.8334907153451759, + 0.8272334663865356, + 0.3166215622015876, + 0.004205244504733584, 0, 0, 0, @@ -19683,17 +19607,17 @@ 0, 0, 0, - 0.005221573998706888, - 0.0288513067514764, - 0.057346800869833396, - 0.09180350454387999, - 0.1161176046907956, - 0.180928556658974, - 0.17176827657962931, - 0.19918728587505796, - 0.12004342657676265, - 0.04607906584675502, - 0.003974384717434897, + 0.005833536190189283, + 0.029795803115826053, + 0.05601290499439296, + 0.08673912497506688, + 0.10477816737327218, + 0.15825748563108677, + 0.14681278629986436, + 0.16980885897257347, + 0.10229797579197812, + 0.03953257793240833, + 0.004423737387755817, 0, 0, 0, @@ -19707,17 +19631,17 @@ 0, 0, 0, - 0.035103291796631624, - 0.16475072605401334, - 0.24371850366258566, - 0.4986090608441334, - 0.5423287218982835, - 0.44200172628706874, - 0.47819161135133514, - 0.3892185518248357, - 0.31864695455880343, - 0.11846656055770391, - 0.007325860820515164, + 0.03199277284539897, + 0.14418928492377825, + 0.20583712303656887, + 0.4404103936549696, + 0.46705046773844616, + 0.37233287246704855, + 0.4090174130268838, + 0.33976282375360084, + 0.2812415895853016, + 0.10497454011484506, + 0.007745489569558955, 0, 0, 0, @@ -19731,17 +19655,17 @@ 0, 0, 0, - 0.08930554891143881, - 0.6973251307179517, - 0.9174953346833102, - 0.8567787578957952, - 0.8263620292564194, - 0.8201219274133704, - 0.8133413630952515, - 0.8269204346545393, - 0.7931381125528829, - 0.29148827785579695, - 0.005812883498449773, + 0.09228132378598528, + 0.7115833724306085, + 0.8819943226393093, + 0.8272897951052381, + 0.7771888124073565, + 0.7524677009495389, + 0.797736674605665, + 0.8527977229053771, + 0.8469813709317833, + 0.30540396929091834, + 0.006447317700831436, 0, 0, 0, @@ -19755,17 +19679,17 @@ 0, 0, 0, - 0.026336754611085377, - 0.12712207763906197, - 0.2163958983599067, - 0.31622333447877743, - 0.412918177216214, - 0.5310438431665052, - 0.42868445973884617, - 0.4206824232872752, - 0.4297233187050748, - 0.17051990238217246, - 0.003962741373317732, + 0.024859885530406953, + 0.1119544237765514, + 0.1867765923599125, + 0.27353694404962886, + 0.3579673296892171, + 0.4674369136523482, + 0.3777242240304748, + 0.38120967210331114, + 0.4078534077576486, + 0.1639522661462345, + 0.004569582686644996, 0, 0, 0, @@ -19779,17 +19703,17 @@ 0, 0, 0, - 0.01332848783000535, - 0.0702180479592372, - 0.1343379702106049, - 0.1664748123947634, - 0.2529906387081484, - 0.30884570879276213, - 0.31889137551426616, - 0.1972139776040832, - 0.09142338138448435, - 0.049073684846205834, - 0.0021201129365987044, + 0.011885388540825914, + 0.057172188436348574, + 0.1090277963966267, + 0.13608227952246169, + 0.20890571999728408, + 0.2569585296950778, + 0.2665212059180502, + 0.16236478304182328, + 0.07386612156963442, + 0.04052233746899737, + 0.0024041625399195197, 0, 0, 0, @@ -19803,17 +19727,17 @@ 0, 0, 0, - 0.08236335535321183, - 0.7116266528544656, - 0.8533329768979073, - 0.8302314013712941, - 0.8273994777119091, - 0.8080824909435581, - 0.8088266194590461, - 0.8336522533539285, - 0.8200072254033275, - 0.34580982125423626, - 0.005815901222148928, + 0.08535944610399482, + 0.750285318064737, + 0.8845522290657144, + 0.8411848357284162, + 0.785786768114355, + 0.7709572421352604, + 0.813693624217241, + 0.8732357024398839, + 0.8704311329259059, + 0.3781554035705288, + 0.006814079696621861, 0, 0, 0, @@ -19827,17 +19751,17 @@ 0, 0, 0, - 0.034976022183250875, - 0.16238343923578008, - 0.3460345522715239, - 0.48654865423003707, - 0.6279806786120369, - 0.7951792714167539, - 0.8414433860290125, - 0.28574589624586694, - 0.11384079720620222, - 0.05655743427913654, - 0.004114964015868229, + 0.03038714695959877, + 0.13821370299506977, + 0.2927468757839634, + 0.4158655281330191, + 0.5434520968944679, + 0.7024586967449752, + 0.7686440726383094, + 0.2422210813226991, + 0.0940408553654716, + 0.047445373210649094, + 0.0044571837910939915, 0, 0, 0, @@ -19851,17 +19775,17 @@ 0, 0, 0, - 0.07545547855104388, - 0.714952962367217, - 0.7846793611930561, - 0.8434919799076991, - 0.6293949275759456, - 0.7404041436401956, - 0.5803790928842896, - 0.4295085484131109, - 0.22516314383470723, - 0.0802821678234384, - 0.005499000396811835, + 0.07543503550606136, + 0.7289227611919696, + 0.7883433441262947, + 0.8366708010988162, + 0.5577963257099559, + 0.651024478282924, + 0.5026847544419445, + 0.37394092913026294, + 0.19480533426356922, + 0.06928630867666492, + 0.005883089730763718, 0, 0, 0, @@ -19875,17 +19799,17 @@ 0, 0, 0, - 0.10509509169607512, - 0.7526142097754238, - 0.881778742508816, - 0.8612972737372798, - 0.8589846274550451, - 0.8602516469652891, - 0.8785271587517383, - 0.8724609153569144, - 0.8321976100573317, - 0.4325453805320993, - 0.011017470757782862, + 0.10720071728629572, + 0.7640701874476921, + 0.9172485424136525, + 0.871904868292811, + 0.8247735751070404, + 0.8033716819212959, + 0.8389333979225146, + 0.8933661274047056, + 0.8882262247166428, + 0.46756157322469993, + 0.012209719715886731, 0, 0, 0, @@ -19899,17 +19823,17 @@ 0, 0, 0, - 0.06347103074449172, - 0.10443277900651123, - 0.29129383375731005, - 0.44589062099103577, - 0.3951844224766543, - 0.22715175343230823, - 0.16168998720741673, - 0.25902590433889605, - 0.21502356346601015, - 0.14285256023531426, - 0.0073555222120745235, + 0.05882875088702786, + 0.08872146576235874, + 0.2558823439552884, + 0.3917033352007574, + 0.33463168869262083, + 0.19049224302113368, + 0.13384025127831836, + 0.21789193402184182, + 0.1847754252528279, + 0.1270316554403001, + 0.007767707160163817, 0, 0, 0, @@ -19923,17 +19847,17 @@ 0, 0, 0, - 0.03826878075829823, - 0.18741994445102247, - 0.543707919793147, - 0.722480875181637, - 0.6584442439008037, - 0.6023959220714447, - 0.6422305033992997, - 0.7261775524481344, - 0.8605987278687703, - 0.42112770998649424, - 0.013471528383981546, + 0.03340787847957701, + 0.16437073662958512, + 0.48901228701505123, + 0.6506706505904433, + 0.573289442131632, + 0.5245055934761493, + 0.5822231941873386, + 0.6799117109417679, + 0.8754651259541828, + 0.43919830123508563, + 0.014566095718733615, 0, 0, 0, @@ -19946,18 +19870,18 @@ 0, 0, 0, - 0.0013932744410278532, - 0.17528456656572383, - 0.768795373716481, - 0.8400192552360087, - 0.8191087845701743, - 0.8470529075328086, - 0.8069097380271413, - 0.8112623364891389, - 0.8274654476982987, - 0.7375902157713291, - 0.44856855473288815, - 0.01634196165707406, + 0.001708778514191323, + 0.1858028661300402, + 0.8409849815882781, + 0.9314839796288237, + 0.8895896741380002, + 0.8637679194560487, + 0.8213829871383614, + 0.8452141225240277, + 0.9050230249776092, + 0.7906776096532797, + 0.49906323011040327, + 0.019075584534672056, 0, 0, 0, @@ -19970,18 +19894,18 @@ 0, 0, 0, - 0.0011400639107852436, - 0.1624783669749441, - 0.7730720357546466, - 0.8869484717699305, - 0.865563818399904, - 0.8384583028327397, - 0.8718900617864457, - 0.7829282165385574, - 0.6709853184301343, - 0.8587574199323951, - 0.4798260533158625, - 0.01283543419241298, + 0.0013448218197119738, + 0.1691579289118268, + 0.8198261244205578, + 0.9025626360545685, + 0.8623634343778421, + 0.8160486672268192, + 0.8580385631773018, + 0.7727725682444176, + 0.6558296689700842, + 0.9094015145923494, + 0.5076548444395188, + 0.014153124013250163, 0, 0, 0, @@ -19994,18 +19918,18 @@ 0, 0, 0, - 0.0012651783238637841, - 0.08268200566507293, - 0.2572881338494678, - 0.7177397078466703, - 0.7610479711810201, - 0.7386683851794178, - 0.8263468020818869, - 0.7577539865877222, - 0.5124114626324218, - 0.707832205617211, - 0.2637350539519536, - 0.009920552101588721, + 0.001534644181701018, + 0.07971480540170023, + 0.2449526640653018, + 0.7308333841724701, + 0.7685534216796881, + 0.7244304028588858, + 0.8400596033357398, + 0.7819497259504071, + 0.49773775121639957, + 0.7294660030785849, + 0.26657883921651393, + 0.011034788975505779, 0, 0, 0, @@ -20018,18 +19942,18 @@ 0, 0, 0, - 0.0014491094404983087, - 0.19473027513974053, - 0.6962493762722742, - 0.8678682770701788, - 0.8508497464642854, - 0.840606008761317, - 0.7891297258257386, - 0.6451456064639169, - 0.3743165545386188, - 0.26160418426815524, - 0.24150646549319632, - 0.00950603957638983, + 0.0017296160253792278, + 0.20360032944680848, + 0.7324892604026851, + 0.8866005145390587, + 0.8601594280135706, + 0.8214290751221467, + 0.7586972995830317, + 0.6152838378801618, + 0.34932666821827774, + 0.24559371155826942, + 0.24011772316743804, + 0.010327946881369588, 0, 0, 0, @@ -20042,18 +19966,18 @@ 0, 0, 0, - 0.001267369797030714, - 0.07249809661782158, - 0.4422892654645077, - 0.6187852874079318, - 0.8933305989277553, - 0.8515597819007765, - 0.851220346377382, - 0.86919055418971, - 0.8431338338343574, - 0.6442955578590204, - 0.23629208381906863, - 0.014510329515785982, + 0.0014614592060521185, + 0.06769769151944373, + 0.4306149531320302, + 0.5922991684118257, + 0.904990968459076, + 0.8440175150491229, + 0.8262209034231737, + 0.8573385768543367, + 0.8636489771042604, + 0.6447034275179386, + 0.23122807978754029, + 0.015280757035091793, 0, 0, 0, @@ -20067,17 +19991,17 @@ 0, 0, 0, - 0.030532309518995493, - 0.09553042793802106, - 0.19402089750426554, - 0.28832517699937055, - 0.3329995455629334, - 0.28367991229889705, - 0.3146169572594511, - 0.1945411705726068, - 0.14293833966555697, - 0.06847702059765727, - 0.0093023118410307, + 0.027334915974557755, + 0.08532754834474353, + 0.17353081171994672, + 0.25912145986222135, + 0.2988631873214236, + 0.25373910149907014, + 0.27800479659431065, + 0.1697813778290649, + 0.12372737620764569, + 0.05858908749601563, + 0.009185079614279093, 0, 0, 0, @@ -20090,18 +20014,18 @@ 0, 0, 0, - 0.002565136691206193, - 0.2438969697270091, - 0.8500378697196029, - 0.926874254619387, - 0.899834741630789, - 0.8990101024055915, - 0.875194288861903, - 0.8916465016650168, - 0.9006830262794648, - 0.9008359628821804, - 0.5574859530157924, - 0.031100805776960946, + 0.0029652133254841288, + 0.2503654408779838, + 0.8835047010216471, + 0.9753764971046484, + 0.9244257413819905, + 0.8726078695861272, + 0.8599684592269711, + 0.8921840050822561, + 0.9422861857321498, + 0.95493054230621, + 0.5949518593306156, + 0.03384215743782173, 0, 0, 0, @@ -20114,18 +20038,18 @@ 0, 0, 0, - 0.0028258193916458254, - 0.26948371121212067, - 0.8546381752222114, - 0.8920398700777777, - 0.8703258662944473, - 0.8375695479018003, - 0.8366977488756051, - 0.8178443496169235, - 0.8574726426528849, - 0.8089412466537292, - 0.5319759408183127, - 0.029263066433799785, + 0.0034512153639662288, + 0.28206622816878085, + 0.9122893259749772, + 0.97767439879005, + 0.9299236471643116, + 0.8789920773409738, + 0.8659176483220594, + 0.8814692881902295, + 0.9520047219210557, + 0.9461634616621267, + 0.5860216713950478, + 0.033497701334754354, 0, 0, 0, @@ -20138,18 +20062,18 @@ 0, 0, 0, - 0.0015543839863881401, - 0.0855055889662999, - 0.37906703196988134, - 0.5460132222177446, - 0.6913099000100233, - 0.6750696571009619, - 0.6737317294030672, - 0.6507607090368182, - 0.45926279012665144, - 0.4192716456559614, - 0.13045342913511077, - 0.017392363566626816, + 0.002069102692449819, + 0.08666773341412352, + 0.38957113478994265, + 0.5637604005564982, + 0.7208230652893591, + 0.7154023467392485, + 0.7257719804332555, + 0.7200994878060297, + 0.48196893351897374, + 0.4316091103320883, + 0.13578669249193154, + 0.02005177473212834, 0, 0, 0, @@ -20163,17 +20087,17 @@ 0, 0, 0, - 0.017410818893593125, - 0.060073162019204186, - 0.08974005121382762, - 0.14457269939867176, - 0.2847322349956882, - 0.39712824722161416, - 0.3927892646804774, - 0.4300259897361934, - 0.25484994380064185, - 0.35654926868065456, - 0.02435891370771369, + 0.018548256842361163, + 0.05488720868884164, + 0.07911465892067839, + 0.13563985984325433, + 0.27210144227275374, + 0.39315103111453636, + 0.39627954401926535, + 0.44024621281926546, + 0.26066983502474494, + 0.3754039613769986, + 0.027095485300005814, 0, 0, 0, @@ -20186,18 +20110,18 @@ 0, 0, 0, - 0.00503133562531387, - 0.16808559824931496, - 0.1521739537085102, - 0.1960631214561298, - 0.7022190317305985, - 0.8152181890945038, - 0.8641612185114982, - 0.8879679001580291, - 0.9281279353261069, - 0.9237942255987859, - 0.6380844488325492, - 0.04325313374235804, + 0.006083236969392196, + 0.17687250639919827, + 0.15343337036552715, + 0.19643819499808773, + 0.7136608201525486, + 0.8361981538588801, + 0.8835688275697388, + 0.9076064439593571, + 0.954934351180883, + 0.9666009704692761, + 0.6625525506992052, + 0.04690011829772104, 0, 0, 0, @@ -20210,18 +20134,18 @@ 0, 0, 0, - 0.001575454942992247, - 0.021922167751737814, - 0.05543524030867885, - 0.15190075820249022, - 0.25877286845671155, - 0.41158358341452894, - 0.46471087252846954, - 0.4286461358766374, - 0.4012964743470081, - 0.29480302439327977, - 0.17139246177295148, - 0.027303505359873033, + 0.0019237390387049976, + 0.022550985529981537, + 0.05615965843871634, + 0.15323217577336742, + 0.261140617146035, + 0.4157891405252898, + 0.4700285386532051, + 0.4337115008300473, + 0.4058917842918288, + 0.2974462323225719, + 0.17421840861167354, + 0.02908041133811891, 0, 0, 0, @@ -20234,18 +20158,18 @@ 0, 0, 0, - 0.006059025747199428, - 0.34308913045739714, - 0.882391008331657, - 0.8892999795435318, - 0.8778324170731182, - 0.823692899250422, - 0.7267301303737735, - 0.5304671493955845, - 0.19162690806156096, - 0.6650731712698408, - 0.6469879661077622, - 0.050130913005510265, + 0.007057127287785503, + 0.36332802460398345, + 0.9316465682044994, + 0.9333468765115325, + 0.9280205895149615, + 0.896571525032514, + 0.7889690501250586, + 0.5538352519334026, + 0.19883283306954838, + 0.6896821580098071, + 0.6730423705944926, + 0.05529302393107079, 0, 0, 0, @@ -20258,18 +20182,18 @@ 0, 0, 0, - 0.005749285786685391, - 0.3456107717695403, - 0.872033307544745, - 0.9152825850256375, - 0.8722756907754398, - 0.8454162302779366, - 0.596116642079942, - 0.7360422845555001, - 0.5320060243487973, - 0.3061723751214863, - 0.7393084508343183, - 0.08188330862002252, + 0.006889785172934589, + 0.3669181525601866, + 0.9123806762390219, + 0.967413020958111, + 0.9257067195635497, + 0.8964706602038987, + 0.6212856944242116, + 0.780114650253186, + 0.554045458090324, + 0.31662754315941727, + 0.781986435714687, + 0.08840273624353305, 0, 0, 0, @@ -20282,18 +20206,18 @@ 0, 0, 0, - 0.007501687563982899, - 0.3616304941631191, - 0.8100823576667818, - 0.8522145501053894, - 0.814234155414975, - 0.7776146681558882, - 0.7629667918275221, - 0.7761731285659451, - 0.8180376053487242, - 0.8225939861513257, - 0.6063974372353209, - 0.049944845493715424, + 0.00907257777285462, + 0.391204731732371, + 0.9245096189074248, + 0.9739079512687915, + 0.9318060373019904, + 0.8915997346171681, + 0.876674124820998, + 0.9079217477807855, + 0.956375703064894, + 0.9639366363625979, + 0.6933727224618375, + 0.05756050474789518, 0, 0, 0, @@ -20306,18 +20230,18 @@ 0, 0, 0, - 0.002912204353414669, - 0.09620119947724394, - 0.2214516277758838, - 0.4613826288413662, - 0.1595288975906377, - 0.39831287423499384, - 0.6019801181396851, - 0.26678061628062993, - 0.24685946076418663, - 0.14924034580462567, - 0.0494322949326722, - 0.008007879867134506, + 0.0036774047594792404, + 0.10215760835553267, + 0.2290881853314834, + 0.47474083429008607, + 0.1663541282790633, + 0.4141801087590285, + 0.6362451777567923, + 0.2783371047415185, + 0.25678546619560577, + 0.15562314542172398, + 0.05237891973162446, + 0.00915721997110438, 0, 0, 0, @@ -20330,18 +20254,18 @@ 0, 0, 0, - 0.005245995851636508, - 0.13860063194233274, - 0.34361388194976694, - 0.916062579331358, - 0.9300282811231787, - 0.8452450984939314, - 0.808698911461398, - 0.7957617723538771, - 0.7991533116676546, - 0.19802638353079885, - 0.2132057954974675, - 0.06335637760138806, + 0.005718474197945884, + 0.1253822735075997, + 0.31327297037531665, + 0.9574593701505502, + 0.9426151984076369, + 0.9053687920612906, + 0.8938541449953216, + 0.8742505372180347, + 0.8811051538131651, + 0.20750378147267812, + 0.22194615902716028, + 0.06912471435558129, 0, 0, 0, @@ -20354,18 +20278,18 @@ 0, 0, 0, - 0.01261864472097003, - 0.41894227429454683, - 0.8473932486981626, - 0.8537667758828558, - 0.8077186858198684, - 0.7815726147393655, - 0.8175414732522276, - 0.854935614305055, - 0.8887640501661958, - 0.8698042541996642, - 0.6955577556475445, - 0.07972197090308664, + 0.014759958687828135, + 0.4560958399150672, + 0.94980829257261, + 0.9876305284566337, + 0.943589008389555, + 0.9029151111642735, + 0.8916936816756856, + 0.9260104820297332, + 0.9748543853823453, + 0.9550526249670555, + 0.7583576453021204, + 0.08947782219382, 0, 0, 0, @@ -20378,18 +20302,18 @@ 0, 0, 0, - 0.015156226009249173, - 0.45314021990075476, - 0.8438872747199311, - 0.9094920266967811, - 0.8898917312188646, - 0.756464030854316, - 0.5294459954210221, - 0.3051417669113626, - 0.8513914843527167, - 0.9380099563922999, - 0.7116318243545193, - 0.08494801285002515, + 0.01773894140995612, + 0.4859715071218966, + 0.9989385010546767, + 1.0646408013971362, + 1.0268354140666487, + 0.8659836526033596, + 0.574338161818723, + 0.3269574516851769, + 0.9600366363595316, + 1.0579932863828312, + 0.7767797814508505, + 0.09600727947028907, 0, 0, 0, @@ -20402,18 +20326,18 @@ 0, 0, 0, - 0.0077617693717918134, - 0.4357866270326286, - 0.8925663347051254, - 0.9091572090732495, - 0.8687673150205882, - 0.82865294423049, - 0.8047274085067134, - 0.8263354713179506, - 0.8478529620204363, - 0.838631047272161, - 0.6554394904480204, - 0.08323409640166887, + 0.008952726420484865, + 0.4575747211330296, + 0.9397579311592537, + 0.978956609688392, + 0.9432735407962258, + 0.9063461999254248, + 0.8977466059168506, + 0.9238563126951412, + 0.9648941577499375, + 0.9666683080124095, + 0.7391233809591181, + 0.09352657304685487, 0, 0, 0, @@ -20426,18 +20350,18 @@ 0, 0, 0, - 0.0220048780439397, - 0.365336579835875, - 0.8286678287685791, - 0.6229288354785713, - 0.7117532092604985, - 0.5384105699919806, - 0.6440312543031045, - 0.647436958058667, - 0.585763976035719, - 0.7320905249355009, - 0.5344811617566516, - 0.07108467575269174, + 0.024944393595366737, + 0.38484200625983545, + 0.9426856651534383, + 0.7109792867760756, + 0.830149896303683, + 0.600469424965539, + 0.7313124361349033, + 0.7341950398346886, + 0.6660498000420987, + 0.8536034138922983, + 0.6017075710518927, + 0.08236613137186952, 0, 0, 0, @@ -20450,18 +20374,18 @@ 0, 0, 0, - 0.019938507879888705, - 0.45248725238693466, - 0.7889719296409409, - 0.9090479508177036, - 0.7997144410842222, - 0.7422360879726652, - 0.7447977469771215, - 0.8156453662289017, - 0.8318675755028195, - 0.6914662938878249, - 0.5637029988435571, - 0.10008805148487875, + 0.023049935927190356, + 0.4824828693792593, + 0.9101870506389043, + 1.0257596823317943, + 0.905698056967315, + 0.8652443352916456, + 0.8565754405809082, + 0.9411548778776277, + 0.9588416896527912, + 0.7764579851813019, + 0.6239756737418158, + 0.114961967887871, 0, 0, 0, @@ -20474,18 +20398,18 @@ 0, 0, 0, - 0.009384996621414463, - 0.47673745546913104, - 0.843922217199289, - 0.8453945708645055, - 0.8453028771005604, - 0.8127261799053815, - 0.8125716822958607, - 0.24897509327964024, - 0.08891714492697747, - 0.07534044823636313, - 0.06071052166343425, - 0.024895561953541367, + 0.011222699727067232, + 0.5125559217826955, + 0.9789605730122509, + 0.9740247537099548, + 0.9662747373147744, + 0.9314917212528169, + 0.9405926431212993, + 0.2745337826385772, + 0.09913345096229334, + 0.08360062942293565, + 0.06758851332849103, + 0.029139257733154962, 0, 0, 0, @@ -20498,18 +20422,18 @@ 0, 0, 0, - 0.014681210235082969, - 0.4121085018226147, - 0.8273184045798797, - 0.7774640293612971, - 0.8580517473362462, - 0.8279089040566749, - 0.8081822904077133, - 0.7831138475252131, - 0.7521402603138267, - 0.40725605109342333, - 0.08909428398144474, - 0.03094268757319863, + 0.01688762911787576, + 0.43802499039088105, + 0.959462674465166, + 0.872158869147877, + 0.9579636742586836, + 0.9270347721246992, + 0.9220749628188011, + 0.8940438402061757, + 0.8533533012402463, + 0.4425084742631208, + 0.09729636256618672, + 0.035502640141741, 0, 0, 0, @@ -20522,18 +20446,18 @@ 0, 0, 0, - 0.02298317392556555, - 0.2534588011228464, - 0.775927835186561, - 0.9004737583659782, - 0.76709113446717, - 0.6712800521457383, - 0.7108938997935073, - 0.686480188928114, - 0.8466112638351672, - 0.9127257116918723, - 0.7584454159698852, - 0.07111632952836858, + 0.02636768859543288, + 0.2676604706426395, + 0.8701722800366661, + 1.0013939353459902, + 0.8493294273814272, + 0.761666045259063, + 0.7919011641066356, + 0.755194227512609, + 0.9343034934491027, + 1.001920651122692, + 0.8122935882160336, + 0.07947863019906548, 0, 0, 0, @@ -20546,18 +20470,18 @@ 0, 0, 0, - 0.04401869835110098, - 0.38749196352181914, - 0.7933677230098483, - 0.8148040221693797, - 0.8612505246018677, - 0.8120880841066844, - 0.7968254217559847, - 0.28717004425705717, - 0.7694922101804115, - 0.3645071657242522, - 0.0832939273754943, - 0.04594014390770542, + 0.04990683186989479, + 0.41236512999517677, + 0.8946216840136965, + 0.9407795865688807, + 0.9846786240494616, + 0.9405969431814638, + 0.9280105335731028, + 0.3159027641812204, + 0.8890283605850495, + 0.4065697431550136, + 0.09461269371746041, + 0.05348475370543153, 0, 0, 0, @@ -20570,18 +20494,18 @@ 0, 0, 0, - 0.018237155228232126, - 0.21916171290553046, - 0.28903104537310675, - 0.4066612145660763, - 0.5624710722072616, - 0.5361392603000232, - 0.461565704339031, - 0.4259839819552262, - 0.3233808129683492, - 0.22472458814749402, - 0.13544512047179166, - 0.031659897458341406, + 0.021290295309379845, + 0.22983772779774683, + 0.300154581809386, + 0.42344616234656557, + 0.589610629505265, + 0.5640514579569066, + 0.48664599466596814, + 0.4498789771534948, + 0.33922426498002595, + 0.235791276323185, + 0.1422949376792323, + 0.03453034007367409, 0, 0, 0, @@ -20594,18 +20518,18 @@ 0, 0, 0, - 0.0018887106208121532, - 0.014280829632150318, - 0.078142581101547, - 0.10383999704530535, - 0.19057698445963026, - 0.19670797884443295, - 0.3335649474882236, - 0.19540291302660256, - 0.22030158326627525, - 0.11407863035868095, - 0.04306677569261382, - 0.013772758165348101, + 0.0022599426486342657, + 0.015525863178636192, + 0.08185623332691311, + 0.10952806284962545, + 0.20101439929103052, + 0.2073443639166813, + 0.35241401269410727, + 0.20502191791922417, + 0.2297289286901393, + 0.11943864414612083, + 0.04583702731148262, + 0.015419310696191253, 0, 0, 0, @@ -20618,18 +20542,18 @@ 0, 0, 0, - 0.0074679292670441644, - 0.047236277090120286, - 0.0926796233159491, - 0.2721805127486992, - 0.36068929841118674, - 0.6291291382143576, - 0.8175653770108458, - 0.7832652649914962, - 0.6592276915551011, - 0.8768574518903252, - 0.6701197491615818, - 0.08159317481937228, + 0.008467662321473715, + 0.04942805314925971, + 0.09642733603074403, + 0.2831065289478866, + 0.3751830893808301, + 0.6668904636353339, + 0.8914738533206661, + 0.8497828872166641, + 0.7040704492008149, + 0.9549725773546585, + 0.7032086191607649, + 0.08692294672426731, 0, 0, 0, @@ -20642,19 +20566,19 @@ 0, 0, 0, - 0.011954350058122759, - 0.21038068042077535, - 0.6850922434864565, - 0.7085577651619789, - 0.8164445558730019, - 0.8236661822835238, - 0.8356046953332517, - 0.8104757420170685, - 0.8481733976003395, - 0.6354497729566727, - 0.30203231831182903, - 0.055779275693874246, - 0.000939566431972872, + 0.013454105790595628, + 0.2176944838711347, + 0.7326095610261084, + 0.7703927945164595, + 0.904630107615017, + 0.9253358939305233, + 0.9445885714062677, + 0.9097689668166047, + 0.9557339436520005, + 0.7076729879557565, + 0.3194019162030814, + 0.06278210394610212, + 0.0012104163050022005, 0, 0, 0, @@ -20666,18 +20590,18 @@ 0, 0, 0, - 0.06518316022989501, - 0.6508886720312885, - 0.8959154680396755, - 0.7598702040176986, - 0.7730258856911326, - 0.647735704761135, - 0.8186213029496114, - 0.9143875818818878, - 0.7663932496416003, - 0.3739340942003605, - 0.1059869265314749, - 0.04709040744331035, + 0.0726158629015236, + 0.704047021547641, + 1.0376374378521132, + 0.851251581914682, + 0.8660474758941844, + 0.7203266750484587, + 0.9172897158219812, + 1.0238018203399344, + 0.8339966968765882, + 0.39276635059124604, + 0.11246302127327872, + 0.051108020402123346, 0, 0, 0, @@ -20690,19 +20614,19 @@ 0, 0, 0, - 0.0038058557554061364, - 0.022222375826933444, - 0.09702100514528644, - 0.14077230211865335, - 0.24785971364968443, - 0.5860977376220284, - 0.7662640132176154, - 0.708279200590283, - 0.32660462131024004, - 0.18216414500848319, - 0.07390621116474622, - 0.04427259607836272, - 0.0012140770388430122, + 0.004494606537944836, + 0.024307607656053987, + 0.10249871820704834, + 0.14766821544207862, + 0.2602531436560204, + 0.6372575107349489, + 0.8587913558565988, + 0.7882572346629916, + 0.34984705474509226, + 0.19459506259585974, + 0.0803156408891991, + 0.049457965164535295, + 0.0015597952870752283, 0, 0, 0, @@ -20714,18 +20638,18 @@ 0, 0, 0, - 0.08449902029648232, - 0.6795174335186683, - 0.8797638108926924, - 0.8970908905399702, - 0.8807404680105174, - 0.6518981710124152, - 0.7441575814374438, - 0.5464618258380607, - 0.43857283121746765, - 0.1841435714184097, - 0.04871618539030937, - 0.022792673485264665, + 0.0929283310749614, + 0.7393719900986334, + 1.0421647990520206, + 1.0478473645506023, + 1.0204560369377218, + 0.744532037924286, + 0.8640500844227278, + 0.6076456023236003, + 0.4776229897723768, + 0.19903284897898638, + 0.0545028403619055, + 0.026202136934433348, 0, 0, 0, @@ -20738,18 +20662,19 @@ 0, 0, 0, - 0.004512890832956132, - 0.01878997298103276, - 0.04388069887333182, - 0.07535304855004321, - 0.2936866968423628, - 0.18865257560177717, - 0.175232367239576, - 0.1646885079892394, - 0.1591811705889103, - 0.160876024169208, - 0.1485278148604915, - 0.05942383651618315, + 0.005167614310867258, + 0.017645490820554617, + 0.03685892856063823, + 0.060953701640258005, + 0.24682924897494446, + 0.1604918071933895, + 0.14726761195804916, + 0.1355963864937038, + 0.12952296960747073, + 0.13097022851176265, + 0.12482441065815414, + 0.05044489166651084, + 0.0011108507652089947, 0, 0, 0, @@ -20761,20 +20686,20 @@ 0, 0, 0, + 0.0170485798223182, + 0.07518168436889441, + 0.15498778270892052, + 0.18380687616034752, + 0.30683269764697446, + 0.3479196753726551, + 0.46762910128830665, + 0.35518840701260906, + 0.3247643386722092, + 0.37459756393767324, + 0.1689711333135126, + 0.04072160465589698, + 0.0025083819573395623, 0, - 0.019393101494787752, - 0.09102989363562583, - 0.18808983041583943, - 0.2239156118582215, - 0.3679474367030574, - 0.41681429799757497, - 0.5488762390451198, - 0.42204526213845295, - 0.3856084811668399, - 0.43181881220633217, - 0.19325442531853423, - 0.04794674732569916, - 0.0020847821313900966, 0, 0, 0, @@ -20785,20 +20710,20 @@ 0, 0, 0, + 0.1168217976031497, + 0.8270770576886961, + 1.1113560153086934, + 1.0970092248779444, + 1.0653477219950755, + 0.9582604456603571, + 0.9694147589308886, + 0.7683853311770055, + 0.4598814397682251, + 0.31031632287594824, + 0.19503092700179533, + 0.14817073354089758, + 0.0076847287752461685, 0, - 0.11198837232500992, - 0.7705626816064646, - 1.0166162023322596, - 1.01757379136468, - 1.013335412068141, - 0.957198595945071, - 0.9295349201726336, - 0.7534623283403671, - 0.4843472822518117, - 0.3284076217502672, - 0.20587130697031236, - 0.14935109171115657, - 0.006302674720944164, 0, 0, 0, @@ -20809,20 +20734,20 @@ 0, 0, 0, + 0.10036374927209242, + 0.7358262115092946, + 0.5254952792960577, + 0.8885473347690259, + 1.0288973991665449, + 1.0438329231766144, + 1.0581468922095145, + 1.04960742341097, + 0.9561724615000222, + 0.9087606289432133, + 0.9446053069008173, + 0.18427074965342274, + 0.003065574404657791, 0, - 0.09613155389551677, - 0.6970741489977507, - 0.5301390792608167, - 0.8507855021256508, - 1.0130018788114445, - 1.012001962270227, - 0.97343901345344, - 0.9683908003368518, - 0.8589949799548768, - 0.8083618479408751, - 0.8451928586375546, - 0.169479805331082, - 0.00234821337496372, 0, 0, 0, @@ -20833,19 +20758,19 @@ 0, 0, 0, + 0.14563818756727986, + 0.8518122488146102, + 0.946293615157173, + 1.075714146181633, + 1.089018457925288, + 0.6287503997762377, + 0.5279502690349452, + 0.5567499429531978, + 0.5436573828908176, + 0.46892914573908034, + 0.0705146332554507, + 0.020293083120207816, 0, - 0.13516798232122232, - 0.7861222716678977, - 0.8231572955443475, - 0.9463933085491811, - 0.9128247101195015, - 0.5652188658929119, - 0.48107586155681337, - 0.5047237607837315, - 0.49218097124198246, - 0.428247344233188, - 0.06378591824849848, - 0.01762209559604806, 0, 0, 0, @@ -20857,20 +20782,20 @@ 0, 0, 0, + 0.1795970861615908, + 0.8521274393359864, + 1.0676171342245084, + 1.0778876290829797, + 0.8982187986168051, + 0.96001744155063, + 0.9963283652586558, + 0.9963522261390229, + 1.0305308836487637, + 1.068004142159977, + 0.7675573022087201, + 0.2775851031488223, + 0.00322870536410092, 0, - 0.1653970633338451, - 0.7681562882760848, - 0.9191893979641041, - 0.9142582782476268, - 0.8013189706985133, - 0.8390621463135866, - 0.8445139581620962, - 0.8553488731700545, - 0.891877455675455, - 0.9282911792054616, - 0.6914491744718041, - 0.25116628286568515, - 0.0024178078528553143, 0, 0, 0, @@ -20880,21 +20805,21 @@ 0, 0, 0, + 0.0011907378624110153, + 0.19615878109546372, + 0.826591806663853, + 0.9965596105780808, + 0.9283935845082294, + 1.016807204405649, + 0.9817389335145105, + 0.8770298937337042, + 1.09381853345386, + 1.0666656141702262, + 0.8655526942719065, + 0.6817310729311167, + 0.1358149330149634, + 0.003915085984205364, 0, - 0.0009396197862631809, - 0.1804234077036361, - 0.7332985829361154, - 0.8665277929963046, - 0.8295604565052859, - 0.8855542340163125, - 0.8337968478642649, - 0.760937792984499, - 0.9344799819956515, - 0.9302349055658237, - 0.771552543879843, - 0.6203107242925305, - 0.12331304622066169, - 0.0029380731037943245, 0, 0, 0, @@ -20904,21 +20829,21 @@ 0, 0, 0, + 0.0015817972969414719, + 0.19787449503736426, + 0.8377267315061799, + 0.9584459765363772, + 1.0044455471860252, + 1.0419952591263426, + 0.9071916981306387, + 1.0076930075774317, + 1.0234822865857653, + 1.047843293431661, + 1.0462380216960294, + 0.8748369511829646, + 0.2622928273538019, + 0.003947796998954679, 0, - 0.0013037705875126781, - 0.1840197574588535, - 0.735698800124009, - 0.8581575921074585, - 0.900498144532326, - 0.9364098001740324, - 0.8332953820374447, - 0.9066640028615047, - 0.9142813089749119, - 0.9244523698686157, - 0.911285837429057, - 0.7732610470963736, - 0.2404600770898871, - 0.003061212400591052, 0, 0, 0, @@ -20929,19 +20854,19 @@ 0, 0, 0, + 0.012732845756068766, + 0.024465984262481352, + 0.052552668230090006, + 0.13309282975485828, + 0.1399005656634784, + 0.14278767420889438, + 0.12441561481194739, + 0.08396776721387712, + 0.08784982434712808, + 0.08329875836210512, + 0.131157098611704, + 0.009965548372866968, 0, - 0.011541525980563825, - 0.022788310075062043, - 0.04999208474381592, - 0.12763620232390385, - 0.1334988956636687, - 0.13614090535919526, - 0.11849516394025615, - 0.07948440607035158, - 0.08352024413522517, - 0.07906479518778277, - 0.12590948614922734, - 0.008724587193239392, 0, 0, 0, @@ -20952,21 +20877,21 @@ 0, 0, 0, + 0.0011528953116865623, + 0.13432322837040245, + 0.9413334956079741, + 1.1320191707799527, + 1.0751355452921707, + 1.1273853171066546, + 1.0499528748461433, + 1.0563581953395176, + 1.0745314429892796, + 1.1001587926609337, + 1.1066264279934424, + 0.9899612410735366, + 0.2628712763217334, + 0.004804501769729492, 0, - 0.0009483339407278389, - 0.1322083515354734, - 0.910158799811705, - 1.1055997011936007, - 1.079533183018568, - 1.1274230287821234, - 1.0017102773716164, - 0.9899475272926964, - 0.9914423135536966, - 1.0196223836502256, - 1.0308111391195454, - 0.9247462082970506, - 0.24526271690392265, - 0.00382529400151031, 0, 0, 0, @@ -20976,21 +20901,21 @@ 0, 0, 0, + 0.0022566727179122656, + 0.24910509980373388, + 0.3837549109281096, + 0.3499898793632851, + 0.6141898988390256, + 0.8706744310629729, + 0.821313121765958, + 0.5688919070072366, + 1.00005157215805, + 1.0158921094062876, + 0.673097281576937, + 0.3317312579968332, + 0.1270644659472316, + 0.004509710143622592, 0, - 0.001872347669388287, - 0.23314485361211942, - 0.37274671130338277, - 0.33672216139584477, - 0.5826773735596412, - 0.7884022983209152, - 0.7342819089275456, - 0.5204415886571513, - 0.8544031236979982, - 0.8864599384638263, - 0.6135795424318523, - 0.31521790701978236, - 0.11843702494528947, - 0.003531737941667249, 0, 0, 0, @@ -21000,21 +20925,21 @@ 0, 0, 0, + 0.0014039566708941708, + 0.10782949273110654, + 0.14029769099687758, + 0.2202300737366154, + 0.8257038758524702, + 1.0115495855759413, + 1.0122155826343755, + 0.9949445525604745, + 0.298318573134709, + 0.5733756727714259, + 0.8501946242321141, + 0.9309814825217135, + 0.22423070146346424, + 0.005447295446640746, 0, - 0.001065334385196838, - 0.10218056762123351, - 0.13408312178691612, - 0.2112049340831801, - 0.7516660676372002, - 0.8784893630140703, - 0.8921978037966551, - 0.8811623833699758, - 0.28030418941229046, - 0.5345041083220485, - 0.7458466433261131, - 0.7978379808357796, - 0.20702818796453473, - 0.004277770713336138, 0, 0, 0, @@ -21025,20 +20950,20 @@ 0, 0, 0, + 0.028013375355569067, + 0.7601558197643592, + 0.9917463863923606, + 0.7266541057340858, + 1.0925583693415155, + 1.0676217025394825, + 0.9573485285619825, + 1.0790943377539777, + 0.9067916668040693, + 0.3127620871820042, + 0.17054559080615495, + 0.41606302281509966, + 0.017003096742527358, 0, - 0.0248542115141475, - 0.6806411334234891, - 0.8455362551468159, - 0.6647746073964539, - 0.9323950750751586, - 0.9240041477624301, - 0.8358311261142398, - 0.925305008244928, - 0.7857633433753073, - 0.2885003512656417, - 0.15639460394157575, - 0.3612474809777164, - 0.013441758770548694, 0, 0, 0, @@ -21049,20 +20974,20 @@ 0, 0, 0, + 0.04437601989505304, + 0.20250498253998478, + 0.4791249905672653, + 0.8034909074481967, + 0.8826601323988402, + 0.9662182098752073, + 0.9843391845823632, + 0.9960594391139798, + 0.746826698551448, + 0.40021361044760784, + 0.25148885780618074, + 0.24916409008340568, + 0.018794012408118125, 0, - 0.04029274798295774, - 0.19353487285214105, - 0.44371453383485765, - 0.6847423974340959, - 0.7699046174165254, - 0.8416392120161956, - 0.8442590512831937, - 0.8492867154476933, - 0.6526969729282419, - 0.361705999193081, - 0.2290603523156808, - 0.22554454097993532, - 0.015272150366303243, 0, 0, 0, @@ -21073,20 +20998,20 @@ 0, 0, 0, + 0.014120180423231219, + 0.04665424143411126, + 0.08693683311455791, + 0.10692483223135382, + 0.12275873962806173, + 0.14741104901768817, + 0.12596591852490638, + 0.1796585473026153, + 0.13980783201496333, + 0.07499627326886654, + 0.05112131969993091, + 0.0660295689532393, + 0.011240688466794612, 0, - 0.012856455589598935, - 0.044371136099501364, - 0.08334022817655551, - 0.10271313019907045, - 0.11828083461713237, - 0.1425762571168669, - 0.12179321729787519, - 0.17352394888081996, - 0.13478346082744075, - 0.07233470032021672, - 0.051776301826910516, - 0.0702909222804632, - 0.010786361173534145, 0, 0, 0, @@ -21097,20 +21022,20 @@ 0, 0, 0, + 0.048986984985201355, + 0.2756416299944275, + 0.5393917662596376, + 0.9587952836389763, + 0.5942311618865427, + 0.49599698687464977, + 0.37509076424912924, + 0.3790177427139536, + 0.40174139268195697, + 0.6264129668137615, + 0.5677036514233679, + 0.08287610527325215, + 0.009181732219171538, 0, - 0.0546260351616506, - 0.29327794327062473, - 0.5678224182110115, - 0.9195830217323229, - 0.5734578898398818, - 0.4701324189222169, - 0.358799669633905, - 0.3618643784944877, - 0.3826734971162374, - 0.5890894009955525, - 0.5417606223627148, - 0.07876701523100457, - 0.007856464910129809, 0, 0, 0, @@ -21120,21 +21045,21 @@ 0, 0, 0, + 0.0014518222180380591, + 0.2553516891207178, + 0.9029165536286797, + 1.0582163884761828, + 1.0654758307580947, + 1.0719187637720515, + 1.0019278366510247, + 1.0321339724705394, + 0.975781572012469, + 0.9594748491389686, + 0.8701537537012869, + 0.8364508981597681, + 0.19042753887173988, + 0.01069126567853277, 0, - 0.0012107636280625812, - 0.24084452838987017, - 0.8376195853595995, - 0.9294500022222383, - 0.9303537443556169, - 0.9539302204608298, - 0.889102777010824, - 0.9043559412446034, - 0.8464582410837506, - 0.8290307367789824, - 0.7638333211510095, - 0.7274019339740472, - 0.17531520881051815, - 0.008600050614967398, 0, 0, 0, @@ -21145,20 +21070,20 @@ 0, 0, 0, + 0.24748703086726018, + 0.8983299732454417, + 1.0563996965034392, + 1.0734605285929268, + 1.0925449649155452, + 1.1194407519004799, + 0.7744884856480289, + 0.43461709019878886, + 0.42120690238012626, + 0.30623232343990503, + 0.6218367885013941, + 0.5503946787915464, + 0.030758480931797873, 0, - 0.2310215165667132, - 0.8007511538681578, - 0.9012202143148923, - 0.9248557290803526, - 0.9319010431268696, - 0.9445337048268099, - 0.6819834619288782, - 0.39297344534340334, - 0.3820037924626608, - 0.27764476918550846, - 0.5550506145056696, - 0.4788317688816275, - 0.02515838208371479, 0, 0, 0, @@ -21168,21 +21093,21 @@ 0, 0, 0, + 0.0024183088860483754, + 0.3096540110843032, + 0.9391420746453765, + 1.0772115714527022, + 1.0929060890899671, + 1.0749367651056432, + 1.0682534307589033, + 1.0720337480458757, + 1.0985469769535035, + 1.1473910535625764, + 1.1279828121985571, + 0.9858873574385201, + 0.5078041602359663, + 0.02270128362651237, 0, - 0.0019209347434747976, - 0.2868571531108649, - 0.8314913843457028, - 0.9008798302512606, - 0.9297397936904884, - 0.9129421685604293, - 0.9114521401717057, - 0.9006900735531685, - 0.8984038220853943, - 0.938212627754894, - 0.9344169071122014, - 0.836206310547548, - 0.44873931602266487, - 0.01811390610826054, 0, 0, 0, @@ -21192,21 +21117,21 @@ 0, 0, 0, + 0.0027457892890481667, + 0.321581578869369, + 0.9499533955931394, + 1.0868315252469194, + 1.1052644465209382, + 1.093077172205142, + 1.0753362904233885, + 1.0711891482946228, + 1.0986819292744012, + 0.7645561581990177, + 0.3570535202568519, + 1.0503599771364418, + 0.5128998776376189, + 0.0313315369582606, 0, - 0.00216754749164902, - 0.294711680487428, - 0.8399611147949194, - 0.9352171048943537, - 0.9461893640487012, - 0.9145725565112217, - 0.8988472647027761, - 0.9025427623011325, - 0.9127628527317205, - 0.6763134150668434, - 0.3251075622118426, - 0.886545731540968, - 0.4488462600001552, - 0.025631254395607785, 0, 0, 0, @@ -21216,21 +21141,21 @@ 0, 0, 0, + 0.0032782536081459646, + 0.33489891947594164, + 0.946553390604209, + 1.0801974522979398, + 1.086728797623983, + 0.9548436090167886, + 1.0588033806819734, + 1.0437544716785532, + 1.0526627449773553, + 1.0890285643725244, + 1.139453288886676, + 1.0080246392856398, + 0.518581779489324, + 0.03318657666413535, 0, - 0.0025197368841431414, - 0.3121538572765446, - 0.8283497418853307, - 0.9214983916228496, - 0.9261024369733583, - 0.8414210042287729, - 0.9165823189130303, - 0.8987850153523563, - 0.906924506110552, - 0.9358007324592769, - 0.9718969976257751, - 0.8845713443222857, - 0.45479050699764423, - 0.027394143620660782, 0, 0, 0, @@ -21240,21 +21165,21 @@ 0, 0, 0, + 0.0036053080282686997, + 0.1331934384429293, + 0.5302029863876961, + 1.0364240255681676, + 1.0752535089105502, + 1.0663623027262772, + 1.0614736684364996, + 1.0343091887199702, + 1.113166808694782, + 1.0812143588965382, + 1.0404035198746346, + 0.9310060541993291, + 0.2724386492146262, + 0.010971977627699109, 0, - 0.002873716774158139, - 0.12629946036254683, - 0.5018192211264781, - 0.933727266799205, - 0.9810585226283708, - 0.9712067985783992, - 0.966694437083511, - 0.9156853625000264, - 0.9584245653369343, - 0.91282105405651, - 0.8910183826910156, - 0.8145797186730528, - 0.25030400018482235, - 0.008948010097026218, 0, 0, 0, @@ -21264,21 +21189,21 @@ 0, 0, 0, + 0.0034278422213288745, + 0.2211503096001225, + 0.9406423469489446, + 1.0820959404727293, + 1.0988236209018212, + 1.0384502990935174, + 0.9262788435971196, + 0.7033293603784481, + 0.49957797598334014, + 0.9650732644427304, + 0.2859912218429552, + 0.20994989614750936, + 0.44950512265499215, + 0.036663167536838535, 0, - 0.0026020984757250064, - 0.20207498697479126, - 0.8355589154210057, - 0.9297763093498767, - 0.9323877925122748, - 0.8821994133994958, - 0.7974898699036248, - 0.6108809211614304, - 0.44783842801312185, - 0.8289924773246871, - 0.25933920475754296, - 0.1917643728173571, - 0.4011450583028727, - 0.030907885399117575, 0, 0, 0, @@ -21288,21 +21213,21 @@ 0, 0, 0, + 0.006003332382483931, + 0.3997567066155063, + 0.9719316204764181, + 1.1041722001753564, + 1.118960955025628, + 1.111069935622773, + 1.119372361251568, + 1.0372959218005806, + 0.4661000866146846, + 1.1213784958915571, + 1.218597153494278, + 0.6403058255782205, + 0.2911614816303265, + 0.04388517089843275, 0, - 0.00466201944738174, - 0.36245896411724604, - 0.8570448742014597, - 0.955413885661265, - 0.9763961384211989, - 0.9653549444986188, - 0.9632968736619867, - 0.890805079776505, - 0.41485920840414847, - 0.9271533078835994, - 1.0215460956343956, - 0.5763755449087913, - 0.26669916625457796, - 0.036949881712749544, 0, 0, 0, @@ -21312,21 +21237,21 @@ 0, 0, 0, + 0.0033475963955827592, + 0.03570690772062753, + 0.20167882204139637, + 0.16634676259314524, + 0.2803255656100209, + 0.21559060936497107, + 0.2764107397723219, + 0.35787158882226944, + 0.3600542499899077, + 0.42986546907705225, + 0.23019540633645544, + 0.13165219867012942, + 0.08499082608658365, + 0.012496616431091788, 0, - 0.0028968606976979778, - 0.04109042220640771, - 0.22432432657255683, - 0.1909907466092105, - 0.3183852731937472, - 0.24407524330927083, - 0.31282267381399276, - 0.40396638812122376, - 0.40491999257145234, - 0.4728050358864794, - 0.253912035656872, - 0.14728073462151475, - 0.09479143761989281, - 0.012977714145398478, 0, 0, 0, @@ -21336,21 +21261,21 @@ 0, 0, 0, + 0.0030714970376120015, + 0.04372549609063334, + 0.11429154756500425, + 0.2554495459134703, + 0.27501794754983266, + 0.4993358971076279, + 0.5618741460161948, + 0.4712514413483987, + 0.3786652191431364, + 0.46150490610159983, + 0.5650148781635931, + 0.27177997707176127, + 0.14068768737575837, + 0.01967450581229929, 0, - 0.0027302122290727517, - 0.05264288177869627, - 0.13768550954908892, - 0.30251604055714787, - 0.32467885414812253, - 0.5817616346485576, - 0.647798690194242, - 0.5462656068134409, - 0.44451122671901444, - 0.5303284971034166, - 0.6222842767548963, - 0.30656862224022635, - 0.15656237198781917, - 0.020835499665857536, 0, 0, 0, @@ -21360,21 +21285,21 @@ 0, 0, 0, + 0.011454239144478445, + 0.44316876927162435, + 0.9904406135851228, + 1.154218893732523, + 1.1604441745517469, + 1.1477954295065655, + 1.1278396678318694, + 1.1257468799581065, + 1.146616226632825, + 1.0761244467715279, + 0.9396568022679714, + 0.14005493358091659, + 0.39518374026481673, + 0.06480513028154417, 0, - 0.010485975987211339, - 0.4346154362211518, - 0.9664893865698904, - 1.0430802434224982, - 1.099453882621057, - 1.0615079505528355, - 1.0684206326259245, - 1.0627044370232885, - 1.0561427231860068, - 0.9976603912630301, - 0.8723077660899465, - 0.1336095335931405, - 0.3736363028463387, - 0.05938297645881491, 0, 0, 0, @@ -21384,21 +21309,21 @@ 0, 0, 0, + 0.016778036032934374, + 0.5020790732566263, + 0.5943747749162547, + 1.0821311875768376, + 1.1445962680814212, + 0.8409851854445929, + 0.5808940283058276, + 0.2995255406445342, + 0.26344738278360635, + 0.4270450607659443, + 0.6036532574319038, + 0.1387430380276569, + 0.05129207185213215, + 0.0043655671286617044, 0, - 0.0148838582846728, - 0.48047532577510776, - 0.5678077430650218, - 0.9528008273325136, - 1.0021407446383335, - 0.7618571270421488, - 0.5414701509928028, - 0.28202198064622974, - 0.24936532458526126, - 0.405493852550643, - 0.5717280495306505, - 0.13278361950675457, - 0.04834933207982099, - 0.0036648049826360214, 0, 0, 0, @@ -21408,21 +21333,21 @@ 0, 0, 0, + 0.0015330666454467653, + 0.03817651997090493, + 0.22810476357366166, + 0.3043264117708109, + 0.2912993329957392, + 0.27369134510895715, + 0.2692802313156672, + 0.3940706188620366, + 0.5820872907986914, + 0.4278143491413565, + 0.2649953689202099, + 0.24211881616903955, + 0.10077592287768053, + 0.01615121268215638, 0, - 0.0013241483966867373, - 0.047055341815252325, - 0.2702981733607082, - 0.3642478944300729, - 0.35292380601879614, - 0.33290146780150953, - 0.3263155370096539, - 0.4746505821848541, - 0.6889808578184284, - 0.506731695483821, - 0.3190323219665718, - 0.2848306566170089, - 0.11822492715168637, - 0.01785906577864503, 0, 0, 0, @@ -21432,21 +21357,21 @@ 0, 0, 0, + 0.01785650772654947, + 0.5084060360477268, + 1.0336265391230879, + 1.159545582386843, + 1.1754031475763616, + 1.1696605162765563, + 1.1559380755258752, + 1.1542647582957015, + 1.1744975810642888, + 1.1870812502848276, + 1.1816117584488162, + 1.0921613511238506, + 0.6208756686125185, + 0.06955628205565152, 0, - 0.016670132896278684, - 0.49907539372937926, - 0.9859215321755728, - 1.0828805006755005, - 1.1249948536814265, - 1.1687594930321872, - 1.1493140739897074, - 1.1332540273471603, - 1.0755914874381591, - 1.0367484971108798, - 1.0237175586078273, - 0.936041292081955, - 0.5570293626219317, - 0.06273753762243826, 0, 0, 0, @@ -21456,21 +21381,21 @@ 0, 0, 0, + 0.006844088092559543, + 0.472830770727342, + 0.9952883215187954, + 0.5934273659214374, + 0.4419274334859879, + 0.5099014735023077, + 0.4814943642220525, + 0.5566282261768692, + 0.6808843228032154, + 0.3914123914652392, + 0.10188025306308, + 0.15523989457072615, + 0.5258038618053453, + 0.017284940474651865, 0, - 0.005809559868658782, - 0.45283031555321235, - 0.9112782624802922, - 0.5661456131550704, - 0.43651157572203303, - 0.4848990116900756, - 0.4538126740442815, - 0.5105014438698658, - 0.6278885738833891, - 0.3738385570055813, - 0.09688338684823043, - 0.14816288161299862, - 0.4918000808514796, - 0.014839342062679565, 0, 0, 0, @@ -21480,21 +21405,21 @@ 0, 0, 0, + 0.012752819595160591, + 0.49393251495932466, + 0.9781587502644103, + 1.1076138660497827, + 0.8883567110887897, + 0.8786056343512517, + 1.0881182431679572, + 1.113530884384207, + 1.013260993369423, + 0.6926017097504397, + 1.0617866387867392, + 0.41951369442744485, + 0.12544906918559406, + 0.04214622964693666, 0, - 0.01103787270484155, - 0.4749997719802676, - 0.8985453183182125, - 0.984464383032568, - 0.788483886252793, - 0.7783057442922856, - 0.9267722116015554, - 0.9377890560019939, - 0.8784963544434473, - 0.627032252763564, - 0.9421600707789228, - 0.38769971693116845, - 0.11662286197002086, - 0.03740505763664926, 0, 0, 0, @@ -21504,21 +21429,21 @@ 0, 0, 0, + 0.026248275344664913, + 0.3003692319117641, + 0.9540060088193159, + 1.1091992372726789, + 0.9284011623376252, + 1.1388657026039144, + 1.1409243138445726, + 0.8968923437277331, + 1.1481906590815196, + 1.2034529314572093, + 0.6607689515526755, + 0.2571989119602963, + 0.11721266955729016, + 0.06825761455592247, 0, - 0.023098998484969845, - 0.28885889361086386, - 0.860788358652162, - 0.9830670019813849, - 0.8258685303045314, - 0.9930347112168004, - 0.9751948742009727, - 0.7894643998905423, - 0.9854123602269464, - 1.0141279615413241, - 0.5999565559691786, - 0.23849497612665307, - 0.10686550895712074, - 0.0587895991982408, 0, 0, 0, @@ -21528,21 +21453,21 @@ 0, 0, 0, + 0.026141951906639097, + 0.5271352734934615, + 0.9912280797878616, + 1.0899863046947647, + 1.0969356777814843, + 1.1112932666030002, + 1.1110115024197003, + 1.102980664155711, + 0.999249424472039, + 0.632087367171024, + 0.2843333609715366, + 0.18818960053419725, + 0.06398721613688303, + 0.032948873984162644, 0, - 0.02289385541749839, - 0.49306693528206874, - 0.857690699417135, - 0.9287190501926578, - 0.9328701521483483, - 0.9265855570932843, - 0.9321497523799166, - 0.911996628945061, - 0.8518822705943567, - 0.557394128829969, - 0.2598844263965124, - 0.17303081022805028, - 0.05720205961646447, - 0.028650354539428873, 0, 0, 0, @@ -21552,21 +21477,21 @@ 0, 0, 0, + 0.030514611119049344, + 0.5606696127018078, + 0.8042812730934328, + 0.4220880345405743, + 0.5145732981126719, + 0.5906222613298202, + 0.6988990279454456, + 0.3398821955156048, + 0.9532512549755946, + 1.1332523216616626, + 0.9877443252543348, + 0.32377018554217324, + 0.4654621139947009, + 0.04191485408485829, 0, - 0.026076911008156563, - 0.5228785698561937, - 0.7283882644142804, - 0.3913777271803351, - 0.4751957086568434, - 0.542098335677424, - 0.6235313922276263, - 0.31525535409765587, - 0.8550151496773198, - 0.9400675386574181, - 0.8341161899204572, - 0.30058955740174464, - 0.4132185397554708, - 0.03571215228122696, 0, 0, 0, @@ -21576,21 +21501,21 @@ 0, 0, 0, + 0.031131998247986587, + 0.3280821612450364, + 0.40313215906552163, + 0.5035454993115529, + 0.2895665424526954, + 1.1156576464313197, + 0.30297225226929136, + 0.3019872159280408, + 0.775772569767368, + 0.7991192544382649, + 0.927514387855515, + 1.0268810877273429, + 0.30067397326062967, + 0.0976015327397282, 0, - 0.0268844209504164, - 0.30720866122815754, - 0.38563306420101634, - 0.47023945869641764, - 0.27064186074651597, - 0.9939794349843385, - 0.28235425096012146, - 0.279538686428087, - 0.6974724547462466, - 0.715779388760994, - 0.8253939653455078, - 0.921676451323493, - 0.2815903508912095, - 0.09028629832157802, 0, 0, 0, @@ -21600,21 +21525,21 @@ 0, 0, 0, + 0.01117608287141955, + 0.21737518419215618, + 0.6451470059145902, + 0.9670227732666117, + 1.1107219045553605, + 0.7901829938735818, + 0.7271901531987475, + 0.9075482123566623, + 0.3932910429206407, + 0.8209358643276207, + 0.7838948498657731, + 0.7755040644927643, + 0.6240484720748454, + 0.06773226293966862, 0, - 0.009526535716569813, - 0.20923534568690855, - 0.602723487700182, - 0.8695721313708833, - 0.9794670396925129, - 0.7220432764083743, - 0.6735468612234506, - 0.8022103408139704, - 0.372793273141673, - 0.7334890714554086, - 0.6946847237650494, - 0.7105730998623542, - 0.5765130071183079, - 0.06011814655210695, 0, 0, 0, @@ -21624,21 +21549,21 @@ 0, 0, 0, + 0.007377976018796375, + 0.1451054013989112, + 0.8354552570793634, + 1.0925688119096744, + 0.6964145861173427, + 0.9737461830714028, + 0.6977132236820965, + 1.0710211023273633, + 1.1060894036507927, + 1.222436865870573, + 1.169776228722379, + 1.0831510088936227, + 0.4848907742752261, + 0.056590779922382727, 0, - 0.006142325819162574, - 0.1393548079214426, - 0.7592584576493825, - 0.9156233036181937, - 0.6438621264685067, - 0.8623743278580538, - 0.6365298049756588, - 0.9244184127956518, - 0.9545468578949045, - 1.045812996937619, - 1.0081940600032842, - 0.9471419744207884, - 0.4443178963085429, - 0.049785080556163076, 0, 0, 0, @@ -21648,21 +21573,21 @@ 0, 0, 0, + 0.014746871801663137, + 0.11064720554509182, + 0.5458614371130108, + 0.8575155358581463, + 1.0543065405880074, + 1.0020526654968889, + 0.5334355769078863, + 0.5527152709687025, + 0.5968980165663761, + 0.7553192704282687, + 0.21171058404240767, + 0.08552140539321663, + 0.11885588383841457, + 0.015717313337337935, 0, - 0.012387426245461014, - 0.10384870290442776, - 0.4958879594327055, - 0.7177896742467205, - 0.8901122655138115, - 0.8516652331766896, - 0.46984337344835836, - 0.48083055280578735, - 0.5241525796404922, - 0.6707453321442906, - 0.19359748553471154, - 0.07766267624581559, - 0.10914363197206388, - 0.013175962316001138, 0, 0, 0, @@ -21672,21 +21597,21 @@ 0, 0, 0, + 0.04831178578086847, + 0.6249383366951089, + 1.0184712769904012, + 1.1149945061675917, + 1.123178267268251, + 1.1246814285979425, + 1.1192760212743542, + 1.137187542062749, + 1.1467242121958576, + 1.1620133062948554, + 1.0012770296267441, + 0.9891502984810945, + 0.5586225241643807, + 0.06432124170638916, 0, - 0.04208435662842948, - 0.5732489827744346, - 0.8637354538676209, - 0.9102709068451419, - 0.9476978088426194, - 0.9330645424542492, - 0.9252037198501357, - 0.9298868881682997, - 0.9515675991330519, - 0.9501143523433293, - 0.8533274722421018, - 0.8244959907415785, - 0.4809581227201791, - 0.05410297802257143, 0, 0, 0, @@ -21696,21 +21621,21 @@ 0, 0, 0, + 0.0376363187748085, + 0.6060894459494713, + 0.8957297451312883, + 1.1223124392157466, + 1.182965589811334, + 1.1861583735536758, + 1.2077128564623782, + 1.1860648071126874, + 1.2003914222525098, + 1.0464007570908611, + 1.0945784926601374, + 1.102479379796376, + 0.639121648039563, + 0.09128144008171635, 0, - 0.032140034363785604, - 0.5574290120229667, - 0.8015267640822243, - 0.9233072406886341, - 1.0132921290823533, - 1.0317063326175224, - 1.0239115656884865, - 1.0123187881883082, - 1.0247581594200093, - 0.9136431202792932, - 0.9558334869278295, - 0.9615974277647148, - 0.5826687264918113, - 0.07997611432686194, 0, 0, 0, @@ -21720,21 +21645,21 @@ 0, 0, 0, + 0.061366401059774964, + 0.6743449238107188, + 1.0519854054492255, + 1.1376221598163732, + 1.1473629775898, + 1.1397559051465647, + 1.1278352532332028, + 1.1372432019648255, + 1.1508409338829861, + 1.1640328131786704, + 1.0945431586603545, + 1.0681801438209173, + 0.7222733393130478, + 0.10181005409192503, 0, - 0.05530731507844289, - 0.6203201584644609, - 0.8966838269128946, - 0.975948030269542, - 0.9800152927645257, - 0.9680765683313375, - 0.9473947790307147, - 0.9517492049658257, - 0.9629769886856469, - 0.9546100368680314, - 0.9108178350865965, - 0.8923178950800741, - 0.6154583846400464, - 0.08573790424097966, 0, 0, 0, @@ -21744,21 +21669,21 @@ 0, 0, 0, + 0.02240086209104553, + 0.08120122974446652, + 0.14482812828787026, + 0.2074146356737873, + 0.2650015370933173, + 0.3479616528678422, + 0.3028365248301947, + 0.38972408081182514, + 0.6626643689821248, + 0.5424846121316349, + 0.44926542841538847, + 0.46735295263642584, + 0.508478139564574, + 0.1267099977302687, 0, - 0.01883467123313035, - 0.0740867124738801, - 0.1339596581902577, - 0.18838333151807876, - 0.23668447261479894, - 0.3035144993400405, - 0.2654730631499906, - 0.3391698627266145, - 0.5567616847814868, - 0.4685976836055697, - 0.3900077244193271, - 0.40059350358626256, - 0.4275860831950673, - 0.10823998092642441, 0, 0, 0, @@ -21768,21 +21693,21 @@ 0, 0, 0, + 0.06445156890239316, + 0.5727600312650196, + 1.014754887997145, + 1.1050374980029372, + 1.105950153329887, + 1.0797066187136206, + 1.1180559419745921, + 0.768473962395557, + 0.6951637304228816, + 0.3506313508343871, + 0.8397755257865958, + 0.8052993425320414, + 0.44706654214921576, + 0.10926628976626114, 0, - 0.05609361657491805, - 0.5262862452862274, - 0.8514363378735819, - 0.9018780544914419, - 0.9287352989941333, - 0.8997940071084017, - 0.9151003445515156, - 0.6468379151115138, - 0.5885350247250606, - 0.3049321203926504, - 0.6890465797796124, - 0.6672086103085343, - 0.38867257950976664, - 0.09170820979713912, 0, 0, 0, @@ -21792,21 +21717,21 @@ 0, 0, 0, + 0.002910347389439481, + 0.011838422324916775, + 0.026747656247223618, + 0.15287308126175375, + 0.25614427489927566, + 0.17273257122419322, + 0.23877070006961976, + 0.43205693097560466, + 0.6265996168387821, + 0.6154454369145708, + 0.22616313624089893, + 0.175598715313111, + 0.12928008646642625, + 0.02719339678025113, 0, - 0.0023076484350852355, - 0.010216340488975972, - 0.023777242111922642, - 0.142491321096439, - 0.23918399947122054, - 0.16031362107393587, - 0.21962891888799546, - 0.3862029039303562, - 0.5475984698759507, - 0.54342409079114, - 0.21077844640825222, - 0.1628592068211081, - 0.11977047674632313, - 0.02378024182733521, 0, 0, 0, @@ -21816,21 +21741,21 @@ 0, 0, 0, + 0.07376129209186154, + 0.6812547671179179, + 1.023627867365668, + 1.11477015193717, + 1.1385423994190058, + 1.1324223760256515, + 1.1214119185825597, + 1.1312450570962125, + 1.141151964266458, + 0.9936999557856152, + 0.4441751267117665, + 0.5971748555887348, + 0.5378824649524869, + 0.10791063878178966, 0, - 0.06625435568338785, - 0.6203782534056561, - 0.8548958790743748, - 0.925157932044601, - 0.9239436104227581, - 0.9336497649183354, - 0.9251840737631468, - 0.9472709896426327, - 0.9494502914309996, - 0.8406932882204722, - 0.4024358050182027, - 0.533726892842058, - 0.477275739638122, - 0.09381291290103558, 0, 0, 0, @@ -21840,21 +21765,21 @@ 0, 0, 0, + 0.017678498897780174, + 0.5222514546797387, + 1.017144717910725, + 1.1204902851614973, + 1.1042927814571855, + 1.0860602806619826, + 1.1451538573188282, + 1.1523061959529244, + 1.1624346807141788, + 1.1738116592668089, + 1.172176067960216, + 1.1007255852270321, + 0.7799125147147791, + 0.1301136119731993, 0, - 0.015284598455310576, - 0.4815961139801316, - 0.8884051298242867, - 0.9517513169713221, - 0.9290891043724854, - 0.9234081631912302, - 1.0112514254936167, - 0.9946554801223699, - 1.0160367001254527, - 1.029997398496674, - 1.036754594314009, - 0.9815377745796323, - 0.7158903401899247, - 0.11518143200223327, 0, 0, 0, @@ -21864,21 +21789,21 @@ 0, 0, 0, + 0.1003392783464751, + 0.7573362168822586, + 1.0744737831189153, + 1.148815479225405, + 1.174719545146222, + 1.1728912185120666, + 1.1480249014926323, + 1.1916246258040117, + 0.9249261830918312, + 0.8459436136810111, + 1.193024105661061, + 0.7491152289616583, + 0.7205672495545622, + 0.1751318745879844, 0, - 0.09116904422588587, - 0.6977462472576853, - 0.8993590046780363, - 0.9852373092868459, - 1.0337270415856157, - 0.9991113224672336, - 0.9698675183002302, - 1.0147109669042125, - 0.8043239126141147, - 0.7421759659388103, - 1.0026459905850664, - 0.6745502080909348, - 0.6441249217201584, - 0.15493422224561126, 0, 0, 0, @@ -21888,22 +21813,22 @@ 0, 0, 0, + 0.09692189655809084, + 0.721509009254561, + 0.9820484837064343, + 1.0706673063741075, + 1.1166115698687389, + 1.1352118689540749, + 1.0838529013646474, + 1.109450321392812, + 0.9601729886657279, + 0.8447772501326198, + 0.4754434536374003, + 0.23419525337843097, + 0.31300216684587717, + 0.10283247120973668, + 0.003330246741819943, 0, - 0.08926545807176488, - 0.6529646668340457, - 0.8560338382446588, - 0.9124458062011106, - 0.9173143586253327, - 0.9316051400971108, - 0.8999122433035522, - 0.9316698651325629, - 0.8121170987576524, - 0.7274826251736474, - 0.429957180608436, - 0.21311772504222137, - 0.28347638179483414, - 0.09038060746562061, - 0.0024477219484802144, 0, 0, 0, @@ -21912,22 +21837,22 @@ 0, 0, 0, + 0.08891564283264858, + 0.6774089603241686, + 1.0142569389001106, + 1.1109120479630272, + 1.1407017318465098, + 1.136605636919355, + 1.137363053712872, + 1.1386817393505826, + 1.1507872047804377, + 1.1580735141127876, + 1.1585617976740328, + 1.0972005020481659, + 0.8006906857748858, + 0.15222026919033524, + 0.003321340222116378, 0, - 0.07981753672479021, - 0.6102415762297745, - 0.851574053190395, - 0.9415392660023784, - 0.9660789510194217, - 0.9802313235854038, - 0.9601572502240521, - 0.9653059537790994, - 0.9649818005673714, - 0.9541090771262022, - 0.9965539765133592, - 0.9833912140723722, - 0.7338454993202987, - 0.13500252310051336, - 0.0024650932372462684, 0, 0, 0, @@ -21936,22 +21861,22 @@ 0, 0, 0, + 0.008237901881308653, + 0.06107661918000401, + 0.17213814691765156, + 0.19470028162872458, + 0.6365097825036702, + 0.757308833506155, + 1.0743655244556267, + 1.1446408689711867, + 1.1518176446977775, + 1.1591491140552925, + 1.153960951959477, + 0.9045516247136149, + 0.2307891001519104, + 0.052421901166926396, + 0.001936860902819324, 0, - 0.007258095722143533, - 0.05841135574252664, - 0.1652973916212892, - 0.18732079022389436, - 0.5903010333434392, - 0.6780584998486635, - 0.9341075740332884, - 0.9854830979892785, - 0.9757646505134131, - 0.954306916850441, - 0.9830563606191522, - 0.7878180449407077, - 0.2127103021962726, - 0.04695886215020552, - 0.001414719097958366, 0, 0, 0, @@ -21960,21 +21885,21 @@ 0, 0, 0, + 0.12094355240442049, + 0.7275407196894795, + 0.8947449530933204, + 0.47310602201498664, + 0.5011592884759829, + 0.7656838108022664, + 0.9142208218545637, + 1.1125709281461815, + 1.0170319430116326, + 1.1560782472514086, + 0.9751281455468176, + 0.4215789513976326, + 0.1444752286157054, + 0.022854673045857588, 0, - 0.1111243820829046, - 0.6634497121829329, - 0.8224863042708919, - 0.4504147951218833, - 0.4687999711019611, - 0.688430152209594, - 0.8074319186589592, - 0.9676328886711306, - 0.8832663568560069, - 0.9972868272654215, - 0.8729047804653888, - 0.3996805478412072, - 0.13678148213900027, - 0.020361704041450872, 0, 0, 0, @@ -21984,22 +21909,22 @@ 0, 0, 0, + 0.12414307606788043, + 0.7585937054831009, + 1.0303950781633178, + 1.1236962583643093, + 1.1245335756618133, + 1.123671736525551, + 1.1237987665680975, + 1.1460930494592376, + 1.163282393001916, + 1.1516142098783513, + 1.139295983737203, + 0.7890929192427397, + 0.4176614806065463, + 0.04684124219441317, + 0.0024981320771524824, 0, - 0.1153979030348884, - 0.7230905495148147, - 0.9595061493064309, - 1.0197507088214537, - 1.000249781716264, - 0.9815365930136691, - 0.9714191056778093, - 0.981891427826009, - 0.9840296794274722, - 0.9785291452022603, - 0.959113465584742, - 0.7007298025476236, - 0.38376766707105464, - 0.041538437753046824, - 0.0018559648013458238, 0, 0, 0, @@ -22008,21 +21933,21 @@ 0, 0, 0, + 0.02011484344885782, + 0.05729519356049467, + 0.042232932314225397, + 0.04184058029766779, + 0.0832766256574078, + 0.12110046901528312, + 0.33756829860331267, + 0.3778793886929471, + 0.22696262433635106, + 0.7619774004123441, + 1.0292389458086433, + 0.34017801350456567, + 0.15892734769918226, + 0.0326236735903796, 0, - 0.018379989573791434, - 0.054947611292290865, - 0.040120885217733826, - 0.03947622792001533, - 0.07952768872181588, - 0.1156154670508046, - 0.32056962843902365, - 0.35816774863933204, - 0.2152393255347858, - 0.6842762727647201, - 0.9109872433818135, - 0.3229765270647772, - 0.14981048174170639, - 0.029203690567931217, 0, 0, 0, @@ -22032,22 +21957,22 @@ 0, 0, 0, + 0.003234883735211719, + 0.04588191787816052, + 0.10788894312881363, + 0.21852068694403978, + 0.9742816111490722, + 1.1562932918454625, + 0.9144015105435809, + 1.1570295014525813, + 0.7985394271863422, + 0.3851372789104327, + 0.3333887688807939, + 0.6071600727160391, + 0.2781528162566506, + 0.12480776433291375, + 0.004037681070640682, 0, - 0.002703072586528842, - 0.04284487594199363, - 0.10273965250058098, - 0.20914067623214663, - 0.8443073787477408, - 0.9719084349552628, - 0.7984112200696345, - 0.970504279327802, - 0.6923256334195087, - 0.3466108411407973, - 0.30354923482955337, - 0.5316617345828671, - 0.2530729799164886, - 0.1105857879023291, - 0.0029835088989824195, 0, 0, 0, @@ -22056,22 +21981,22 @@ 0, 0, 0, + 0.027567343086042174, + 0.07204455842442117, + 0.23390383014628902, + 0.36988320879236763, + 0.9312609363432253, + 1.178858525690341, + 1.1509122410112083, + 0.9983062320204925, + 0.780937287011616, + 0.3066886518437941, + 0.23732064569566588, + 0.39325774283047693, + 0.6890335528214404, + 0.14261869804017982, + 0.004531220499203118, 0, - 0.023812050318561158, - 0.06592025633560543, - 0.21811830421213937, - 0.33999045988404347, - 0.795786571233098, - 0.9429170024151118, - 0.9489248525832755, - 0.8333478601076109, - 0.66893369788324, - 0.27516216595918147, - 0.21202678051176643, - 0.3488845659825089, - 0.5987984298703224, - 0.12432899029200255, - 0.003295101311490975, 0, 0, 0, @@ -22080,22 +22005,22 @@ 0, 0, 0, + 0.04068358361174466, + 0.20501612314747833, + 0.8919968079608028, + 0.7174782339882244, + 0.4444985976508663, + 0.5940667687543315, + 0.8021250822875585, + 1.1792578674899983, + 0.6367709688731243, + 1.0136408884649004, + 1.0593832570551651, + 0.47962867819848937, + 0.3566396546525768, + 0.043074134609291624, + 0.0024860065404183752, 0, - 0.03649486979682347, - 0.19278056354601533, - 0.7591415744551409, - 0.6398845780799425, - 0.40534281272962164, - 0.5360838951340855, - 0.696650812001305, - 0.9711962295047393, - 0.5707914676617556, - 0.9010316601460416, - 0.9298259829694836, - 0.4439899135692061, - 0.32891625502391053, - 0.03816016377900411, - 0.0018345602457996082, 0, 0, 0, @@ -22104,21 +22029,21 @@ 0, 0, 0, + 0.029155292451332363, + 0.1759125158164357, + 0.20404168868135794, + 0.3933633213700289, + 0.26306369108957905, + 0.35627736170564567, + 0.4912546438634179, + 0.28019187865139783, + 0.21097469061989788, + 0.5633978730683505, + 0.3399958484434209, + 0.8102100798789292, + 0.23714290995070578, + 0.007842225497714038, 0, - 0.026057648199269, - 0.16581231261227425, - 0.19127988380819097, - 0.36279994970659885, - 0.24400841934809916, - 0.328330725169951, - 0.4396667051561228, - 0.2553360320969359, - 0.19305912063191116, - 0.49973309690079626, - 0.30610428346578766, - 0.7178416306874161, - 0.22151442455835813, - 0.006690032359054061, 0, 0, 0, @@ -22128,22 +22053,22 @@ 0, 0, 0, + 0.030085913709240065, + 0.055208885104344824, + 0.13244782122968005, + 0.9168944127824746, + 1.1239318737465063, + 1.1432557192102175, + 1.153099533419748, + 1.1563656414520058, + 1.1054775301016346, + 1.0455158381292164, + 0.5973416713919577, + 0.6155416673226958, + 0.16304573967582534, + 0.02859393078224048, + 0.0032029324832290357, 0, - 0.026798745208547397, - 0.05009086827450292, - 0.12292047638724274, - 0.7918776288685633, - 0.9394482623360401, - 0.9545655510815769, - 0.97254779353828, - 0.9582975745484267, - 0.9184725279289742, - 0.8679099447199132, - 0.542077615875327, - 0.5591869925424916, - 0.1488948718713233, - 0.024347713421364516, - 0.0023651407232602915, 0, 0, 0, @@ -22152,22 +22077,22 @@ 0, 0, 0, + 0.17527924720607366, + 0.8095836304098222, + 1.0320563874594277, + 1.0893965602477385, + 1.1364467020476803, + 1.1357239881837695, + 1.0630873703642667, + 1.0908712255002315, + 0.9881122656871617, + 0.9999820233536906, + 0.9844065163226461, + 0.7359984256157992, + 0.6828696371459402, + 0.08105732777437681, + 0.004112423053590008, 0, - 0.16215433496165294, - 0.729500636347752, - 0.9056359555405631, - 0.9330199055038081, - 0.9471132383833238, - 0.9289236295275868, - 0.8761864980975932, - 0.9049525950845453, - 0.8273458881617646, - 0.8382539245007669, - 0.8215787026445048, - 0.6358062702285515, - 0.5877976344223458, - 0.07033630521684116, - 0.0030180710448411315, 0, 0, 0, @@ -22176,22 +22101,22 @@ 0, 0, 0, + 0.05525513891632134, + 0.12772058160470232, + 0.6533270769779065, + 1.1286553860359503, + 1.1481102243074808, + 1.1454971693330813, + 1.1401861034930765, + 1.130132306497053, + 1.1474998480757883, + 1.1458129888316866, + 1.1196048264883325, + 1.0756580784169616, + 0.7769507764532275, + 0.24999884131809832, + 0.0118178336129811, 0, - 0.05016837949288406, - 0.119102237984565, - 0.5859906601376605, - 0.9297661473296164, - 0.9234639031110652, - 0.926481709902099, - 0.9091098389519734, - 0.9065210561074626, - 0.9174450719525121, - 0.9125206659666474, - 0.8966859841327697, - 0.8794778223598951, - 0.6551278369201943, - 0.21079467373853145, - 0.008828220710661246, 0, 0, 0, @@ -22200,22 +22125,22 @@ 0, 0, 0, + 0.17699612188358288, + 0.8259580035136239, + 1.038605904024826, + 1.1185962097634223, + 1.144554774408883, + 1.15038883002173, + 0.9668279413019522, + 0.8180694925617714, + 0.9248690725403682, + 0.7353410947742881, + 0.7117730668045211, + 0.817393974824994, + 0.7038109077605254, + 0.17656337938500108, + 0.003779935314782779, 0, - 0.1575730431924899, - 0.6872553768683048, - 0.8299155204564098, - 0.9132825038396545, - 0.9281273583287861, - 0.9198713475207649, - 0.7739357141619412, - 0.6786153795392204, - 0.7507719531922075, - 0.6135494375365832, - 0.5990864841925216, - 0.6835242948372847, - 0.5988484253013115, - 0.15064347929957775, - 0.002656982811796976, 0, 0, 0, @@ -22224,22 +22149,22 @@ 0, 0, 0, + 0.17537414747631289, + 0.8155448598647428, + 1.0572846024875493, + 1.142179602714431, + 1.198251812895371, + 1.053208287289075, + 1.1420262537980534, + 1.1870483433195358, + 1.1885696089273021, + 1.118556707234605, + 1.1788486201713089, + 1.1120558311176643, + 0.8250739841792613, + 0.24182764552399583, + 0.007058712011293364, 0, - 0.15575268627632316, - 0.7080402639634515, - 0.8450584444388228, - 0.950969077772029, - 0.9907586056293229, - 0.8769534891674455, - 0.9343475523486668, - 0.9604159930150563, - 0.9641725901796304, - 0.9137535193751427, - 0.9529415353279543, - 0.9144906273924721, - 0.7036068106096188, - 0.21034771454379994, - 0.00525342268984116, 0, 0, 0, @@ -22248,22 +22173,22 @@ 0, 0, 0, + 0.20608544391292338, + 0.8538696174669412, + 1.080131099779718, + 1.1528349638540067, + 1.1780783113220603, + 1.1720618079107112, + 1.1660390142750718, + 1.1659465534088773, + 0.940873962396713, + 0.30825312641031366, + 0.1546673790321653, + 0.06660624610411836, + 0.019262080537204868, + 0.044511789170600474, + 0.006235219366543436, 0, - 0.18977417686777787, - 0.7534758329861287, - 0.9178837864032457, - 0.9844877405159, - 0.9962180234388267, - 0.9852303533697027, - 0.966769912891523, - 0.9616489034515918, - 0.8013336352566627, - 0.27968137841176943, - 0.1393987716091079, - 0.05883772011245368, - 0.01615678213880733, - 0.03860320110216467, - 0.004685254106735974, 0, 0, 0, @@ -22272,22 +22197,22 @@ 0, 0, 0, + 0.17834741374916746, + 0.8295927220867243, + 1.0593932709372216, + 1.149591919121718, + 1.1783911130561997, + 1.1836578318882498, + 1.1729526480546315, + 1.1740748912445627, + 1.134184425150202, + 1.1644042712893998, + 0.5342266943625489, + 1.1873790681918763, + 0.5091398269245839, + 0.08142607799419696, + 0.0037400413313153583, 0, - 0.16214385487527777, - 0.7242505939766912, - 0.8869051012659431, - 0.9525112461679821, - 0.9763492916448964, - 0.9622851713657559, - 0.9760369907835645, - 0.9688861291166772, - 0.9453968004530382, - 0.9457365988533849, - 0.46290825965089794, - 0.959713247105108, - 0.44879331085651575, - 0.07007886276666243, - 0.002659352333854081, 0, 0, 0, @@ -22296,22 +22221,22 @@ 0, 0, 0, + 0.036038339161819956, + 0.5166272427943263, + 0.8481480865231523, + 1.1329742257517654, + 1.167248882622436, + 1.0198250689648294, + 0.8345294199948756, + 0.8496337897014457, + 0.6534974443189165, + 0.6629165412531013, + 0.399340362600178, + 0.15903129315635486, + 0.09016232019557398, + 0.04026440857649458, + 0.008775832360298375, 0, - 0.03183730827667381, - 0.466979496449348, - 0.7423108489054207, - 0.9463714453802112, - 0.9563090894121025, - 0.8492364060472541, - 0.7132650510669429, - 0.7149732906547527, - 0.5666761131359275, - 0.5670019813232374, - 0.35948044057264783, - 0.1422016059560829, - 0.07981227496058277, - 0.03452643400671837, - 0.006759508194442546, 0, 0, 0, @@ -22320,21 +22245,21 @@ 0, 0, 0, + 0.029650489113260486, + 0.16128828212746296, + 0.4727501872756571, + 0.16532542398211966, + 0.15764624046646156, + 0.2881909967444817, + 0.5690324879343295, + 0.18692843682726104, + 0.027457252530544235, + 0.011080540393737565, + 0.021209846022561738, + 0.00966234028657523, + 0.017823182733546182, + 0.013106678265583187, 0, - 0.026621138640626398, - 0.15291025288536073, - 0.43339427993635027, - 0.15376425690934672, - 0.14700286850051691, - 0.26698615199310166, - 0.5081635658093971, - 0.17197886784670552, - 0.02447448810504784, - 0.009543836241789843, - 0.018763098159931775, - 0.008259682730758864, - 0.0158127936658633, - 0.011770399336658494, 0, 0, 0, @@ -22344,22 +22269,22 @@ 0, 0, 0, + 0.09751743919228464, + 0.3710519015341969, + 0.9552792780596717, + 1.1422837980088767, + 1.1681098269287478, + 1.1320582746263346, + 0.9652776905304054, + 0.8225441322970608, + 0.8071643897271542, + 0.7033626907135136, + 0.7292425033598121, + 0.6676410154022977, + 0.2575401674271803, + 0.2570144855300287, + 0.007932251714661286, 0, - 0.09142964938503338, - 0.35567870079683145, - 0.8399299672246068, - 0.945889567638145, - 0.9582365470275005, - 0.9794820879521193, - 0.8306215266645255, - 0.7168487616265296, - 0.708057074532931, - 0.6321928283978773, - 0.6405762725570922, - 0.5928288610908412, - 0.23859660373668173, - 0.22697813694522487, - 0.006162969261798897, 0, 0, 0, @@ -22368,22 +22293,22 @@ 0, 0, 0, + 0.24143765386775753, + 0.8704421435232016, + 1.0746244025747822, + 1.1405474036858603, + 0.9860445040973812, + 1.1570502146319885, + 1.1516975593543823, + 1.1542235738934783, + 0.971864000093676, + 1.187802211048029, + 1.1491172767783409, + 1.0879746505142955, + 0.8455046532507423, + 0.13944392974094372, + 0.008863926223511138, 0, - 0.22170309501142166, - 0.7440013153993285, - 0.9077907785696326, - 0.9624205484302719, - 0.8271001964363259, - 0.9432292491188448, - 0.9272825815276557, - 0.9333375300244942, - 0.8156154414207858, - 0.975999764826749, - 0.945857002565831, - 0.8954877246881902, - 0.7017288995866838, - 0.11975784159110757, - 0.0067168444697891395, 0, 0, 0, @@ -22391,23 +22316,23 @@ 0, 0, 0, + 0.0015885314225246095, + 0.24109784328280592, + 0.8460246413662449, + 1.0479813608886381, + 1.1207949291301604, + 1.1383336852931363, + 1.1529874581792494, + 1.05731669080068, + 0.8997899349946248, + 0.6732990610903853, + 0.7743304015501142, + 0.2868448227015454, + 0.7190117643881895, + 0.042101066277472975, + 0.1697830843744328, + 0.012281783923486986, 0, - 0.001198311335935859, - 0.21419231201263106, - 0.7129319799141749, - 0.8623352901416398, - 0.906523898857088, - 0.937914749349671, - 0.9412715596547039, - 0.8580680493186414, - 0.744611743891075, - 0.5669419736421466, - 0.65969026798928, - 0.25497377418023814, - 0.6018202960441597, - 0.03657816825899949, - 0.15407387544210616, - 0.009695571838454164, 0, 0, 0, @@ -22415,23 +22340,23 @@ 0, 0, 0, + 0.0012440617407383488, + 0.03953654049515919, + 0.7901083504247762, + 1.023553663025204, + 1.1050430484721976, + 0.9025745131610434, + 1.0710119296164853, + 0.8917495789711846, + 1.0141654174526356, + 0.7458563461015155, + 0.7423918767170699, + 1.0176310300438185, + 0.8815344920185478, + 0.28902831384425204, + 0.06058504586856321, + 0.01175871120212181, 0, - 0.0009409588526940893, - 0.03467651406704144, - 0.6828385177114981, - 0.8664068448427591, - 0.932221117143937, - 0.780002624330529, - 0.9029948112646746, - 0.7697577461723838, - 0.864829575317848, - 0.6465117179915834, - 0.6418801601567264, - 0.8381561416857218, - 0.7422041524819457, - 0.25677003654943586, - 0.05220032764016956, - 0.009159048782955086, 0, 0, 0, @@ -22439,23 +22364,23 @@ 0, 0, 0, + 0.0017452745457168554, + 0.22845642173756053, + 0.8340604963124372, + 1.0257327508894896, + 1.0722135726748314, + 1.1272211388744982, + 1.1462062856197504, + 1.151613875710224, + 1.1174989881080415, + 1.1551477740257137, + 1.0590040806484442, + 0.371520759164913, + 0.06289853772764072, + 0.08508009833979777, + 0.23327742714662103, + 0.007417268186852296, 0, - 0.0013468873180929796, - 0.2046897699892349, - 0.7074865840934862, - 0.8562607188875603, - 0.867635388435367, - 0.90184486548963, - 0.9087339167727878, - 0.9148328261936493, - 0.8746529552955543, - 0.9008998986498313, - 0.8371478122195596, - 0.32276042184841885, - 0.0535431981562816, - 0.07548782468612701, - 0.203305062453509, - 0.0054825509944714124, 0, 0, 0, @@ -22464,22 +22389,22 @@ 0, 0, 0, + 0.21896374048085585, + 0.8126274553254627, + 1.0195776053230723, + 1.093617624428583, + 1.1701357192265482, + 1.155419912491892, + 0.8875651484592529, + 1.0640857230927674, + 0.7012224099170862, + 0.2088579705933447, + 0.05988281602903554, + 0.1425576581898537, + 0.10942891896709385, + 0.040895103006427166, + 0.0031640557042028213, 0, - 0.1967699165416613, - 0.7007971862382878, - 0.8157485532494239, - 0.8618506558916352, - 0.9434882955294842, - 0.9322913023060383, - 0.7420486899653321, - 0.8771760029395014, - 0.5928275931927659, - 0.1820782393383448, - 0.05081214384950811, - 0.12573467716900205, - 0.09650677454576274, - 0.03476357325966571, - 0.002311422085871604, 0, 0, 0, @@ -22487,23 +22412,23 @@ 0, 0, 0, + 0.0011154557149449156, + 0.1782347328254608, + 0.6891444827614376, + 0.8770838187571486, + 1.0428101012326072, + 1.1013269086695587, + 1.1386592342105437, + 1.0570433634004304, + 0.2349550802887402, + 0.24294129747944765, + 0.24988645914664784, + 0.21011292425889114, + 0.5593237142877343, + 0.5289519063879258, + 0.21072078875456748, + 0.01607620445669066, 0, - 0.0008291680175489513, - 0.16079153930998752, - 0.5903543539957684, - 0.7400739564884153, - 0.8456822995942748, - 0.8971260999056402, - 0.9084851313543632, - 0.8486231834684901, - 0.20152080283216187, - 0.20871867086050097, - 0.21900952099906879, - 0.18685050481566884, - 0.4938416243060693, - 0.4632219047119058, - 0.18389607146808573, - 0.012414184701871044, 0, 0, 0, @@ -22511,23 +22436,23 @@ 0, 0, 0, + 0.0011581825754818117, + 0.17758467846529527, + 0.8381980419425944, + 1.0310795503486945, + 1.0685063709095846, + 1.1218305727465039, + 1.1220425649083767, + 1.1568142055018382, + 0.880249739275873, + 0.2228394681383964, + 0.3185114172309937, + 0.5148972528141208, + 0.7044458344187965, + 0.4396458625348341, + 0.1106188023167801, + 0.009898191042969823, 0, - 0.0008391965414850604, - 0.15695565897302208, - 0.7191689863092607, - 0.8214727577336294, - 0.8723707547527231, - 0.8964399109627255, - 0.8892201357399103, - 0.9080569077347839, - 0.7140027599154982, - 0.1929195309068221, - 0.2789447994164978, - 0.44979347659334723, - 0.6054534302462237, - 0.3856728500818344, - 0.09527651649809413, - 0.00738075146812767, 0, 0, 0, @@ -22535,23 +22460,23 @@ 0, 0, 0, + 0.0020602905111855997, + 0.08927893477216917, + 0.6016063841415094, + 0.7969708120622414, + 1.1297136997764055, + 0.9621796008069262, + 0.8645077434489056, + 0.8756481063608054, + 0.8387552902314811, + 1.1691757612978013, + 1.1402427517045022, + 0.5978145774035106, + 0.7139367195661466, + 0.5800879983416031, + 0.2846259050186656, + 0.007970838331164657, 0, - 0.0015124265813713314, - 0.07881175124362248, - 0.5331738791842362, - 0.6635582978062529, - 0.8794046468978172, - 0.7940478249443047, - 0.7212502429439751, - 0.7329064458036311, - 0.703663919214729, - 0.9322723894301415, - 0.8991194585433827, - 0.5134081425634489, - 0.6071066364711808, - 0.49456899750751676, - 0.23994105807888472, - 0.005825144377725459, 0, 0, 0, @@ -22559,23 +22484,23 @@ 0, 0, 0, + 0.0016255118800150045, + 0.21734584150768096, + 0.5541517214127473, + 1.0363706367154246, + 1.1153998294586573, + 1.151263275990616, + 1.0493296716873073, + 1.145752754001903, + 0.8332948463254339, + 0.9757515619379621, + 0.7612991674348588, + 0.8288907129101817, + 0.1084119931624114, + 0.034675453572810815, + 0.19442572192525162, + 0.019509007043554787, 0, - 0.0012024426474803878, - 0.19452584743261842, - 0.48912970311272524, - 0.8119224069188474, - 0.8576382805269762, - 0.9043683208936315, - 0.8409173558858386, - 0.8886355340239314, - 0.6776620695490148, - 0.7822272120537282, - 0.6175692532339264, - 0.671878561710286, - 0.09225138418131346, - 0.02876449508816693, - 0.1684311415656482, - 0.01519339533968932, 0, 0, 0, @@ -22583,23 +22508,23 @@ 0, 0, 0, + 0.002175924891017065, + 0.2260664060930937, + 0.7949706092825095, + 1.0174240039974924, + 1.1013287772384734, + 0.9656318114115353, + 0.7366167002259125, + 0.7319400106546529, + 0.6645940107640164, + 0.2916541557278743, + 0.6424583247276012, + 0.19628883631459032, + 0.2913699138196659, + 0.3826082965439507, + 0.4191948904035527, + 0.02412468611980353, 0, - 0.0016362217884323131, - 0.19890325804906753, - 0.6694031937390809, - 0.8179014343147419, - 0.8575192147490289, - 0.7988873067792993, - 0.6206280926908031, - 0.6084069315412992, - 0.5561401790467881, - 0.2580253599537889, - 0.5755731107023101, - 0.17575370029051668, - 0.25913378426588646, - 0.3466667178605476, - 0.3618271911147214, - 0.018907021584844995, 0, 0, 0, @@ -22607,23 +22532,23 @@ 0, 0, 0, + 0.0014783280668083053, + 0.17312327192536547, + 0.819270399782292, + 0.9690989927262967, + 1.1221023401807475, + 1.1513606465018589, + 1.1351947354058904, + 1.0863918021284147, + 0.6091641109967673, + 0.6821476249095774, + 0.39792798882154934, + 0.43464217189872206, + 0.24161156415623344, + 0.16865983517273445, + 0.050354124145271156, + 0.0029054083470490643, 0, - 0.0010878052483767398, - 0.15281540135421054, - 0.6731670235917241, - 0.7935610887106225, - 0.8849528325448439, - 0.8847288931253495, - 0.8904832372262403, - 0.856925980628342, - 0.5051326376220863, - 0.5628376996051885, - 0.3403716452764618, - 0.3724225131374072, - 0.2088672211751729, - 0.14679557449812616, - 0.04164109683959375, - 0.0019790368191823756, 0, 0, 0, @@ -22632,22 +22557,22 @@ 0, 0, 0, + 0.023498875265419095, + 0.04406451114573478, + 0.06905700602634607, + 0.05916750882617081, + 0.13626841662896574, + 0.20822440921864754, + 0.3633034255516663, + 0.7715373367533809, + 1.13688567452665, + 0.2216395651715438, + 0.03588959148187688, + 0.09772979093716817, + 0.24941749616967507, + 0.34874862113698935, + 0.015659029692563265, 0, - 0.019751465138035496, - 0.03747964694107112, - 0.05912964568042253, - 0.05086057002306518, - 0.12139452632339225, - 0.18612794043100436, - 0.3230303194946666, - 0.6616307182631201, - 0.9401425579424413, - 0.19567604508128797, - 0.032833420743356836, - 0.08674860162686181, - 0.22128935897258153, - 0.3030424451810362, - 0.012124212579239327, 0, 0, 0, @@ -22655,23 +22580,23 @@ 0, 0, 0, + 0.002746251342274874, + 0.27371012111770826, + 0.8736252193653168, + 1.0777012405155184, + 1.1494061232751855, + 1.1668769846180262, + 1.1745073002824882, + 1.1751405993075497, + 0.939335018688984, + 1.1096715611623482, + 1.013497312159226, + 1.2047572219062654, + 1.1694693030798258, + 0.9627729395561907, + 0.28241749515080955, + 0.012233813843034395, 0, - 0.0021122932921408565, - 0.24680610639141579, - 0.7446875094928623, - 0.8715720934960547, - 0.9198110195033357, - 0.9111137053774852, - 0.9447140444595583, - 0.9373552497013906, - 0.7747894037616216, - 0.8817311484774901, - 0.8306445959472835, - 0.9629559027542918, - 0.9593277826261908, - 0.8138967840456496, - 0.23981574942082487, - 0.009110816029128003, 0, 0, 0, @@ -22679,23 +22604,23 @@ 0, 0, 0, + 0.002713598532255758, + 0.2652054860905305, + 0.8432784440750802, + 1.0497819413003977, + 1.1276574178416323, + 1.150808805734626, + 1.1577941423961833, + 1.1535200843340818, + 1.105354959347237, + 1.1639091261939631, + 0.8798071027552318, + 0.43929064606123863, + 0.6586372405019705, + 0.5769629400932997, + 0.23029227349560255, + 0.011032943021871307, 0, - 0.002004895678229273, - 0.2420049076568172, - 0.7322970533505452, - 0.8797609912067967, - 0.9487485047535287, - 0.9667319550647976, - 0.9692353395893907, - 0.9638808331286424, - 0.9334600120982676, - 0.9554558704464031, - 0.7601535836941956, - 0.394454604119896, - 0.5817941214898295, - 0.5218212435625643, - 0.20520700452992693, - 0.00883920730861226, 0, 0, 0, @@ -22704,22 +22629,22 @@ 0, 0, 0, + 0.0068354501668078365, + 0.045813180368509364, + 0.09690421916796742, + 0.21295546999273368, + 0.33299789732186963, + 0.7198256286409974, + 0.7786931386267789, + 0.7731125661962439, + 1.1733286815252295, + 1.1926898513581148, + 1.167516573790461, + 1.1105209838143408, + 0.9543658336922641, + 0.39697417777624366, + 0.015904715939828704, 0, - 0.0070803613330596435, - 0.043136956418475855, - 0.09172210007938346, - 0.20171935342823902, - 0.314825237712562, - 0.653017479494282, - 0.6946681249526385, - 0.6981501807720385, - 1.037692189299903, - 1.0516217088966326, - 1.0243611226118192, - 0.9920329031262779, - 0.8688406917625495, - 0.360327739848914, - 0.012747859348842995, 0, 0, 0, @@ -22727,23 +22652,23 @@ 0, 0, 0, + 0.0030852475225285484, + 0.29581818759026696, + 0.8800222014336251, + 1.0812295522145425, + 1.1461824961043443, + 1.1750736055403117, + 1.1644564384546743, + 1.1783561528689037, + 1.1830677942286811, + 1.1911056098457293, + 0.8239354428103536, + 0.6934694209336426, + 0.7057499602525552, + 0.8294818573663182, + 0.2739503790183938, + 0.018699383583359507, 0, - 0.0023361347718545496, - 0.2686576028138889, - 0.7613061683282357, - 0.8896171654801643, - 0.943706148393224, - 0.930375469630175, - 0.9273265515383823, - 0.9897869370363566, - 0.9795861713737415, - 0.9699432026892956, - 0.7086742244266337, - 0.616676867231859, - 0.6238355136843988, - 0.7069455366085902, - 0.23706774619121637, - 0.014613029855826656, 0, 0, 0, @@ -22751,23 +22676,23 @@ 0, 0, 0, + 0.0031036770069829767, + 0.28699980511371653, + 0.8715905596465798, + 1.0737815164958677, + 1.1448112502754064, + 1.1638801211129806, + 1.1695565096176772, + 1.1727194122929345, + 1.212097174209666, + 0.9643949402800268, + 1.01863976484278, + 0.5030569426796588, + 0.47738262727226993, + 0.18046496672429507, + 0.10420219641585349, + 0.012783373087935784, 0, - 0.0022643148167635174, - 0.2606971589365533, - 0.7808335694404329, - 0.9111351879106688, - 0.9374160914477052, - 0.9610189448400992, - 0.9618818419935853, - 0.9536264370146378, - 0.9739509720861118, - 0.7978305107028232, - 0.8391041114894818, - 0.44228359748201845, - 0.4206135206672011, - 0.1595776009057548, - 0.08934777280033446, - 0.009678218251644964, 0, 0, 0, @@ -22775,23 +22700,23 @@ 0, 0, 0, + 0.0025619526568469173, + 0.2657595047105217, + 0.8567379939516967, + 1.0627474701101773, + 1.139435936130791, + 1.1578581568161588, + 1.1582285540507538, + 1.1598497499722196, + 1.162359475568855, + 1.1674948807048235, + 1.1080322601687396, + 0.2560184650698928, + 0.9279040914824466, + 0.6869506400552691, + 0.34351361620581344, + 0.010023710887963333, 0, - 0.0018499388680091244, - 0.2394377118323693, - 0.7233746716627284, - 0.8777918926121906, - 0.9142662172928683, - 0.9269985803452613, - 0.9278174938846576, - 0.9110018176472386, - 0.9055518230999521, - 0.9177057008238839, - 0.8771459324182992, - 0.22090987310412036, - 0.7372082644890188, - 0.5712220951316205, - 0.294874278664183, - 0.00748597324402587, 0, 0, 0, @@ -22799,23 +22724,23 @@ 0, 0, 0, + 0.0032434338080516343, + 0.18617477492535792, + 0.18232556033326608, + 0.9698101134047441, + 1.112670469394945, + 1.1269344216512207, + 0.8559358733820734, + 0.7327989198455979, + 0.4718698105466056, + 0.4969559451030835, + 0.08572823090100742, + 0.8131554799413656, + 0.32195409659360447, + 0.3081676664361558, + 0.05193725463913113, + 0.005337827825073592, 0, - 0.0023560818734806098, - 0.16715943135056444, - 0.16535112452212317, - 0.7944431845733766, - 0.9081653442640555, - 0.9063165831059984, - 0.7034496621259769, - 0.6087492242988205, - 0.4065604616625797, - 0.42989038274335123, - 0.07422405211770373, - 0.66639260887565, - 0.2837092034401229, - 0.27468346020657997, - 0.0437268664096799, - 0.004065098412830143, 0, 0, 0, @@ -22823,118 +22748,119 @@ 0, 0, 0, + 0.001159191881242894, + 0.1979227951661202, + 0.7855373400971705, + 1.0003172073520505, + 1.096625465710791, + 1.1481637477385243, + 1.1793215505023646, + 1.0386340336738544, + 1.191871696200377, + 1.235341123949918, + 1.2399019415751473, + 1.1781013634673287, + 0.7574439767686613, + 0.12202875317444038, + 0.34527336382313784, + 0.03257157196127814, 0, 0, - 0.17592130124318914, - 0.6863590816645442, - 0.852278444962412, - 0.923850991228171, - 0.945475749285234, - 0.9462174449284415, - 0.8391949875872589, - 0.9371459758845089, - 0.9691168912743275, - 0.9825714579184712, - 0.929924288593453, - 0.6294302504123952, - 0.10381813890613568, - 0.2913194530997186, - 0.02550453927520119, 0, 0, 0, 0, 0, 0, + 0.002971237769075287, + 0.2676502218879216, + 0.834848927400013, + 0.8577554436712049, + 1.0839447046900281, + 1.1542477788545498, + 1.159295367244737, + 1.1594044870934945, + 1.1586966911828738, + 1.1644697625512324, + 1.1756074145586408, + 0.7818872698823576, + 0.5493206134470122, + 0.18364847699155515, + 0.07107570316484765, + 0.012986200887811713, 0, 0, - 0.0021342129937211864, - 0.24180246665773927, - 0.7209013380703552, - 0.7151306743447227, - 0.8686867171382094, - 0.9325316563901128, - 0.9264179616561885, - 0.9211624482207845, - 0.9120911610997448, - 0.9100323880931978, - 0.9232534774421612, - 0.6559893703752504, - 0.46915744808841137, - 0.159640628180814, - 0.059372081346987085, - 0.009782334490314827, 0, 0, 0, 0, 0, 0, + 0.0027674739443132503, + 0.13465386748090916, + 0.601274881853189, + 0.7628863898359599, + 0.9589906608466244, + 1.149696492327792, + 1.1087179964097158, + 1.0483272809277266, + 0.8563153577649156, + 0.9678727902380819, + 0.8357416483009957, + 0.7681372779787288, + 0.7168921021889899, + 0.5509805256564545, + 0.24041527116530859, + 0.016895434785181098, 0, 0, - 0.0019411603266732429, - 0.12005464377942783, - 0.5291814126320628, - 0.6235490789450767, - 0.7802306066720189, - 0.9091004320319271, - 0.880463585808841, - 0.8315378816555727, - 0.6994392522874762, - 0.7839561057747795, - 0.6814891003711074, - 0.6337400469594453, - 0.597121697361044, - 0.4694143785039293, - 0.20306504457544194, - 0.012658198655531154, 0, 0, 0, 0, 0, 0, + 0.0018832123076115426, + 0.2302152850576687, + 0.8280544377913324, + 1.0580452182835378, + 1.1212484710479882, + 1.1477534980653694, + 1.1509858179636643, + 1.1498709787160297, + 1.1277736340199174, + 1.1387457554980775, + 1.0712951996774283, + 0.6880157240776256, + 0.14815706782493185, + 0.09620788087726903, + 0.060268541844299375, + 0.01809070031696965, 0, 0, - 0.0013346614868872367, - 0.20631139309255161, - 0.6954310155198806, - 0.8366246204115627, - 0.8994238528261086, - 0.9255477643541444, - 0.9092517804220147, - 0.9192199801056609, - 0.886502004699728, - 0.8933101795203734, - 0.8378367855687726, - 0.5763215307035295, - 0.12696218960881905, - 0.08235210442234595, - 0.05034314613939483, - 0.014135041173701391, 0, 0, 0, 0, 0, 0, + 0.001821766041239985, + 0.1314167016938969, + 0.4118184577311504, + 0.9050109077853423, + 1.08210274399539, + 1.1169473092322595, + 1.1244874742277515, + 1.1310953652536737, + 1.1718821567684252, + 0.4144344545881808, + 0.27385312841945514, + 0.2339250678315359, + 0.228111264572385, + 0.04586558606136562, + 0.017570870827317925, 0, 0, - 0.0013277842782317218, - 0.12181350988070579, - 0.3883160921552762, - 0.8115346772107194, - 0.9543524218118107, - 0.9694887292383213, - 0.9625611963043388, - 0.9555333160756109, - 0.9596851827829741, - 0.37272814375397617, - 0.2502283273435564, - 0.21528752593944084, - 0.20932990199441012, - 0.04141011951444086, - 0.016650902738076605, 0, 0, 0, @@ -22943,215 +22869,215 @@ 0, 0, 0, + 0.012550355318432987, + 0.046226696413807444, + 0.15067278693438518, + 0.6170578415784926, + 0.5677328394995609, + 0.37173241508152316, + 0.13915069506384245, + 0.4432550914443755, + 0.2866858157660477, + 0.10275800426237766, + 0.2415531962117145, + 0.4181299221518334, + 0.7621045274332163, + 0.35481928253720935, + 0.033481004965456654, 0, 0, - 0.012090549804415991, - 0.04208551788283326, - 0.13980247733578874, - 0.5446695771601157, - 0.5044386628624794, - 0.33826514813957576, - 0.1285466511038392, - 0.3999754757921684, - 0.2606614409750354, - 0.09210581663573456, - 0.22521039886507488, - 0.38237964362834737, - 0.6637194911984831, - 0.316818033011173, - 0.028009997184125786, 0, 0, 0, 0, 0, 0, + 0.002840008617995459, + 0.2805586227237055, + 0.8708437255275424, + 1.0843464389148174, + 1.043836744689679, + 1.1313950120366076, + 1.2228385842394605, + 1.1717984259238974, + 1.1840376421793315, + 1.167735918778007, + 1.1217494374188564, + 0.838511092326944, + 0.4954702131375064, + 0.1342415645226365, + 0.1445336655399013, + 0.014423456505610095, 0, 0, - 0.0022029020386921997, - 0.25529261698271033, - 0.7726310613462708, - 0.8654461028616115, - 0.8394625426248816, - 0.894053893403771, - 0.9824090645877928, - 0.9583228013635322, - 0.938548627550584, - 0.938919904147098, - 0.8959061992667204, - 0.6964160370687854, - 0.42410261164399227, - 0.11575346577798076, - 0.12557677862712466, - 0.010985704305436567, 0, 0, 0, 0, 0, 0, + 0.003076153580594919, + 0.06057487291316696, + 0.026889158283169946, + 0.06803771951750583, + 0.13098027383161068, + 0.22248617140190702, + 0.19599616589561303, + 0.15801342026677412, + 0.14676831272689106, + 0.5931859707607393, + 0.8083819769431138, + 0.4247802167474078, + 0.07772045587334704, + 0.32939103957754096, + 0.20051409314148827, + 0.019196610065548094, 0, 0, - 0.0023496218200369165, - 0.052477684301505824, - 0.023203119910387614, - 0.06013309153695516, - 0.11796805609614192, - 0.19981990541470032, - 0.17481144506972107, - 0.14020505198319444, - 0.12916358011219606, - 0.5113352179400421, - 0.6727065534244477, - 0.37209509311690503, - 0.06816341930870577, - 0.29999162667679147, - 0.17875782611244598, - 0.015325523338654556, 0, 0, 0, 0, 0, 0, + 0.0019394765567817464, + 0.23670138708490426, + 0.8139860324625673, + 1.0193967754885802, + 1.0977371327897996, + 1.1333252429798728, + 1.0555084129257104, + 1.1434281892008955, + 1.1824167950358562, + 1.137991094138657, + 1.1912242573792478, + 1.0958333209420241, + 1.012003574822075, + 0.6090482807433111, + 0.23012269585577153, + 0.015004327350762185, 0, 0, - 0.0014961438365708644, - 0.21515491765843642, - 0.7162948263248987, - 0.8558540200967449, - 0.8925967442009888, - 0.9229022825356572, - 0.8715646290587921, - 0.9192725301101843, - 0.9435248398360547, - 0.9221819351327867, - 0.9552337232273624, - 0.8903147913902622, - 0.8376070429137269, - 0.5336107786154458, - 0.20020928062953558, - 0.011546268883639786, 0, 0, 0, 0, 0, 0, + 0.0019223627240500685, + 0.22948390701405533, + 0.8010932745225606, + 1.0105433173360603, + 1.0977124683869128, + 1.13103150964628, + 1.1403276713636359, + 1.1410527280827154, + 1.1346984464928256, + 1.1381316371510908, + 1.1354934760367428, + 0.9617917447698172, + 0.3711982656435777, + 0.055662400848116064, + 0.16856270256495073, + 0.040981463270927825, 0, 0, - 0.0014717816939070801, - 0.20761373644564315, - 0.7041353069088275, - 0.8354221394409659, - 0.8870197333300186, - 0.9110767452329427, - 0.9162707687536812, - 0.9099116905199178, - 0.9061153480568884, - 0.9111228963987309, - 0.9012492259116786, - 0.786160457410004, - 0.3278914918099392, - 0.04712643792003521, - 0.14837040421153946, - 0.03364929380915556, 0, 0, 0, 0, 0, 0, + 0.002257819667045102, + 0.26014649154526387, + 0.838484101021123, + 1.0390946872364262, + 1.1160237313377972, + 1.1613714437724383, + 1.1510681251262347, + 1.1498453300881277, + 1.1576620073676143, + 1.1698426169029412, + 1.1582326391836952, + 0.2956350497143154, + 0.3836824276791916, + 0.02735109368047672, + 0.01246567951439353, + 0.01735378178968862, 0, 0, - 0.0016951704504475746, - 0.22969520121967602, - 0.71331362467997, - 0.8317694423650899, - 0.8996407751022937, - 0.9184967695183488, - 0.9143939983583648, - 0.9036697209344289, - 0.9006690312067521, - 0.9147121373760685, - 0.9024263728820615, - 0.2525482873996032, - 0.3290259221097157, - 0.021767708338141293, - 0.010219677763175346, - 0.013758903597319322, 0, 0, 0, 0, 0, 0, + 0.0018483463528798972, + 0.20891645739438602, + 0.902166413457865, + 1.0655267095663352, + 0.9666045545969537, + 0.4860519978716423, + 0.9727280830187058, + 0.6917496004368159, + 0.398539306416927, + 0.22283959020436886, + 0.13532526402569697, + 0.6348219531194481, + 1.0709940402268485, + 0.6337682616055995, + 0.045694478838265475, + 0.007427112449010027, 0, 0, - 0.0013404152568397242, - 0.1850324909458854, - 0.7731361569605382, - 0.8871508036861446, - 0.7828208210866013, - 0.4188447255208866, - 0.7722095090899237, - 0.5673936168660987, - 0.3373147397440443, - 0.19090586872551255, - 0.11635533125273016, - 0.5555607276400969, - 0.8666038219181595, - 0.5311190175060242, - 0.037597432524404804, - 0.005694546157981477, 0, 0, 0, 0, 0, 0, + 0.0017676223309322202, + 0.21724247937766594, + 0.6705071990231524, + 0.9835715342366946, + 1.081297800652015, + 1.0806179331366765, + 1.0964954873285582, + 0.4462480498157608, + 0.09066028204107662, + 0.12733297571925903, + 0.12979565610171578, + 0.05452139190792681, + 0.05059388315274297, + 0.019896143213443178, + 0.004259882239064889, + 0.003618772061448737, 0, 0, - 0.0013343110701649573, - 0.19485648503083078, - 0.5761466048146877, - 0.8340004873123128, - 0.8890451633634491, - 0.8885566260063656, - 0.8893331699167828, - 0.39107359873477615, - 0.07878649490729454, - 0.11339957541566921, - 0.11469747070767797, - 0.047766716765090464, - 0.04526762384027803, - 0.017590064826654553, - 0.003356742058406764, - 0.0030310197981727916, 0, 0, 0, 0, 0, 0, + 0.0012806859496900687, + 0.24016208350698356, + 0.8256912430807134, + 0.9483075386761743, + 1.1137254469825462, + 1.1579654017942949, + 1.1417587307209554, + 1.1134154524086008, + 1.08077291229122, + 1.0001416902905862, + 0.5569201798594854, + 0.49117578520092314, + 0.41244818101648334, + 0.24505426793571686, + 0.2698855499004707, + 0.04913505309732812, 0, 0, - 0.0009393289452197022, - 0.2160997054101226, - 0.7474281306515328, - 0.8224419272375966, - 0.9182941162597074, - 0.9088829626439924, - 0.892092499179248, - 0.8969261179370602, - 0.8522095086095497, - 0.8017584067342369, - 0.475833926341351, - 0.42325765691050665, - 0.3577421673433109, - 0.21401478915510583, - 0.22840551722371324, - 0.0391725923900076, 0, 0, 0, @@ -23159,646 +23085,647 @@ 0, 0, 0, + 0.152882959924325, + 0.816253153208247, + 0.8552570751033256, + 0.8950127208072205, + 0.6619243995091431, + 0.9114865402808593, + 0.7791334449457435, + 0.8079092000642715, + 0.7023816569283023, + 0.3016540656477268, + 0.18450140626915323, + 0.464441385348173, + 0.08517046583583526, + 0.05692530134558373, + 0.017734858042605186, 0, 0, - 0.13329477971804665, - 0.6827315311150731, - 0.701211023077221, - 0.716785652480178, - 0.5541541412956996, - 0.7252640565961629, - 0.6305590500686388, - 0.6511098731357242, - 0.5834404312310275, - 0.2616177652269004, - 0.15877938181473206, - 0.3998950248460841, - 0.0725399679432149, - 0.04805256955898839, - 0.013862491317698908, 0, 0, 0, 0, 0, 0, + 0.0010969243229671378, + 0.03578861211907846, + 0.13948996131241853, + 0.9012292031432668, + 0.9477513607322674, + 0.5459515917699174, + 0.7405356759393031, + 0.8419049950013453, + 0.7675397090428552, + 0.9179302954189539, + 0.7319264877647924, + 0.6866748202794286, + 0.7910665534174752, + 0.2783117404536514, + 0.2114603915571729, + 0.01692981817306148, 0, 0, 0, - 0.030747714335081274, - 0.1252611530716251, - 0.7203857383800003, - 0.7397391496146111, - 0.4512858003917717, - 0.5958744313684279, - 0.6714892402602687, - 0.6284953437660947, - 0.7246008147327657, - 0.6115583238277891, - 0.5780110794588045, - 0.6550213118557812, - 0.2410737282018494, - 0.18165446708755237, - 0.012837020332745867, 0, 0, 0, 0, 0, + 0.0014950376313816003, + 0.18119977230838574, + 0.7318015148073751, + 0.9860257509568474, + 0.983633094534882, + 0.48060123818857253, + 1.1917076044286068, + 1.170425181447765, + 1.1796483366738963, + 1.2040731743037951, + 1.0250138426394446, + 0.36567964196043207, + 0.4463556221498186, + 0.24054168445210494, + 0.05356657460705827, + 0.024440915814185556, 0, 0, 0, - 0.0011194198759775322, - 0.1614589994770173, - 0.6452477374354758, - 0.8445235655073717, - 0.8245742323156947, - 0.43572486499933843, - 0.994859958957124, - 0.9614240768002151, - 0.9637170620306029, - 0.9539234140905976, - 0.8419764583944508, - 0.32671454937518596, - 0.39618220352721245, - 0.21559176164335234, - 0.045449371876667415, - 0.01959554944347736, 0, 0, 0, 0, 0, + 0.001419588360230791, + 0.2019903877676939, + 0.8142221546543111, + 1.0425673736465237, + 1.1273445652202532, + 1.1601010715417408, + 1.163594052851318, + 1.1607091802621767, + 1.1550721043985277, + 1.154788578877997, + 1.1537225182900321, + 1.1347287775245336, + 1.0810591112863777, + 0.9031510771023906, + 0.3035931886937001, + 0.01219275003665895, 0, 0, 0, - 0.0010794314146406903, - 0.18363548624230708, - 0.7041531265299834, - 0.8645943934027087, - 0.9440137710689784, - 0.9620052730250429, - 0.9564210889500859, - 0.9325990841318901, - 0.944738519934729, - 0.9481101113578831, - 0.948188074903424, - 0.9240767814753796, - 0.8821161067519993, - 0.7563765771904816, - 0.25983232055626865, - 0.009164039107018244, 0, 0, 0, 0, 0, + 0.0012225987976325794, + 0.19336499318947978, + 0.7581832217006231, + 0.9936308428047226, + 1.0871685981390504, + 1.1300909330275721, + 1.1319917936730617, + 1.141801401436766, + 0.6398700373410408, + 0.42905379117715037, + 0.8047556663910693, + 0.9305144493299558, + 0.5932570735706205, + 0.8859019643991841, + 0.11245608458159036, + 0.010526794286818396, 0, 0, 0, - 0.0008973839891013041, - 0.17185678048627764, - 0.6511820610865562, - 0.8145827114296273, - 0.8860966988090995, - 0.8951866319656778, - 0.9080103916963748, - 0.9117910895449415, - 0.5349762097318391, - 0.3672498360059184, - 0.6636861813760118, - 0.752551468975221, - 0.49686429823694267, - 0.7150192998919672, - 0.09498788321572788, - 0.007805609630984939, 0, 0, 0, 0, 0, 0, + 0.15602708326798836, + 0.7420299057105466, + 0.9896059977722494, + 1.0350035764586525, + 1.1178810092881966, + 0.7307572960777848, + 0.8290792100183665, + 0.36276344614802947, + 0.6021188923050267, + 0.21832261065170536, + 0.30241320837490054, + 0.4157424090459539, + 0.9032361733536377, + 0.3680419431591935, + 0.03137565515660756, 0, 0, 0, - 0.13845649174547342, - 0.6253007871844709, - 0.777168577419978, - 0.8576799735638773, - 0.8925398242692176, - 0.6147855838766985, - 0.7002502075296886, - 0.3141593884369483, - 0.5011829689679625, - 0.18765691441730045, - 0.26555179844357824, - 0.3669879766391646, - 0.7513063728180587, - 0.3161505488401356, - 0.024923742396067265, 0, 0, 0, 0, 0, + 0.0013532859899346584, + 0.13357161420474034, + 0.7240296615879888, + 1.0014452497840423, + 1.0281349416373327, + 0.5278894947040761, + 0.7947384211526258, + 0.830892206576417, + 0.3745984431533525, + 0.34875354488766425, + 0.4813775457369984, + 0.9777435395241106, + 0.12340921102932256, + 0.1343397910253924, + 0.15096416891790856, + 0.021557987746636004, 0, 0, 0, - 0.000987523497255315, - 0.11723482507592711, - 0.646097388276021, - 0.8335581874330472, - 0.828292346499537, - 0.4508672767556907, - 0.6468733110636394, - 0.6744149091292991, - 0.31922012670326594, - 0.30569981278074887, - 0.4256578540525327, - 0.827593681885489, - 0.10809632319370698, - 0.12376704247114481, - 0.13479985346373471, - 0.017058926582016052, 0, 0, 0, 0, 0, 0, + 0.19961835927341512, + 0.48741028900863076, + 0.8452475550285679, + 1.0882091052021166, + 1.1189520856467166, + 1.1427473523520766, + 1.1966868694885666, + 1.2343263849445283, + 0.9551328351550495, + 0.2655258032540241, + 0.09554620638351054, + 0.7037832243331426, + 0.5546952686603542, + 0.3870383093705415, + 0.02121569544676801, 0, 0, 0, - 0.17700535323755004, - 0.4352120718551134, - 0.7186838843142083, - 0.8796165497062467, - 0.9102275119875062, - 0.9158526302983891, - 0.92315014149176, - 0.9389595741272293, - 0.770475414505366, - 0.22866580936441855, - 0.08197018946977934, - 0.6064275136846958, - 0.4867088785933151, - 0.325418204289206, - 0.016147497902774526, 0, 0, 0, 0, 0, 0, + 0.19770813043925833, + 0.8037718935688195, + 1.0281105545689173, + 1.1087896608236376, + 1.1506115827424142, + 1.1834835569517486, + 1.1603770296378322, + 0.9594291141946931, + 0.31000478521400576, + 0.6381205325829767, + 0.89791238045263, + 0.16180785710674553, + 0.17576175945709893, + 0.16197523018596824, + 0.021838165386247988, 0, 0, 0, - 0.17439547759925925, - 0.6966783469518841, - 0.8254847368116784, - 0.8923054824688427, - 0.9139852993316556, - 0.925239284511949, - 0.8793219202895154, - 0.7582609975495527, - 0.2663779372680708, - 0.5239160537778382, - 0.7169413711066452, - 0.13791923652089652, - 0.15180067871747832, - 0.1379995798382973, - 0.016515287100595064, 0, 0, 0, 0, 0, + 0.0014734587248807851, + 0.16298729757335112, + 0.31372666867608656, + 1.0262019994552178, + 1.1091719114586733, + 0.8845496282367245, + 1.0277333067271155, + 0.3194877187472689, + 0.4751701329216678, + 0.6141333605405453, + 0.4707152057917603, + 1.0339423817141724, + 0.1546191250428532, + 0.9857877563045263, + 0.3489533865295993, + 0.014674064153445753, 0, 0, 0, - 0.0010496649632014059, - 0.14108914746588008, - 0.2790184994306495, - 0.8140834907717749, - 0.8810618439044642, - 0.7090248750840769, - 0.7840634848074122, - 0.27300095422012655, - 0.40527654153987475, - 0.5031093683835073, - 0.40205129934197936, - 0.8187993797985477, - 0.13181681852413227, - 0.7739346029790924, - 0.2918425504840753, - 0.010844946511633336, 0, 0, 0, 0, 0, 0, + 0.20172627474568064, + 0.8372600906154015, + 1.0619991786526288, + 1.144154943513596, + 1.165007194643538, + 1.1676067479591117, + 1.1775375313161838, + 1.1873284462854337, + 0.7852115610184921, + 0.5891678175767272, + 0.7397385463830553, + 0.34236937428992636, + 0.26951098316821687, + 0.09387686376618483, + 0.021120879232757423, 0, 0, 0, - 0.17780395811055605, - 0.7196924138204794, - 0.860273484873171, - 0.8941975668507192, - 0.933808203760442, - 0.9319334024746411, - 0.9383840228450504, - 0.9365512091052639, - 0.6473784819855236, - 0.49742829048074255, - 0.6106578337587822, - 0.295450856134214, - 0.23323835075319718, - 0.07843032409147847, - 0.0160542917689279, 0, 0, 0, 0, 0, 0, + 0.17485859087219646, + 0.8057341996675396, + 1.0421481388205482, + 1.1203162349215439, + 1.154879837728731, + 1.1651399587039883, + 0.9896805641980574, + 1.140155686825749, + 0.8720140806133754, + 1.027087232834745, + 0.9212039479033335, + 1.08278448856528, + 0.9136575164109019, + 0.30886952485846253, + 0.017252547575793215, 0, 0, 0, - 0.15453060020617093, - 0.7086672112341346, - 0.8358867542858165, - 0.9116078413745943, - 0.9134801694092676, - 0.9119624401026465, - 0.7994820595744603, - 0.907813418467244, - 0.7166346046825492, - 0.8229595735180546, - 0.7523452627721396, - 0.8589086195123816, - 0.7557975579609036, - 0.26317579561369797, - 0.013080452379150332, 0, 0, 0, 0, 0, 0, + 0.17182237085929203, + 0.8190408527199441, + 1.0490893668119154, + 1.1434662473902177, + 1.1749737265199942, + 1.1721601155734485, + 1.1648293504433276, + 1.1704013662752046, + 1.172651106477748, + 1.1681961755916708, + 1.0621276155979922, + 0.8143404091980423, + 0.29964288742623935, + 0.24799062736631863, + 0.027446105369058976, 0, 0, 0, - 0.1510509027249148, - 0.6912501278158726, - 0.8380323403917168, - 0.884141462009484, - 0.9277620207415003, - 0.9276265731303212, - 0.9121986492946791, - 0.9081975871224773, - 0.9175182779275631, - 0.9143672401889182, - 0.8395476097949544, - 0.6611126647741858, - 0.2542974793944292, - 0.2049115068073748, - 0.020695401705156987, 0, 0, 0, 0, 0, 0, + 0.15938498360171385, + 0.7616138128203864, + 1.0004815089158217, + 1.1038539649096337, + 1.1406410326609464, + 1.1499672126745697, + 1.1422362349709734, + 1.1519592656725373, + 1.155668849836881, + 1.1370529420009143, + 1.1295068628008955, + 0.9495518179776624, + 0.4277348660592286, + 0.2225864822843443, + 0.011546537690282169, 0, 0, 0, - 0.14083044409780257, - 0.661256146091779, - 0.8265929325197456, - 0.8889689020684746, - 0.9135791826170104, - 0.9172782531576832, - 0.9004659430474939, - 0.912800545841029, - 0.9157845459602885, - 0.8967389298180213, - 0.8836868939774193, - 0.7746701814530039, - 0.3695778294815293, - 0.18888263789978577, - 0.00847566575850033, 0, 0, 0, 0, 0, 0, + 0.15647675321511062, + 0.7781697381238927, + 1.01545973379769, + 1.098977308899091, + 1.107760376845939, + 1.0741104894928146, + 1.0752262876318448, + 0.7494280504160815, + 0.20972212201807042, + 0.24490869946715307, + 0.5081081340431823, + 0.4591430164512456, + 0.4484129700372462, + 0.43436242851791496, + 0.01549982763379421, 0, 0, 0, - 0.13374507679053393, - 0.6622763252069116, - 0.8192154682655188, - 0.8852974965623741, - 0.8778854362101816, - 0.8394982360361983, - 0.8415925880480735, - 0.6095409346036583, - 0.17982536730269744, - 0.2146581216270656, - 0.42996682150203674, - 0.39140768250562363, - 0.38608810200797405, - 0.3616797058179635, - 0.011551776331106564, 0, 0, 0, 0, 0, 0, + 0.13874204090529946, + 0.5746499886189139, + 0.6490815301569955, + 0.7467400962045774, + 0.45116031478187485, + 0.477914596939049, + 0.8433277261053574, + 0.45774194339150776, + 0.8744105788605272, + 0.49292961621933234, + 0.5856661843769392, + 0.28347128915515507, + 0.06528940780158883, + 0.023533612511410843, + 0.0038135351978438037, 0, 0, 0, - 0.11751846489040882, - 0.4853301440110012, - 0.5594576252587147, - 0.6259700781200611, - 0.3864638740032173, - 0.40891996052219853, - 0.687690137209377, - 0.38034570701005405, - 0.7159847696740572, - 0.4205860495912231, - 0.4945222423748139, - 0.24505976892283163, - 0.05388145852180386, - 0.01989298088319393, - 0.00357058334410283, 0, 0, 0, 0, 0, 0, + 0.08271364325670964, + 0.3637567515991644, + 0.6466713463623389, + 0.894841933260639, + 0.9161226153334701, + 1.0489940777810465, + 0.6439685713867825, + 0.6687905571627223, + 0.700281024280463, + 0.7085201484979957, + 0.3243470779474652, + 0.11759258481489217, + 0.36238576258022526, + 0.12328845765647217, + 0.01075234840057202, 0, 0, 0, - 0.07194998076094451, - 0.3349108393858542, - 0.574748961637712, - 0.7678292454604657, - 0.7828825163218323, - 0.8815065810752547, - 0.5626227513614094, - 0.5778070411543299, - 0.5985191935065003, - 0.6006402928912598, - 0.28734418947601625, - 0.10289826384126712, - 0.32710926702671617, - 0.11040967038703856, - 0.008521258323371066, 0, 0, 0, 0, 0, 0, + 0.049258642191762965, + 0.7450326518204692, + 0.9852634602764359, + 0.7612994578076268, + 0.2712780462532304, + 0.5983825247189348, + 0.5264509631709285, + 0.7147240909407694, + 0.5297871538066836, + 0.7026027595883612, + 0.5787487526568063, + 0.18570046036656032, + 0.41232513117037833, + 0.12347797774119161, + 0.012004527652106986, 0, 0, 0, - 0.042089122093326756, - 0.6513866533877409, - 0.8352947061582218, - 0.6769648257602754, - 0.250032917295013, - 0.5208587451437703, - 0.45790828649990917, - 0.6114932096804909, - 0.45652769955612277, - 0.5998203279693984, - 0.49895736175561983, - 0.16332655755945244, - 0.36283955794025996, - 0.10575825498147465, - 0.009355347108592385, 0, 0, 0, 0, 0, 0, + 0.12292843968483486, + 0.6380465598986034, + 0.9191271629038328, + 1.0357597589398608, + 1.0913137940005917, + 0.7139615059119612, + 0.6643677152143405, + 0.5244205680698344, + 0.0785151554716676, + 0.1190957150575154, + 0.22285319597655956, + 0.19879236687215182, + 0.11245004568669525, + 0.06548533482377179, + 0.00529375733898186, 0, 0, 0, - 0.10670535741962882, - 0.5668989590445707, - 0.7562333888319288, - 0.8471491382687035, - 0.8711945418454221, - 0.5978328956039785, - 0.5565014570373066, - 0.4426083967919674, - 0.06485621012974896, - 0.10301524986361403, - 0.19679989404407996, - 0.1749188632861964, - 0.09818153588982478, - 0.055818971795579514, - 0.0038494377944389376, 0, 0, 0, 0, 0, 0, + 0.1267674534849278, + 0.7195853714055279, + 0.9758029411676133, + 1.0745527464285787, + 1.124721798927061, + 1.1742851499479394, + 0.9913296494621631, + 0.9465929980186382, + 0.5502754428144476, + 0.6603460740837995, + 0.5933480220039189, + 0.19418901021670662, + 0.033519301980146014, + 0.00874610691078061, + 0.003155912948331173, 0, 0, 0, - 0.10940232786389704, - 0.6304475140767724, - 0.7788702591946388, - 0.8649677758042575, - 0.898565849747488, - 0.933734275205109, - 0.8001324937657589, - 0.7580338963810547, - 0.4568952507662235, - 0.5475922185042219, - 0.4918360721571111, - 0.16475862375864653, - 0.027884185833728686, - 0.006737529248876869, - 0.0023274419169235267, 0, 0, 0, 0, 0, 0, + 0.09092332593351682, + 0.7116022692141424, + 0.9840397427453376, + 1.0610657894967652, + 0.9697427695303302, + 0.6654985983774295, + 0.3208562049098279, + 0.9008809626323555, + 0.7043521713627032, + 0.8230847132485515, + 0.13364959477446364, + 0.33724503702183045, + 0.1034052168427006, + 0.03145952694765254, + 0.005698226820939754, 0, 0, 0, - 0.07694215168941497, - 0.6239541016519741, - 0.8268817104490717, - 0.8532339002016038, - 0.7752151448163943, - 0.5487255254554372, - 0.2704157446245992, - 0.7235279200167779, - 0.5738019263725127, - 0.6685018518608937, - 0.11283454196060677, - 0.2918373006239238, - 0.08706893321543277, - 0.02553335034818595, - 0.0040845143353140465, 0, 0, 0, 0, 0, 0, + 0.09508510317916004, + 0.3138098909638921, + 0.8665404097677343, + 0.8746898619608579, + 1.0159424592490844, + 0.6235213720956184, + 0.19939348625382303, + 0.26159313603341144, + 0.6811887953895193, + 0.3318515700328318, + 0.21006103095418494, + 1.0048172021891058, + 0.9128081241041444, + 0.307392098515102, + 0.013066248085213446, 0, 0, 0, - 0.08419180637740867, - 0.28830909957475354, - 0.7253945478321769, - 0.731700070846626, - 0.8132785843622099, - 0.5297111744398544, - 0.17298715290122227, - 0.22916996813088844, - 0.5748582410983513, - 0.28559017219845817, - 0.18510353756623132, - 0.7997228493843023, - 0.7278594580457215, - 0.2544180546981892, - 0.009627885993712433, 0, 0, 0, 0, 0, 0, + 0.11018569779962267, + 0.6985302945936239, + 0.979030805383753, + 1.0766293127395796, + 1.114550405856799, + 1.1277891526549104, + 1.1261293575210158, + 1.131757223439783, + 1.1233782585125358, + 1.1278374328228435, + 1.10939852249008, + 0.8246665784417799, + 0.13891494374669913, + 0.14653496721073617, + 0.013963611576737228, 0, 0, 0, - 0.09614043733616695, - 0.6022258922507848, - 0.8134853141377842, - 0.8728529452007855, - 0.8968290968021396, - 0.8984567310358027, - 0.8964995870145568, - 0.9089283997212763, - 0.8985724540295125, - 0.898403774871835, - 0.8694486846893767, - 0.667139053667345, - 0.118845566498975, - 0.12570458146560107, - 0.010603005686138506, 0, 0, 0, 0, 0, 0, + 0.04590156065236121, + 0.2907106629233995, + 0.6768285460276574, + 1.0384552116948944, + 1.0818217816607965, + 1.0958600396776335, + 1.1221776778958066, + 0.9902649774149469, + 0.2643799742977462, + 0.4247731529290564, + 0.6897328465017069, + 0.45393395870864195, + 0.5962836127749191, + 0.27756174253967025, + 0.013429970290646019, 0, 0, 0, - 0.03988155415354998, - 0.2684056690032233, - 0.5999472648658873, - 0.8547435155073326, - 0.8939762550441187, - 0.8909753757225479, - 0.907164179018226, - 0.804818517700916, - 0.23038356794244277, - 0.36573361765404816, - 0.5762556213219403, - 0.3937082364764088, - 0.510961651948243, - 0.23589229627590355, - 0.010086120387581849, 0, 0, 0, 0, 0, 0, + 0.09322517299414888, + 0.5745154434689178, + 0.4267439817721211, + 0.9277099450259141, + 1.0301658825663236, + 0.9633279419069481, + 0.7838029038071469, + 0.8840434214544661, + 1.0292408546694545, + 0.930646024021235, + 0.3969375245235399, + 0.05138244730318195, + 0.045461261685996256, + 0.06019093349370744, + 0.009690723917847525, 0, 0, 0, - 0.08268703320307862, - 0.5014944895954294, - 0.3791044771658885, - 0.7515996448337495, - 0.8133525333188896, - 0.7710242413701754, - 0.6436137453726243, - 0.7176528406383393, - 0.8145139388179302, - 0.7479301385600295, - 0.3387046870543477, - 0.04182838738824361, - 0.03982039020167867, - 0.05183383001102202, - 0.007342556794194244, 0, 0, 0, 0, 0, 0, + 0.017826096952407788, + 0.10988085587700776, + 0.3919337681528881, + 1.1092951454957287, + 1.0192010936976705, + 0.9564576602264573, + 1.1349871014022723, + 0.9180828114314938, + 1.1062429891602883, + 0.3753448884485496, + 0.6830508564626127, + 0.33872423112432887, + 0.14722781999091458, + 0.06479081207301597, + 0.00291560567834646, 0, 0, 0, - 0.014333343657256673, - 0.09706018033127432, - 0.34574599996599115, - 0.8918774965443688, - 0.8298413546362182, - 0.7840862886484878, - 0.9068675530741802, - 0.7496949119600658, - 0.8740345854961832, - 0.3231390269104807, - 0.5695466244251509, - 0.28875309849888336, - 0.13047054097532315, - 0.055996628470349204, - 0.0020819558039515754, 0, 0, 0, 0, 0, 0, + 0.03833815698679427, + 0.10839041002630308, + 0.7244676813368547, + 0.5416206143050826, + 0.6450771448303073, + 1.154340219046896, + 0.9006296418831845, + 0.5114198894358646, + 0.9380297045594448, + 0.5896606206834576, + 0.1045139965758786, + 0.4835035921339777, + 0.7152801855559936, + 0.056987247353726, 0, 0, 0, - 0.0324383236007749, - 0.09641798555950322, - 0.6006788319756057, - 0.46964001309001285, - 0.549581586371926, - 0.9158911878388662, - 0.7460944051655461, - 0.44075055039591915, - 0.7866219239307456, - 0.5047743969869398, - 0.09084818129153877, - 0.4408696804063565, - 0.6136509499734056, - 0.0484315546555753, 0, 0, 0, @@ -23806,407 +23733,407 @@ 0, 0, 0, + 0.08504281868980504, + 0.7044735532202087, + 0.674971817549235, + 0.22285644061255072, + 0.49555738086018375, + 1.0753884914952334, + 0.6123593426161423, + 0.3664419819326389, + 0.3358857966053614, + 0.0625168268348379, + 0.05088738697981012, + 0.21261614642498727, + 0.24955051938047676, + 0.03446988926357339, + 0.005373886764792658, 0, 0, 0, - 0.07272876129238841, - 0.6216762658370479, - 0.5852323220336604, - 0.1961715708371344, - 0.42192640885787797, - 0.8435347570604854, - 0.5189110378279702, - 0.3203905411144279, - 0.29128758817953093, - 0.05341468945601561, - 0.04468701677591657, - 0.19434622391427436, - 0.22709789841531947, - 0.02947137599756286, - 0.004038370472128907, 0, 0, 0, 0, 0, 0, + 0.04144064415866209, + 0.47037700142624467, + 0.596909893800671, + 0.6561551901552309, + 0.9112623085553873, + 1.0134384112746853, + 0.7074501407375602, + 0.17315774812861506, + 0.1013359691739201, + 0.0811704917147922, + 0.5479263264867672, + 0.2538078567101997, + 0.5167066517514524, + 0.31660222141841865, + 0.015793352463145893, 0, 0, 0, - 0.03519805074303452, - 0.4246313487311645, - 0.520376491545586, - 0.5627350766782235, - 0.7593626243067125, - 0.8320009910233661, - 0.5979209133447376, - 0.15051508477174824, - 0.0881674222868366, - 0.0725001184912939, - 0.48607803864350096, - 0.22540628888747258, - 0.4483782796002197, - 0.2707507261679309, - 0.012267929989343014, 0, 0, 0, 0, 0, 0, + 0.05843341618436805, + 0.3992763863017449, + 1.0231110933486927, + 1.0570829087593947, + 1.0181249272882746, + 1.1089352885614476, + 1.0672820976186206, + 1.1188248167348622, + 0.9432521926960843, + 1.014886486737842, + 0.7161608795741444, + 1.0177763861308207, + 0.7254353275450436, + 0.1753737129364485, + 0.003568474416844907, 0, 0, 0, - 0.050789247763131935, - 0.3631947481382772, - 0.8417680440932661, - 0.8581404478824567, - 0.8304552425285848, - 0.9052764938654626, - 0.8656646089723252, - 0.8966272822451685, - 0.7666972836288379, - 0.8187889104576606, - 0.6008696563019501, - 0.8178795672807485, - 0.6154789658825494, - 0.15093503933440275, - 0.0025051278629048693, 0, 0, 0, 0, 0, 0, + 0.02392509769555132, + 0.14621115576287586, + 0.18943591782549796, + 0.4692407273466907, + 0.4524694063033251, + 0.6413566406351644, + 0.7769672462624172, + 0.5505632264090866, + 0.4482857591822925, + 0.05039535899369795, + 0.8132262406623917, + 0.7289257501691984, + 0.22426498729853306, + 0.12329764397513661, + 0.005182009175851436, 0, 0, 0, - 0.019767063858995935, - 0.1322295422228695, - 0.17022826337466263, - 0.41124800131498174, - 0.3909809719580672, - 0.5370538177208279, - 0.6419653423628547, - 0.4689520827213442, - 0.38341373681650776, - 0.0438969925333574, - 0.6848889361159206, - 0.607974857739757, - 0.20042935407057527, - 0.10765149951135021, - 0.003792509812412973, 0, 0, 0, 0, 0, 0, + 0.042388116105441215, + 0.6504475323308456, + 0.9883494123561866, + 1.084246141926304, + 1.114578365326946, + 1.10883877287187, + 1.1081082962150153, + 1.1244801885909295, + 1.0716636728072944, + 0.9037015292599202, + 0.8806157423920653, + 1.1467405949997915, + 0.7797169818403631, + 0.2961071322029269, + 0.011891503315623142, 0, 0, 0, - 0.035647119590658104, - 0.5804037436457331, - 0.813543870955074, - 0.842959817681741, - 0.9268621738157247, - 0.9275792918128656, - 0.9273270806643027, - 0.9469188433593981, - 0.8926861310019165, - 0.7615699168093268, - 0.7482763257443393, - 0.9430497053694816, - 0.670335061710772, - 0.2539341215173133, - 0.00893818498964497, 0, 0, 0, 0, 0, 0, + 0.060787908276433905, + 0.6076380541217986, + 0.9597601319437034, + 1.0648170934732661, + 1.0843741815723833, + 1.0672549604365105, + 1.0709816328756407, + 1.11901017886161, + 1.147894126425317, + 0.8074131782302717, + 0.4099939557853035, + 0.33446821374702845, + 0.17929589857953462, + 0.04733178203922783, + 0.0055655525685728065, 0, 0, 0, - 0.05239850350863707, - 0.5383176772180103, - 0.7900454520793164, - 0.8640837327738683, - 0.8748746900810767, - 0.8846981277229461, - 0.8913810114741506, - 0.9225838186893023, - 0.9380115643587055, - 0.6924208704891034, - 0.3658143855078723, - 0.30281710208859197, - 0.16106438839239376, - 0.04084943299763429, - 0.004168499657437168, 0, 0, 0, 0, 0, 0, + 0.06231098858581786, + 0.6135795895622526, + 0.9659315934845728, + 1.0732196928373838, + 1.1102934937425415, + 1.1186901057708216, + 1.1106964668534163, + 1.0475465533465025, + 0.48693031093392725, + 0.8439941249989794, + 0.13175326776628282, + 0.44552266819680175, + 0.5750792778906683, + 0.07639437862560766, + 0.005019891049033902, 0, 0, 0, - 0.053675790729781715, - 0.5486512361930747, - 0.8125797185767313, - 0.8623138857759947, - 0.8830398720341881, - 0.8831384337144738, - 0.8831369260741954, - 0.8451888058388113, - 0.4189864552420435, - 0.6963920565000399, - 0.11352209661287874, - 0.3960086342700908, - 0.4953088957216991, - 0.06456252716392137, - 0.0036270185937961456, 0, 0, 0, 0, 0, 0, + 0.05863374877523298, + 0.6013145620026654, + 0.9750912378691338, + 1.0710199353461545, + 1.0953652139002836, + 1.1055768222252673, + 1.1033423584530742, + 0.8578108981337129, + 0.3472484018747322, + 0.7876498732574357, + 0.4506516258462381, + 0.10972048161118991, + 0.4098999221595531, + 0.07412836955674063, + 0.00278287868287135, 0, 0, 0, - 0.050146777453570546, - 0.5389956346004755, - 0.7771125437758163, - 0.8411422457979387, - 0.8860211498992148, - 0.8802826696747227, - 0.8795231128590092, - 0.7088318548965186, - 0.30109213792711953, - 0.6578162648358896, - 0.3864051218771737, - 0.09710848671058153, - 0.362225673551218, - 0.06279815130490309, - 0.0019318058898785764, 0, 0, 0, 0, 0, 0, + 0.03511337042897235, + 0.5611243933915161, + 0.872373060257768, + 0.9971440705190059, + 0.9970482212960944, + 0.9151611653590623, + 0.9999158269414685, + 1.1280836650708845, + 0.4082296052783931, + 0.1074453140486082, + 1.1763426625722018, + 0.3344276055566417, + 0.23442597826950962, + 0.1303708567279987, + 0.014065369298761888, 0, 0, 0, - 0.029618194185089812, - 0.4888674580797112, - 0.7420320450438602, - 0.8334872779066022, - 0.8380426731061896, - 0.7729566463917106, - 0.8229536562632226, - 0.8931518746370908, - 0.3560252757576396, - 0.09373987737527427, - 0.9077672178885453, - 0.2897401389083067, - 0.20964548834610405, - 0.11219981792124717, - 0.010792859454856979, 0, 0, 0, 0, 0, 0, + 0.04922537882713136, + 0.5706110665392572, + 0.9364684713570975, + 1.037317958637462, + 1.0650164916962617, + 1.0856570388027627, + 1.0703389134017949, + 1.095183528988951, + 0.5822380983120106, + 0.6767800190518294, + 0.15045356804466894, + 0.21095827892392613, + 0.7856029832181751, + 0.1727000326637828, + 0.002302498757290831, 0, 0, 0, - 0.04241948295527051, - 0.5017974928843524, - 0.7963686990270825, - 0.8631862288091476, - 0.8776023576768959, - 0.8800557719829435, - 0.8645415565221626, - 0.8801129570317484, - 0.49484653484278096, - 0.5721645280135622, - 0.12924920351733177, - 0.185554235790084, - 0.6809925486940429, - 0.14709278164037798, - 0.001567033650425716, 0, 0, 0, 0, 0, 0, + 0.03589220148467814, + 0.30466842903334057, + 0.7867579327927906, + 1.003929515711923, + 1.0716175347151855, + 1.0149107777634012, + 0.9836019552242524, + 0.8923638631439913, + 0.8375408876518631, + 0.5108293616257412, + 0.4634678661588061, + 0.9704920142862576, + 0.48265031701573446, + 0.11821049689882306, + 0.0038606326066417235, 0, 0, 0, - 0.03020447364843137, - 0.2769630948110963, - 0.6782423232506517, - 0.8272585869646605, - 0.8658165427575949, - 0.8267078961499877, - 0.79143591444697, - 0.7279022810305185, - 0.6983675418268283, - 0.44276587325753225, - 0.3933063428389028, - 0.7854859763499455, - 0.4198632744104777, - 0.10189423482899686, - 0.002745168657389514, 0, 0, 0, 0, 0, 0, + 0.013499740005521604, + 0.12711709841471222, + 0.6327724311028208, + 0.93358656901413, + 1.011965815878889, + 1.045295488366454, + 0.5658341288475711, + 0.8610447670105897, + 0.7751987853424726, + 0.9594218535468959, + 0.23669102772616496, + 0.45302250072015093, + 0.4186058189416459, + 0.14002708007123557, + 0.0027354303554258954, 0, 0, 0, - 0.010855568601566687, - 0.11485504115447163, - 0.5537337481288152, - 0.766268029155289, - 0.8164452211274863, - 0.8533300077472106, - 0.481793458512278, - 0.7005649668562319, - 0.6275896283797413, - 0.7632453453782085, - 0.21101332767640135, - 0.4045891517685636, - 0.37419282173627133, - 0.12042240433049647, - 0.0018917179007324797, 0, 0, 0, 0, 0, 0, + 0.009513951012024452, + 0.08918521787676252, + 0.17754005358207678, + 0.4954066581174459, + 0.5517928287613094, + 0.6102843685694711, + 0.10085896434674865, + 0.2647451509530097, + 0.5276802398991066, + 0.8547389016884183, + 0.6636383908558229, + 0.4035684055198058, + 0.5465786695479093, + 0.12079294903664216, + 0.004266646376095116, 0, 0, 0, - 0.007474062504518091, - 0.07947785187091581, - 0.1602505884267291, - 0.4391857942198867, - 0.47856786150239844, - 0.516658231515324, - 0.08655597868504457, - 0.2306960923973535, - 0.45059892387729805, - 0.6853229130606494, - 0.5630625024064523, - 0.3554841972258532, - 0.46753030508841925, - 0.10164994543725682, - 0.0029940766934118445, 0, 0, 0, 0, 0, 0, + 0.043862272672163374, + 0.6156547859840793, + 1.0169088663288044, + 1.1236135106543688, + 1.1273580949712487, + 1.1227425305774643, + 1.1399133221196611, + 1.0438294338832579, + 1.0818209974618123, + 1.0576754767424945, + 0.4805492392252068, + 0.6663678802076447, + 0.29921351571839205, + 0.17447062675899874, + 0.00553490745535558, 0, 0, 0, - 0.03644338371356846, - 0.5507141800363673, - 0.851186204280915, - 0.8754914067060124, - 0.9037193075494381, - 0.8950645007119675, - 0.9040456086488752, - 0.8329920692028396, - 0.8640776264286637, - 0.8380792950630783, - 0.40686133251749096, - 0.5514506590831124, - 0.25468714868130743, - 0.14201790234459047, - 0.004121522004776782, 0, 0, 0, 0, 0, 0, + 0.010482842626101734, + 0.20474181372553787, + 0.6282744029108328, + 0.5053867746330767, + 0.5905685167710836, + 1.1235615062727569, + 1.1085371062251916, + 1.0352665518196589, + 1.1300995744831852, + 0.9723052095536062, + 0.46183073111747336, + 0.3436953528596937, + 0.255881792453987, + 0.0604802173032051, + 0.0038300554564382424, 0, 0, 0, - 0.008124963618526465, - 0.18118746435202143, - 0.5232701960034463, - 0.42858584918626663, - 0.503623495198571, - 0.8931734312077396, - 0.8896507458147462, - 0.8315623215137301, - 0.8731804618022895, - 0.7828607890519615, - 0.39532107291263374, - 0.2943048886091351, - 0.21950845404821454, - 0.049341166491498445, - 0.00263072637481499, 0, 0, 0, 0, 0, 0, + 0.030357164455078394, + 0.5171483195168415, + 0.9285487843798689, + 1.049284877310898, + 1.07205600333889, + 1.0833872442988437, + 1.097775632128475, + 1.1049485202150988, + 1.1146857328502378, + 1.028249438916437, + 0.7639138205531367, + 0.803790527501217, + 0.22573640934956576, + 0.05676808849954544, + 0.002687749595386456, 0, 0, 0, - 0.024761950633128, - 0.4625919882776838, - 0.7831641142286556, - 0.8440768100425984, - 0.8569251197627636, - 0.864676517317786, - 0.8702547972852113, - 0.8715706820557251, - 0.857571725463647, - 0.8037215211245922, - 0.6241137118550096, - 0.6468536327452692, - 0.1915155062042236, - 0.04610290960915901, - 0.0017937467891079389, 0, 0, 0, 0, 0, 0, + 0.02212722601595752, + 0.3257758913116509, + 0.6642865501937328, + 0.9684082147415467, + 1.0218508278237641, + 0.970354652342278, + 0.6957616973304542, + 1.050545225449867, + 0.9837725266070066, + 0.3716506039215709, + 0.6528161673151154, + 0.4577254467840084, + 0.1759626247428576, + 0.04417129955103613, 0, 0, 0, - 0.018332346178536386, - 0.2984548467386572, - 0.5925944707134133, - 0.793407877248397, - 0.8438889661983012, - 0.8005632176915924, - 0.5911651017738732, - 0.8548690717816455, - 0.8034053621658824, - 0.3239931389909216, - 0.5547439458353113, - 0.3959755062861673, - 0.1533372447644771, - 0.03685409948736421, 0, 0, 0, @@ -24214,71 +24141,71 @@ 0, 0, 0, + 0.00872616861303287, + 0.2219173603128658, + 0.7372022964775916, + 0.9771836086786369, + 0.8414983270917301, + 0.60276903985202, + 0.8853161636537737, + 0.6458811068523277, + 0.7819530340555667, + 0.6825424165470396, + 0.36905942200184344, + 0.062298853250754814, + 0.1055911354243308, + 0.04963152752292086, + 0.001801933609415158, 0, 0, 0, - 0.006555292572883949, - 0.20338560403448752, - 0.6360378938084025, - 0.7914686272477942, - 0.6973464089507583, - 0.5078758230502689, - 0.7251763880564589, - 0.5455286953762907, - 0.6399869179373777, - 0.55224561561637, - 0.3152906913258444, - 0.05166843998135523, - 0.09014011603597714, - 0.04054064915269718, - 0.001177047674111378, 0, 0, 0, 0, 0, 0, + 0.008964198781393533, + 0.38591351382097605, + 0.9487936302794069, + 1.0663936933628098, + 1.1659691213591006, + 0.6346070488342187, + 0.5836506934658645, + 0.5470332736126068, + 0.9817196928908938, + 0.27793824146477814, + 0.3815031176264055, + 0.2238482125700741, + 0.12128366640713018, + 0.06468779117237859, + 0.0018902426930918056, 0, 0, 0, - 0.007005748904219406, - 0.3452481087848482, - 0.7824738146077277, - 0.8779970541959804, - 0.930902801038944, - 0.5328635924410909, - 0.48636592082289076, - 0.46572082525254327, - 0.7707660361372698, - 0.23970016396392982, - 0.33314564153470927, - 0.19478515779503522, - 0.10491850369681274, - 0.05344913652838168, - 0.0012488610795686078, 0, 0, 0, 0, 0, 0, + 0.01865450854568301, + 0.4215152508267186, + 0.8814659135583393, + 1.037590801700107, + 1.077286893158927, + 1.0825070216586987, + 1.089566110606102, + 1.0773819547920533, + 1.1263477721792916, + 1.089284837367056, + 0.5500579593871786, + 0.34876612362001924, + 0.23988254547181623, + 0.05764893338428098, 0, 0, 0, - 0.015025754264793774, - 0.381429944138147, - 0.7313547428004831, - 0.837714472636729, - 0.87546015492288, - 0.8716348225012192, - 0.8753964311442461, - 0.8629044027749098, - 0.8925590167275158, - 0.8731127299651378, - 0.46629363724847167, - 0.2994946644884964, - 0.20643223709839353, - 0.04719410303757789, 0, 0, 0, @@ -24286,23 +24213,23 @@ 0, 0, 0, + 0.01600506856676995, + 0.48987350174417243, + 0.9465181914287445, + 1.0834598030813756, + 1.0886394433292201, + 1.0492228602668792, + 1.0252027643662103, + 1.0416435332394889, + 1.0439311323207614, + 1.0167279858258365, + 0.7386565585017631, + 0.5628448073788331, + 0.08569668837431295, + 0.03984821970541743, 0, 0, 0, - 0.012606279985443659, - 0.4291495922832807, - 0.7732202218630734, - 0.8435473300857043, - 0.8695725201145992, - 0.8633576700686292, - 0.8526508902023315, - 0.848193941015003, - 0.843995741346254, - 0.8260692932690809, - 0.6232389167421393, - 0.4869174260272318, - 0.07299989436448617, - 0.03353474901543165, 0, 0, 0, @@ -24310,23 +24237,23 @@ 0, 0, 0, + 0.012121229063220287, + 0.3186487320461273, + 0.7841085084124076, + 0.9758009508165458, + 1.042054534104374, + 1.054467824601778, + 1.0201267646506171, + 0.9692723866917708, + 0.981979523542846, + 0.9123100441483238, + 0.7197212509422064, + 0.2937070583169105, + 0.264392312634807, + 0.04318435986873447, 0, 0, 0, - 0.009696209736210657, - 0.2858324338043805, - 0.6507506825310151, - 0.7931687494359067, - 0.8123557922994423, - 0.8411213597176941, - 0.830898038050784, - 0.7933620435359633, - 0.7997773784915432, - 0.7459194105034596, - 0.6005765788675346, - 0.25663764920865323, - 0.22888714002421057, - 0.03503032200402241, 0, 0, 0, @@ -24334,23 +24261,23 @@ 0, 0, 0, + 0.009565988398048952, + 0.23373438387171006, + 0.5588441006988598, + 0.7852266235538151, + 0.9010934499090222, + 0.9954190922069887, + 1.0552496296172427, + 1.050403049296563, + 1.0611894694016188, + 1.0630492616051275, + 1.0313630860096092, + 0.9199004185085943, + 0.4756267042995636, + 0.07220218185288427, 0, 0, 0, - 0.0073958699482748825, - 0.21131157436897438, - 0.4785112508537982, - 0.6676015857844971, - 0.7401872969157537, - 0.8022390719603217, - 0.8372452572074147, - 0.8402421944283663, - 0.8380096366357376, - 0.8372825722118408, - 0.8217312405693035, - 0.7450541377059473, - 0.41034914624028546, - 0.059599466441584294, 0, 0, 0, @@ -24358,23 +24285,23 @@ 0, 0, 0, + 0.015557460263153133, + 0.40021457004015776, + 0.838368983693149, + 0.9702596551400078, + 1.0086440736955848, + 1.039787710328888, + 1.013036847665886, + 0.9867017937481417, + 0.9777846923101094, + 0.9945988002439524, + 0.9523648563357943, + 0.781377272985275, + 0.49225939532499763, + 0.09217526482078844, 0, 0, 0, - 0.012495403982962913, - 0.35569725954833104, - 0.6899230978373175, - 0.798259204275869, - 0.8252706047262276, - 0.8455641572397155, - 0.8123767909583066, - 0.792599499011033, - 0.7860433850348824, - 0.7850001071508026, - 0.763770515983207, - 0.6453082469443496, - 0.4212197105157541, - 0.07631349356214695, 0, 0, 0, @@ -24382,23 +24309,23 @@ 0, 0, 0, + 0.01714298234704861, + 0.4303573397318093, + 0.8886317111213464, + 1.0262562842554133, + 1.04695702958639, + 1.0675151306155057, + 0.9813897853103004, + 0.9453200710384642, + 0.5166836893537633, + 0.6942855155761372, + 0.25262500230521684, + 0.11766735519331425, + 0.05339735918247832, + 0.016761642141149148, 0, 0, 0, - 0.0135074184582495, - 0.3823637952269718, - 0.7316425681918071, - 0.8028027465995208, - 0.8319105556012969, - 0.8484633080414049, - 0.7781554054075756, - 0.7488275955462329, - 0.43026450612387024, - 0.5699387497798749, - 0.21654805898394952, - 0.10066580308728042, - 0.044614704679871185, - 0.013210154370118583, 0, 0, 0, @@ -24406,23 +24333,23 @@ 0, 0, 0, + 0.009224682072188527, + 0.2745730730081358, + 0.8300827529692564, + 0.9631001111980987, + 1.0218369464690606, + 1.0423216852099817, + 1.0302326753219455, + 1.07975565914511, + 0.9404369462849361, + 0.31399403945179954, + 0.10255341775541922, + 0.09931098418521081, + 0.31589753094029716, + 0.07347316639211829, 0, 0, 0, - 0.007191994687656839, - 0.24865417309031052, - 0.7061695642864328, - 0.782876210650247, - 0.8044294308349571, - 0.8071362628758824, - 0.8072503158692841, - 0.844496778662638, - 0.75820515963499, - 0.26958703301582776, - 0.08732538350640141, - 0.0861108662652608, - 0.27443870157195527, - 0.06026835974421396, 0, 0, 0, @@ -24430,23 +24357,23 @@ 0, 0, 0, + 0.006551099465076021, + 0.3295021029220074, + 0.8030136501265578, + 0.9258050211439862, + 0.9777463575748708, + 0.9313408714471767, + 1.0612929315960826, + 0.6770478404263055, + 0.33625509356105765, + 0.2738378538434246, + 0.398471786004583, + 0.18053191368927352, + 0.5325018604881265, + 0.038114853092318074, 0, 0, 0, - 0.005026312127036299, - 0.294913722060517, - 0.6883510783843765, - 0.756042227913465, - 0.7888479036903351, - 0.7675832926941606, - 0.8577701030437062, - 0.5638850317775927, - 0.2886495814180086, - 0.23957832857899106, - 0.34022410027370353, - 0.1564263084443318, - 0.45147562469852565, - 0.030799530334211716, 0, 0, 0, @@ -24454,23 +24381,23 @@ 0, 0, 0, + 0.005496061022615648, + 0.18085989853020262, + 0.48756319260753095, + 0.6775250583358662, + 0.8188370581685043, + 0.9099101710660498, + 0.9420569333524026, + 0.9602550985893987, + 0.9797219554700866, + 0.7086208213235428, + 0.6403245821541991, + 0.6749952020286187, + 0.4305269188722287, + 0.041034474556927714, 0, 0, 0, - 0.0040972920961450335, - 0.16358017321111346, - 0.4381201113951605, - 0.5721616337750299, - 0.6663918560731572, - 0.7495465633308853, - 0.7751549579730035, - 0.7778076899631838, - 0.7869568910426861, - 0.5879278548091864, - 0.5342897478209142, - 0.5607320284707537, - 0.3647003156631921, - 0.032861862955609604, 0, 0, 0, @@ -24478,23 +24405,23 @@ 0, 0, 0, + 0.005017627752591542, + 0.17516778098043667, + 0.4735214002636851, + 0.7156811695955864, + 0.8298684912843215, + 0.8886320453180594, + 0.9187365140651158, + 0.9420044080327385, + 0.9432219305305007, + 0.9149673636894644, + 0.8524911175909246, + 0.7356324794276135, + 0.36103964631590885, + 0.03721431916848554, 0, 0, 0, - 0.0036628611352518756, - 0.15736719045094444, - 0.42466427493723813, - 0.6051523708223143, - 0.6691858028117756, - 0.7284234656977558, - 0.746621819465061, - 0.7540375035419671, - 0.7530927783127599, - 0.7376993159152044, - 0.690661002003835, - 0.606254668490365, - 0.3070455896125563, - 0.02911679490619803, 0, 0, 0, @@ -24502,23 +24429,23 @@ 0, 0, 0, + 0.005334985903000822, + 0.19246648559788918, + 0.4721728700487245, + 0.6409624506880688, + 0.8274393177296541, + 0.9396824234967829, + 0.7936955486714041, + 0.7481068234097195, + 0.6142535239800326, + 0.2794654026245874, + 0.1961889017192677, + 0.28435209109908494, + 0.13684969380496, + 0.03205134360451132, 0, 0, 0, - 0.003913461495172541, - 0.17196093122125616, - 0.40792976634923445, - 0.5502985361934242, - 0.6930582272344404, - 0.775958943892844, - 0.653957805542902, - 0.6067749503895439, - 0.5117215241550928, - 0.23873857968004236, - 0.16745910979363388, - 0.24225686112499376, - 0.11614191877165456, - 0.025526404177312542, 0, 0, 0, @@ -24526,23 +24453,23 @@ 0, 0, 0, + 0.004811300436412799, + 0.1870655174935108, + 0.5246202605027338, + 0.6854233573836952, + 0.44922484344854813, + 0.929947742134724, + 0.951696224278159, + 0.7153716793725728, + 0.8818007496493914, + 0.6473186898399766, + 0.4888024361941556, + 0.6507783996358537, + 0.1124965806473769, + 0.01712820571434642, 0, 0, 0, - 0.003501690027035284, - 0.16755449486584084, - 0.46361892584420955, - 0.5680462204009329, - 0.3813562692643986, - 0.7413701660790527, - 0.7683449379952109, - 0.5867127126742656, - 0.7020171921726807, - 0.5369998585690388, - 0.412716008333913, - 0.546674743144337, - 0.09511811429199203, - 0.01308584592604732, 0, 0, 0, @@ -24550,23 +24477,23 @@ 0, 0, 0, + 0.0027283263050860286, + 0.11450522209155298, + 0.5590266629186148, + 0.7393631852010126, + 0.9022931806169245, + 0.957003238710118, + 0.9417444234448225, + 0.6957979766577665, + 0.9290686432553849, + 0.4853443943937538, + 0.33190948969645695, + 0.059188001624431184, + 0.06270584764633258, + 0.01411595585585119, 0, 0, 0, - 0.0018981809572231874, - 0.10071949166467324, - 0.48342434122657796, - 0.6134891031373043, - 0.7323194051078584, - 0.7723401838472514, - 0.7599601983912031, - 0.5763479412819629, - 0.7458286398083284, - 0.4075012349098164, - 0.2832389089689755, - 0.049050909377065355, - 0.05290407239230876, - 0.010874409886458953, 0, 0, 0, @@ -24574,23 +24501,23 @@ 0, 0, 0, + 0.0035553290769145445, + 0.11688635642373348, + 0.6873725872415759, + 0.885858930251729, + 0.9509907401328426, + 0.9383540435413027, + 0.6336265120591777, + 0.643448701624287, + 0.6888487072815811, + 0.5007556239314616, + 0.25217550189498283, + 0.19088307180224565, + 0.03197841080466241, + 0.02160336920787089, 0, 0, 0, - 0.0025109391148363355, - 0.10271116736625571, - 0.5903789583950858, - 0.7343137432981957, - 0.7797353854442158, - 0.7606311781641207, - 0.5260409264263277, - 0.5345179453947212, - 0.5603597011663777, - 0.41483115069028653, - 0.21563614866492758, - 0.16725643885845426, - 0.026403994381003, - 0.0175894982665016, 0, 0, 0, @@ -24598,23 +24525,23 @@ 0, 0, 0, + 0.007147928108026072, + 0.35072734469288647, + 0.8691263495831465, + 1.0116170408071703, + 1.0357128069457862, + 1.0357812304105192, + 1.0325770464201618, + 1.0298019049967437, + 1.0455078895079535, + 0.496257924248657, + 0.7355125317608003, + 0.3531748775445893, + 0.13007224218650448, + 0.045793577614862024, 0, 0, 0, - 0.005454940117768885, - 0.31220517217119137, - 0.7080330378625769, - 0.8240692839396903, - 0.8425909113617979, - 0.836280838455744, - 0.8229152954038429, - 0.8227387379568923, - 0.8273430043712645, - 0.4183932521641488, - 0.6037322959652528, - 0.30314632014591164, - 0.11292872360072716, - 0.03718907494835986, 0, 0, 0, @@ -24622,23 +24549,23 @@ 0, 0, 0, + 0.0032647074072969383, + 0.06429442175495372, + 0.6987031980843679, + 0.4129592211046754, + 0.6011717243600232, + 0.8487252728269381, + 0.7832656879006341, + 0.3277616823114557, + 0.09316820750858434, + 0.0501156299312453, + 0.1714762027447395, + 0.08630347355382467, + 0.04747384211741587, + 0.005501027241852492, 0, 0, 0, - 0.0023756182874811616, - 0.057315883653069326, - 0.6064341021655739, - 0.3685063998344571, - 0.5234039600075387, - 0.7290060704303014, - 0.6727127656020203, - 0.2919125822049106, - 0.0806496113062844, - 0.044177804632983604, - 0.1550794080093488, - 0.07713933411567969, - 0.04220170162716225, - 0.004869897644704017, 0, 0, 0, @@ -24646,23 +24573,23 @@ 0, 0, 0, + 0.006497078621560469, + 0.29606881060690116, + 0.703158901458662, + 0.28068481492891634, + 0.6520162207449532, + 0.2848744984796694, + 0.5530594784143521, + 0.25726402287204925, + 0.11067927997035008, + 0.2469801322649213, + 0.9765895953984041, + 0.9406196092223083, + 0.34162583372384286, + 0.014737367743601739, 0, 0, 0, - 0.005055387945957572, - 0.26941956008942525, - 0.6106202548056816, - 0.2561506605146548, - 0.5680827350477773, - 0.2529317888136964, - 0.47693135539227044, - 0.22840629629958714, - 0.09817904750470068, - 0.22358318414985734, - 0.824303210487536, - 0.7899570168264595, - 0.30193758700911805, - 0.011442077743096767, 0, 0, 0, @@ -24670,23 +24597,23 @@ 0, 0, 0, + 0.003524406444983634, + 0.3036176688237026, + 0.8612469893784036, + 1.015467189275425, + 1.03900743462094, + 0.9947831631898186, + 1.042275421196047, + 0.992244914791597, + 0.8206292944432214, + 0.17683416919962175, + 0.24576784842202243, + 0.1582677538055628, + 0.2931001076715912, + 0.04147756019434852, 0, 0, 0, - 0.002562092023648707, - 0.26845760915606054, - 0.7090852708751992, - 0.8204085670049938, - 0.8425827430628927, - 0.8290939892175929, - 0.8827289018967638, - 0.8349366758067842, - 0.6955002310164914, - 0.15556984628989706, - 0.2208574715095713, - 0.13999992034050687, - 0.25535557444908213, - 0.03310006117604901, 0, 0, 0, @@ -24694,23 +24621,23 @@ 0, 0, 0, + 0.003714074457270049, + 0.24898640015774776, + 0.7580521436900846, + 0.9573331642435275, + 0.9980600425792416, + 1.021005669966658, + 0.929100785733014, + 0.5171097343792305, + 0.37902331915594967, + 0.4258701192051806, + 0.6409053185391161, + 0.06687039247191222, + 0.051057207310975114, + 0.017019508052242182, 0, 0, 0, - 0.002891516819422535, - 0.23301651366252527, - 0.6879534185737964, - 0.8421551164011578, - 0.8564075892543943, - 0.8629899353387533, - 0.8007324958385533, - 0.46331313076330427, - 0.3432159280658768, - 0.3835265385585028, - 0.5544484311581, - 0.05782321282472342, - 0.04447047401046578, - 0.013696280353473485, 0, 0, 0, @@ -24718,23 +24645,23 @@ 0, 0, 0, + 0.0032211425248280896, + 0.2623610334105986, + 0.7671111014715918, + 0.9826750318851869, + 1.0170433318750876, + 1.019451454741842, + 1.0156264458526123, + 1.0246019541686828, + 1.0495722077265786, + 1.0651878249555828, + 1.0622259963877667, + 0.9676334303792399, + 0.455872427735454, + 0.026012892284426936, 0, 0, 0, - 0.002432790733340484, - 0.24182875822359404, - 0.6730226659589809, - 0.8252202944523649, - 0.8745370354578309, - 0.8612677006671179, - 0.8593977780121894, - 0.851777065017177, - 0.866241029238868, - 0.8773347846806895, - 0.8697437019771886, - 0.8003995325849402, - 0.39081752753802845, - 0.020348301817731663, 0, 0, 0, @@ -24742,23 +24669,23 @@ 0, 0, 0, + 0.004216854065808782, + 0.36997413394894124, + 0.9476647994085812, + 1.0661055264121184, + 1.0716473573535579, + 1.0551725601353819, + 1.0369751739566235, + 1.0375355014758663, + 1.0551296035282873, + 1.0751924614793016, + 1.081966520009997, + 0.9898746392533537, + 0.486539969689465, + 0.024517044603892566, 0, 0, 0, - 0.0031499506099808123, - 0.3309881829500958, - 0.7700866107213034, - 0.8862477037117885, - 0.8832795822838942, - 0.8703727054603841, - 0.8477879328993801, - 0.8393388162815654, - 0.8453404364848184, - 0.8535567437604514, - 0.8574643630367378, - 0.7811534627328263, - 0.40489011136153163, - 0.018451788962859716, 0, 0, 0, @@ -24766,23 +24693,23 @@ 0, 0, 0, + 0.0035075221794827745, + 0.1953752620438838, + 0.6471583848826761, + 0.9812728263111501, + 1.0301242614215071, + 1.0224351988989302, + 1.0088582011628018, + 1.0098045830689957, + 1.032182001558439, + 1.0485400753327323, + 1.0372476748674933, + 0.7434532698952738, + 0.40030499059752755, + 0.021720597168972348, 0, 0, 0, - 0.0026197646943334403, - 0.1779219982025674, - 0.5686827039145624, - 0.8491163615456764, - 0.8850110979152941, - 0.8710732064658712, - 0.855273984490469, - 0.8455023173682787, - 0.8480997885801537, - 0.8472469216417801, - 0.849676879929644, - 0.6336991030472369, - 0.34143350943763173, - 0.016883954073532437, 0, 0, 0, @@ -24790,23 +24717,23 @@ 0, 0, 0, + 0.0029019511209563077, + 0.31685072506870393, + 0.8963066549222135, + 1.0243104621737422, + 1.0380454304384215, + 1.0257863707357344, + 1.007353778293014, + 1.005490871346326, + 1.025856251569085, + 1.0429961517553743, + 1.0360571375438323, + 0.9175755329975315, + 0.38275659917815824, + 0.017958280561441584, 0, 0, 0, - 0.0020721081739337645, - 0.2805751061147194, - 0.7551854896017497, - 0.8280871510981824, - 0.8409028014706088, - 0.8462566392050949, - 0.8181981753346885, - 0.8058910466052559, - 0.8297668350567008, - 0.8354245399398664, - 0.8304918342701545, - 0.7445314515618571, - 0.32061551450096043, - 0.013558719453266555, 0, 0, 0, @@ -24814,23 +24741,23 @@ 0, 0, 0, + 0.0020059905147927575, + 0.2287793179003749, + 0.7806064744985919, + 0.9740102521799494, + 1.0176757956722668, + 1.0228067718288139, + 1.0191726851510665, + 1.020438450106587, + 1.0437954595228114, + 1.0101449769403381, + 1.070870598009278, + 0.882026536624437, + 0.3292650001805108, + 0.021714857346226496, 0, 0, 0, - 0.0013922016646210403, - 0.20428077427783456, - 0.669940888416388, - 0.7722982389113182, - 0.8138393529991371, - 0.8290350595565379, - 0.8123943305976524, - 0.8191736377773314, - 0.8236663908240912, - 0.8027625970137241, - 0.8432128983032033, - 0.7074255904756873, - 0.27122974663641136, - 0.016012902325354017, 0, 0, 0, @@ -24838,23 +24765,23 @@ 0, 0, 0, + 0.001598938672256888, + 0.21671240971339786, + 0.6805673022824448, + 0.8320358200926028, + 0.9741858330185464, + 1.0056028220840703, + 0.9987256634305194, + 1.0276864136699964, + 0.966319501294355, + 0.354576047181214, + 0.4000551597763114, + 0.16604156780123377, + 0.12882663797223945, + 0.017771802065191116, 0, 0, 0, - 0.0010602457957654345, - 0.19033197334901997, - 0.6014015533019272, - 0.7155156539465123, - 0.8028674855704306, - 0.8179391942609119, - 0.8188327687278912, - 0.826426961354646, - 0.7719707689500109, - 0.30361264723141596, - 0.34276855753491126, - 0.14176733289367288, - 0.10809580312854256, - 0.013381632663188635, 0, 0, 0, @@ -24862,23 +24789,23 @@ 0, 0, 0, + 0.0012377344077510446, + 0.12956381813262885, + 0.5439501003813755, + 0.7572655857394706, + 0.8325282704238128, + 0.9007286263579923, + 0.8944141924948047, + 0.8792319150577831, + 0.8500541370857084, + 0.7797035289274454, + 0.6502033399515007, + 0.39780650108810073, + 0.124477481681609, + 0.008779443763113931, 0, 0, 0, - 0.0009099429919798022, - 0.11625496743454847, - 0.4700047249341747, - 0.6347093657430937, - 0.6884661019402495, - 0.7606031730303839, - 0.7521929469948211, - 0.7248855215073464, - 0.704532393636523, - 0.6462678444186511, - 0.5429724575902147, - 0.3566786504055562, - 0.11042641185672095, - 0.00673246818688783, 0, 0, 0, @@ -24887,22 +24814,22 @@ 0, 0, 0, + 0.0067691325530861105, + 0.026568090175567684, + 0.061900347474575554, + 0.12037025762765116, + 0.14707187430442006, + 0.18697176097346618, + 0.1886969611108205, + 0.11681678828337054, + 0.05319613035848193, + 0.04779825421406, + 0.03749739482688941, + 0.030292472575916586, + 0.001836676502587193, 0, 0, 0, - 0.006490167920166083, - 0.02485461863748979, - 0.0589805685285048, - 0.11533506044733748, - 0.14107300043375032, - 0.17977196121303587, - 0.1810263668648209, - 0.11192958674015699, - 0.05073464346292765, - 0.0461769347948579, - 0.03937989452392032, - 0.03314589458761635, - 0.001625213070153164, 0, 0, 0, @@ -24911,22 +24838,22 @@ 0, 0, 0, + 0.007733160975552252, + 0.030139133368430666, + 0.07430508313263388, + 0.12300892180265198, + 0.1178888574144146, + 0.14443844167665904, + 0.2000549866394176, + 0.32202666791276335, + 0.262177243100612, + 0.3016944528328329, + 0.23134845869070267, + 0.08524782065015404, + 0.007059425304405291, 0, 0, 0, - 0.00696546618950925, - 0.037261917132323144, - 0.08987848463129867, - 0.13586459389386818, - 0.1282996766424714, - 0.1539450612528255, - 0.20983858991710466, - 0.3285661235902428, - 0.26235280401849226, - 0.29289502812197615, - 0.22177104094205957, - 0.08113881201738761, - 0.005922579547199637, 0, 0, 0, @@ -24935,22 +24862,22 @@ 0, 0, 0, + 0.036353781796402126, + 0.08124924979038611, + 0.14143810947630533, + 0.39658223812266813, + 0.47420906971272414, + 0.2675748606552646, + 0.32690120859164784, + 0.2758321180769229, + 0.23464324986193844, + 0.1588033662014273, + 0.10547397428320336, + 0.05214568263591777, + 0.002344846827841013, 0, 0, 0, - 0.03417873940702709, - 0.07681511128084954, - 0.1339387788219372, - 0.3723817648557711, - 0.44086742957087843, - 0.2530259884880271, - 0.3077833855918167, - 0.2571704579406652, - 0.22047215381135646, - 0.1490421150635757, - 0.09864295517555519, - 0.04741644615706722, - 0.001783181969758507, 0, 0, 0, @@ -24958,23 +24885,23 @@ 0, 0, 0, + 0.0014035843685360303, + 0.2673120739124385, + 0.7901144907372976, + 0.9746569907859615, + 0.999067870243356, + 1.0144160621885296, + 0.9915448389193137, + 1.0042090420413956, + 0.7370566841698212, + 0.5367478540952514, + 0.25231588423998386, + 0.34791499613744215, + 0.22848160882282753, + 0.007869688743253936, 0, 0, 0, - 0.0011209801477767786, - 0.24958818877959718, - 0.697220065712529, - 0.8565843555506223, - 0.8615494587094633, - 0.8652684991790306, - 0.8478922398308069, - 0.8773776679768792, - 0.6630773851712685, - 0.4938121983666064, - 0.23262676215047126, - 0.31895525952089593, - 0.20231416425320542, - 0.006065427950080723, 0, 0, 0, @@ -24982,23 +24909,23 @@ 0, 0, 0, + 0.0011495161123178926, + 0.25630051103848817, + 0.8758763037492069, + 1.0284071697819404, + 1.0378545229893392, + 1.021034551841922, + 0.9978857983568874, + 1.0039201349764744, + 1.0288474790943505, + 1.05927940333377, + 1.0605002655832096, + 0.9430708666862208, + 0.28531735661689306, + 0.006941217008515401, 0, 0, 0, - 0.0008708815898543177, - 0.2321826870099154, - 0.7640437471878044, - 0.8568606096815921, - 0.8752727780391635, - 0.8557522393925575, - 0.827476744156786, - 0.8251198601769928, - 0.8478367393277472, - 0.8640711257411802, - 0.8664350143228785, - 0.7822643331147545, - 0.24302143670168788, - 0.005093482379916608, 0, 0, 0, @@ -25007,22 +24934,22 @@ 0, 0, 0, + 0.25798968836123803, + 0.8920690087763816, + 1.0392280102579798, + 1.0477152940337684, + 1.0261630388424512, + 1.0004611190603265, + 1.000878929872432, + 1.02473285633776, + 1.048888870251205, + 1.0488272188804855, + 0.917300763279878, + 0.26869370939544335, + 0.005468637290099653, 0, 0, 0, - 0.23262086752298136, - 0.7754159140664812, - 0.850018906781436, - 0.8537595366802286, - 0.8439565298822548, - 0.8255365359098852, - 0.8184961928412909, - 0.8336837757455041, - 0.8535640690021512, - 0.8466391968137448, - 0.7517979539505543, - 0.22670528057138753, - 0.004206937350598805, 0, 0, 0, @@ -25031,22 +24958,22 @@ 0, 0, 0, + 0.1615361370426016, + 0.6614816358866096, + 0.8398767214860652, + 0.9034620598719848, + 0.9547834860187717, + 0.9837867349191179, + 0.9879385273007764, + 1.0112461891369393, + 1.037116075003369, + 1.0401712609669185, + 0.8899923344499318, + 0.10499837214496069, + 0.005131677142686061, 0, 0, 0, - 0.14425773864647398, - 0.5612882327390518, - 0.6982097515185026, - 0.7484657224669847, - 0.7757065233515122, - 0.803946560955928, - 0.7967787637514671, - 0.8234664975364916, - 0.8356418397259753, - 0.8286919870033197, - 0.7308712456158536, - 0.08877287970721123, - 0.003661520490926921, 0, 0, 0, @@ -25055,22 +24982,22 @@ 0, 0, 0, + 0.10227696538389186, + 0.5504384322856319, + 0.7734670969867503, + 0.8849171346583073, + 0.9335453473131867, + 0.9320442554238759, + 0.9348027135876492, + 0.923136989649155, + 0.8824579040772534, + 0.7969248698367595, + 0.5489819319298161, + 0.13917206040333627, + 0.004682480515761064, 0, 0, 0, - 0.09069990534921303, - 0.5010837446211399, - 0.6698674133495528, - 0.7187128986005522, - 0.7605994015975427, - 0.77218545575675, - 0.7542298554203545, - 0.7465733952423396, - 0.7281717336808371, - 0.6701517273949513, - 0.47477375874342564, - 0.11842881557913909, - 0.003315857591844304, 0, 0, 0, @@ -25079,22 +25006,22 @@ 0, 0, 0, + 0.06745516225955588, + 0.33308346936107336, + 0.541355918306202, + 0.6899286198146337, + 0.7784776646592222, + 0.8050143325644822, + 0.8206152584883234, + 0.8293162291630857, + 0.7597384212753834, + 0.6705511525163527, + 0.4385828696453716, + 0.11276272679317421, + 0.003930340013559775, 0, 0, 0, - 0.06037010698383038, - 0.30668572589864324, - 0.49219045689790786, - 0.6150091101782718, - 0.6817070923201561, - 0.6999614318052843, - 0.6987995490293535, - 0.702681153738043, - 0.6466114300002161, - 0.5767510051751374, - 0.3860804560063476, - 0.09912690451621001, - 0.00286095777883597, 0, 0, 0, @@ -25103,22 +25030,22 @@ 0, 0, 0, + 0.08789532244278342, + 0.44799095412761425, + 0.6512099954821863, + 0.7728694091369006, + 0.8475631539352917, + 0.8539859820676703, + 0.846157603476005, + 0.8667111262219718, + 0.8307053727621672, + 0.7206212125261892, + 0.504686565588752, + 0.13244868226287498, + 0.004168645557075199, 0, 0, 0, - 0.07883607665856789, - 0.4038852670026773, - 0.576619683586026, - 0.6570715715414074, - 0.7173908008063803, - 0.7124241023783626, - 0.6983496076141145, - 0.7202717417831731, - 0.7027807207246849, - 0.6100006825752964, - 0.4403152876581608, - 0.11319722373128069, - 0.0029563053591436465, 0, 0, 0, @@ -25127,22 +25054,22 @@ 0, 0, 0, + 0.04432599825738863, + 0.4129836626400908, + 0.6871941792865023, + 0.8024383634843552, + 0.808400989072701, + 0.8815320052899518, + 0.883940655482495, + 0.5586491209237119, + 0.50759525635216, + 0.45516022533795647, + 0.17901759494352437, + 0.052954210567280884, + 0.0019106451697093129, 0, 0, 0, - 0.0392703740987627, - 0.37402935303361895, - 0.597943496263295, - 0.6939347617388312, - 0.687701036604478, - 0.7357650780431221, - 0.7358634711829959, - 0.48327290668204603, - 0.43919329720367006, - 0.3945158606545323, - 0.15656895170478186, - 0.04403680479363229, - 0.0014026686056538827, 0, 0, 0, @@ -25151,22 +25078,22 @@ 0, 0, 0, + 0.05221231962243518, + 0.4843697755541029, + 0.7043721546098372, + 0.6637213945331296, + 0.8006508503465308, + 0.38914252954025685, + 0.37078894717971994, + 0.5051534879545189, + 0.8833542737702144, + 0.16914934087033223, + 0.21565740750358936, + 0.054088073099110345, + 0.0017854091402216138, 0, 0, 0, - 0.0451029793743437, - 0.43837361058678237, - 0.591369581009895, - 0.5655877260584762, - 0.6796632262999736, - 0.3399015791496913, - 0.32027092595763046, - 0.43204591278785787, - 0.7296632029545063, - 0.14539819803390697, - 0.18727212656362843, - 0.044998846062895975, - 0.0012779277331423885, 0, 0, 0, @@ -25175,22 +25102,22 @@ 0, 0, 0, + 0.09842429914641158, + 0.40785209328724964, + 0.3202923495693317, + 0.34920157841734273, + 0.5544255431801182, + 0.3402762850090179, + 0.45213133335859707, + 0.5654819889918831, + 0.6242040685869342, + 0.5240879632340552, + 0.09179800398154084, + 0.0624714954727697, + 0.0020895868444279673, 0, 0, 0, - 0.0866867464025085, - 0.3618966910484262, - 0.28615536896976645, - 0.3111474117507407, - 0.4801920084912339, - 0.301259635730111, - 0.3936975804544119, - 0.4847891329015192, - 0.5340578320303788, - 0.45055484881631147, - 0.07830370507306471, - 0.05267173235542928, - 0.001424300867651318, 0, 0, 0, @@ -25199,21 +25126,21 @@ 0, 0, 0, + 0.12365952270619261, + 0.7368826321861208, + 0.9243539544439768, + 0.9598906637684407, + 0.946532038562598, + 0.9719310131207753, + 0.9010707827129776, + 0.8999628743158532, + 0.36161979453243676, + 0.4496272111038665, + 0.2652837702344703, + 0.06766878620714672, 0, 0, 0, - 0.11072840672025852, - 0.6536451705487959, - 0.7585517889377114, - 0.7942639138251067, - 0.7967282444864197, - 0.8035618785450975, - 0.7433806905523401, - 0.7413139876317694, - 0.3157751108010526, - 0.3958637486598352, - 0.23323515295887898, - 0.057481611063041935, 0, 0, 0, @@ -25223,21 +25150,21 @@ 0, 0, 0, + 0.06454642443858033, + 0.11736306402423266, + 0.7236101340646708, + 0.9202935493247192, + 0.9368613745678438, + 0.5519691243992798, + 0.26075868586177364, + 0.6960464436297833, + 0.6828009784935535, + 0.6419866981782129, + 0.13136633249592067, + 0.04105536948638657, 0, 0, 0, - 0.05639903211665296, - 0.10578866071165842, - 0.631339019063846, - 0.7663686664170093, - 0.7810133003214105, - 0.46689628189329907, - 0.22472148290371058, - 0.5754313474920466, - 0.5701691492582422, - 0.5472924392127694, - 0.11457743325253189, - 0.03443071308074854, 0, 0, 0, @@ -25247,21 +25174,21 @@ 0, 0, 0, + 0.05662471417282294, + 0.27285455841851247, + 0.7083295119712865, + 0.7712765605739037, + 0.9336452370104625, + 0.9177237412463292, + 0.9145332459428291, + 0.9107229737446412, + 0.716655843870202, + 0.4019705171379903, + 0.2408839239656389, + 0.13000864056418496, 0, 0, 0, - 0.048716176665855884, - 0.25174369813484576, - 0.6233438921067312, - 0.6571228497304747, - 0.7796223839850452, - 0.7673867052581751, - 0.7561780244249193, - 0.7504941451120813, - 0.6015368787080805, - 0.3529211097656876, - 0.21187771151390722, - 0.10931073260947717, 0, 0, 0, @@ -25271,21 +25198,21 @@ 0, 0, 0, + 0.10162994348479068, + 0.7808689866162448, + 0.9649205493002169, + 1.0057931945321326, + 0.7202582237731029, + 0.6569652264195729, + 0.8222419897969492, + 0.9343245354423176, + 0.999280845217282, + 0.9546963439552995, + 0.6983129345071897, + 0.10978217625274683, 0, 0, 0, - 0.0886726488018443, - 0.6885241901690863, - 0.7963759218920998, - 0.8290753762818202, - 0.611301680695167, - 0.5523507744334056, - 0.6760445625861611, - 0.7568074212838752, - 0.8016730073922669, - 0.7750987711916745, - 0.5790668150978591, - 0.08940973881906528, 0, 0, 0, @@ -25295,21 +25222,21 @@ 0, 0, 0, + 0.15546581595008174, + 0.49329026689831695, + 0.5565250823703021, + 0.6775042034997576, + 0.8220134336491577, + 0.7771148609312263, + 0.6950922180754918, + 0.7798175488838638, + 0.8944011522210095, + 0.7971874848491122, + 0.5113473120419375, + 0.10163034130542932, 0, 0, 0, - 0.13643285257337154, - 0.43622403464769377, - 0.4876942154781906, - 0.5880324212833529, - 0.6930754161029266, - 0.6404149032612819, - 0.585307595142568, - 0.6468658193480769, - 0.7255660605045342, - 0.6656348710357951, - 0.4338969517273896, - 0.08491466996941513, 0, 0, 0, @@ -25319,21 +25246,21 @@ 0, 0, 0, + 0.027853742650075987, + 0.1376674290322013, + 0.3984369744254075, + 0.5474806063222236, + 0.6558645966337966, + 0.6484835328053595, + 0.5893484945023063, + 0.45721363504082524, + 0.43801745933285174, + 0.4694712745704784, + 0.5763106062909445, + 0.09501390827400116, 0, 0, 0, - 0.02325951449641393, - 0.12395603549283742, - 0.3513822402103854, - 0.4638934372467901, - 0.5559917686401546, - 0.5488612818221721, - 0.4885767619905737, - 0.393020242459483, - 0.38184250017149035, - 0.4113930924554798, - 0.49694017747754315, - 0.07888461585475891, 0, 0, 0, @@ -25343,21 +25270,21 @@ 0, 0, 0, + 0.024876702318465213, + 0.17639367552457552, + 0.1891298533299961, + 0.13974544457894336, + 0.23139623540803553, + 0.28415637216152345, + 0.7039936552429243, + 0.566484873355301, + 0.25766566995447765, + 0.14436572983482818, + 0.08487328195846797, + 0.004223258562870392, 0, 0, 0, - 0.0216314886801295, - 0.16725886533865142, - 0.18060320456444043, - 0.13278116982053645, - 0.2198431279197462, - 0.2676549089435235, - 0.638507605855573, - 0.5244749080416418, - 0.24220995747317345, - 0.13547744795714564, - 0.07900008339203544, - 0.0035848196559338115, 0, 0, 0, @@ -25367,21 +25294,21 @@ 0, 0, 0, + 0.1128669370793281, + 0.7718977309305092, + 0.958572600250934, + 0.9734725775332681, + 0.9460717909108164, + 0.9223285613693326, + 0.9327885716327131, + 0.9645505448596754, + 1.0001280600983404, + 0.9846205765057464, + 0.579779157849991, + 0.04627770357033081, 0, 0, 0, - 0.10415783053393246, - 0.681223874986106, - 0.8310894478848233, - 0.8641250268889736, - 0.8331211755993805, - 0.8114640576617574, - 0.8102135212953908, - 0.8317596419211684, - 0.8460960662829095, - 0.8405471980446678, - 0.5131768296048357, - 0.04036009516379293, 0, 0, 0, @@ -25391,21 +25318,21 @@ 0, 0, 0, + 0.11525579714396861, + 0.7850515700329632, + 0.9776542527053542, + 0.972662723145132, + 0.9398260745159884, + 0.9142301380657614, + 0.9229166713971988, + 0.9582100047338418, + 1.00305246015014, + 0.9772402047576492, + 0.6301451284795844, + 0.06217501453246366, 0, 0, 0, - 0.1017679896440207, - 0.6909573626775182, - 0.8007216416006547, - 0.8091068809042189, - 0.7972358286111757, - 0.7788715321947004, - 0.773736151481812, - 0.8007910051175526, - 0.8258097892073865, - 0.8138496120075305, - 0.5359715292477536, - 0.05081241436819912, 0, 0, 0, @@ -25415,21 +25342,21 @@ 0, 0, 0, + 0.0646270288984212, + 0.6136729349774177, + 0.8575175999828705, + 0.8624068947673671, + 0.8670025945271749, + 0.8701619704849267, + 0.8830494716416359, + 0.9121991531993099, + 0.9322431944359411, + 0.9322563481105176, + 0.5365129872969612, + 0.05515374099581472, 0, 0, 0, - 0.056712663403806145, - 0.5529647581183249, - 0.7252393638397476, - 0.7711445323995549, - 0.7545103242306764, - 0.7448581088672572, - 0.7542829542030451, - 0.7690747777476704, - 0.7798230100328493, - 0.7877068828872886, - 0.47276000407973406, - 0.047972084651542554, 0, 0, 0, @@ -25439,21 +25366,21 @@ 0, 0, 0, + 0.08888528321166382, + 0.7135380242442992, + 0.9194290293459727, + 0.9112940734995151, + 0.8892507047991174, + 0.872657011929095, + 0.8788672080710741, + 0.9041368870061353, + 0.9099850895276905, + 0.6999362903742679, + 0.21558178928862895, + 0.0375970195559022, 0, 0, 0, - 0.0814083110902465, - 0.6519673097057276, - 0.8136664705581642, - 0.811871856845034, - 0.7910457555937991, - 0.7652820065932495, - 0.7651761044959926, - 0.7746971510870287, - 0.7810182580160107, - 0.6236202022980832, - 0.1982087347989735, - 0.03245583125143051, 0, 0, 0, @@ -25463,21 +25390,21 @@ 0, 0, 0, + 0.07178928481251096, + 0.5446048898103172, + 0.7778499564682687, + 0.839961629899783, + 0.7436976138380094, + 0.6639798221514778, + 0.43810142105531136, + 0.31766569570391145, + 0.3997554136036403, + 0.8643460666114635, + 0.47766110908031295, + 0.0408436879109765, 0, 0, 0, - 0.06439026888089215, - 0.50162057980909, - 0.6819535478661602, - 0.7343862587490888, - 0.6596351923270456, - 0.5783048254996599, - 0.38519012029565247, - 0.2842564340982927, - 0.3584562973252595, - 0.7328054978931378, - 0.41059954277034433, - 0.03396291744568371, 0, 0, 0, @@ -25487,21 +25414,21 @@ 0, 0, 0, + 0.04212702657504565, + 0.48597048751871424, + 0.7217551392475393, + 0.7953460715596299, + 0.8297837840341294, + 0.8221433490264356, + 0.8358654789869935, + 0.851278011605346, + 0.7731459282281641, + 0.7252366523922069, + 0.4157724233536181, + 0.03830138058630913, 0, 0, 0, - 0.037761031765176, - 0.46160689742509353, - 0.6495615159186233, - 0.7194475182034855, - 0.7385230614489959, - 0.7174374280359501, - 0.7311698542579088, - 0.7430360894240498, - 0.678751023851448, - 0.634113248305879, - 0.3682145928601482, - 0.032323757528281184, 0, 0, 0, @@ -25511,21 +25438,21 @@ 0, 0, 0, + 0.07311241611979763, + 0.6904641110440098, + 0.9294417206002976, + 0.9402580026612509, + 0.9149453739998977, + 0.8913577729440054, + 0.8964471263887486, + 0.9292158060872138, + 0.9548330686893528, + 0.866594806857383, + 0.4589474185104631, + 0.041762220637864104, 0, 0, 0, - 0.06410803909043715, - 0.6116994639967447, - 0.7781031308583048, - 0.7941830971142599, - 0.7758712181507909, - 0.7546651382971679, - 0.7535459801341404, - 0.7709030506848701, - 0.7791299536817343, - 0.7133310928497217, - 0.3919077538653082, - 0.033708066182513215, 0, 0, 0, @@ -25535,21 +25462,21 @@ 0, 0, 0, + 0.05520833761448197, + 0.6339032150895096, + 0.8660316107500471, + 0.8828377007384778, + 0.8829612537377005, + 0.8681022188167269, + 0.8439111070866284, + 0.8998104236983439, + 0.9779956141693391, + 0.8785791265885974, + 0.4527383948014807, + 0.03876547289197195, 0, 0, 0, - 0.04706751459094598, - 0.576167753598395, - 0.7654063200569017, - 0.778890877682927, - 0.7694007705899208, - 0.7421525805992186, - 0.7297502326471775, - 0.7844121996147567, - 0.8377811506685306, - 0.7660363066862089, - 0.396633790445762, - 0.0323641920632467, 0, 0, 0, @@ -25559,21 +25486,21 @@ 0, 0, 0, + 0.05615439266565099, + 0.6127696004153832, + 0.9006874711886501, + 0.9241982928613443, + 0.9016744972087953, + 0.8775705255151554, + 0.888720618379245, + 0.9230514444122555, + 0.9285490734479096, + 0.856665119463942, + 0.4447426460867063, + 0.031587174578856236, 0, 0, 0, - 0.04872570353075385, - 0.5486884274172572, - 0.7508044153678046, - 0.7686227587655283, - 0.7498886787241285, - 0.729093360317538, - 0.7285920366405213, - 0.7611215747527622, - 0.7629929917879748, - 0.7098437844590925, - 0.3757336761886791, - 0.02505847944312913, 0, 0, 0, @@ -25583,21 +25510,21 @@ 0, 0, 0, + 0.05086006790632514, + 0.5921670496971332, + 0.8805624591733551, + 0.9106208288257058, + 0.8815122964096928, + 0.8530241108635901, + 0.8527717872261757, + 0.8667203583663138, + 0.857076183100289, + 0.7553168629680838, + 0.3526401659579408, + 0.025119227744912716, 0, 0, 0, - 0.043785945039903997, - 0.5215219765876548, - 0.7058415195919432, - 0.7475022853615564, - 0.7444146718730746, - 0.7238910516540162, - 0.7148928512530764, - 0.7139245880045538, - 0.7049059420364858, - 0.6309973980042823, - 0.3007104045495616, - 0.01998587502873539, 0, 0, 0, @@ -25607,21 +25534,21 @@ 0, 0, 0, + 0.04249108782890418, + 0.5594905699046429, + 0.8001934672656481, + 0.8841340116672661, + 0.8721298073533071, + 0.8442307757366317, + 0.8444961064260884, + 0.8553998402735824, + 0.8489151373778189, + 0.7409151835120814, + 0.3302707851390306, + 0.023059492400114453, 0, 0, 0, - 0.03702523735090867, - 0.49045947218795527, - 0.6870345270687107, - 0.7292925733598117, - 0.7285292045485475, - 0.7089375339430727, - 0.7086819786459072, - 0.7129345735472314, - 0.7066277536081584, - 0.6243848602122604, - 0.283052294609076, - 0.01803273945094659, 0, 0, 0, @@ -25631,21 +25558,21 @@ 0, 0, 0, + 0.02027014892881242, + 0.29580933429712714, + 0.7131374237123784, + 0.8704509378944307, + 0.7835450830529334, + 0.8641148209980247, + 0.851436813137672, + 0.5647689185036144, + 0.874743597200733, + 0.40974984784710833, + 0.11784190014792949, + 0.012611995702508632, 0, 0, 0, - 0.016710142712747456, - 0.2727739240299173, - 0.6291339723526151, - 0.7331705374373542, - 0.6661074299675945, - 0.7162745182192604, - 0.7004994100189258, - 0.49308069018175277, - 0.7285939770285742, - 0.3600179227618381, - 0.10243348453379976, - 0.009684845643334841, 0, 0, 0, @@ -25655,21 +25582,21 @@ 0, 0, 0, + 0.02055952908142793, + 0.09062548847953242, + 0.7023416179220612, + 0.8857970270798219, + 0.8541323501842519, + 0.8314072024898673, + 0.8529740865853168, + 0.8648679069925437, + 0.886494812610305, + 0.49544021906125807, + 0.3236431273856141, + 0.0156387448914508, 0, 0, 0, - 0.01721204099655992, - 0.08241259226309758, - 0.6170134586787264, - 0.7561066484473632, - 0.7224066293480963, - 0.6895823764873047, - 0.7139289345177159, - 0.7226745268042862, - 0.736591281079697, - 0.4352414503512906, - 0.279881488977508, - 0.012080722632482499, 0, 0, 0, @@ -25679,21 +25606,21 @@ 0, 0, 0, + 0.04317877703900446, + 0.620189936903577, + 0.8892953798505876, + 0.8793474037269612, + 0.8663329421533501, + 0.7498775135691798, + 0.7876334290527988, + 0.7119366199016003, + 0.6182539640153579, + 0.9296354652247292, + 0.410305854913445, + 0.01563411964075072, 0, 0, 0, - 0.036541587491388895, - 0.5389197664656868, - 0.7692537458588846, - 0.7834373928767628, - 0.7655062937859397, - 0.6717727822279977, - 0.7073408324290297, - 0.679041642812913, - 0.6000427728854937, - 0.8882253986475236, - 0.38066140242330787, - 0.012968660847536203, 0, 0, 0, @@ -25703,21 +25630,21 @@ 0, 0, 0, + 0.04768399556217429, + 0.6256404903487816, + 0.9224123627437858, + 0.9287220262554622, + 0.8070901019965718, + 0.773242663959624, + 0.9306280536782895, + 0.9157546238605807, + 0.9706095365112692, + 0.9330917715735473, + 0.43811107926461385, + 0.016434480032727794, 0, 0, 0, - 0.04124336774966258, - 0.5701156588254892, - 0.8299231581156101, - 0.8430608196990325, - 0.7304457625571443, - 0.7012412281866086, - 0.8232143617518921, - 0.8124997841695112, - 0.8546769394377959, - 0.8248356562426631, - 0.38310015563017846, - 0.01271465355670573, 0, 0, 0, @@ -25727,21 +25654,21 @@ 0, 0, 0, + 0.04003100196157552, + 0.6146985220097221, + 0.9261609628356894, + 0.8798791170811752, + 0.8554808925780093, + 0.8292187911665183, + 0.8460549437243812, + 0.6447840709518577, + 0.846652375261969, + 0.9135171979763185, + 0.41493816123101934, + 0.013503942900256707, 0, 0, 0, - 0.03425657718965423, - 0.5472861374611844, - 0.8014685945250108, - 0.7719315664982956, - 0.7369226158289773, - 0.7192102557427961, - 0.7229518377304285, - 0.5600945293778052, - 0.7133501849767633, - 0.7463090561220801, - 0.3458623519737448, - 0.010188453715337697, 0, 0, 0, @@ -25751,21 +25678,21 @@ 0, 0, 0, + 0.006150750210023159, + 0.08715744087924457, + 0.5953639068013109, + 0.5212932855886608, + 0.9345411173161373, + 0.8438141316055404, + 0.8520804727348232, + 0.8762074219532245, + 0.8759343438977655, + 0.6419557606003861, + 0.1560918056172233, + 0.007674373082804486, 0, 0, 0, - 0.0046365237672197, - 0.0778995020045535, - 0.530917147458413, - 0.46225769110605136, - 0.7748197966085013, - 0.713663328783533, - 0.7085107261219801, - 0.7663748551652636, - 0.7748091696524794, - 0.5860679568448017, - 0.14257085570743958, - 0.006110534950498156, 0, 0, 0, @@ -25775,21 +25702,21 @@ 0, 0, 0, + 0.028438185483462816, + 0.5253651915005895, + 0.7902846650034892, + 0.767853952602128, + 0.7172827559263193, + 0.709008377729732, + 0.784585148932392, + 0.7563030637686401, + 0.8480492191306818, + 0.8322652676279186, + 0.28367236630499265, + 0.008759210233247354, 0, 0, 0, - 0.025676996747403764, - 0.49436443822431014, - 0.727209672744886, - 0.7082282413206141, - 0.653240751833858, - 0.6519437490325758, - 0.708285448540046, - 0.6778938247912162, - 0.7475842424944328, - 0.7397886920493145, - 0.2619524704265276, - 0.007183057049973212, 0, 0, 0, @@ -25799,21 +25726,21 @@ 0, 0, 0, + 0.033577371390835324, + 0.33192817446935735, + 0.8360944215250297, + 0.7919396484816571, + 0.7063724557531508, + 0.7670733685579629, + 0.7382742550058599, + 0.8839479944718703, + 0.5484207456512653, + 0.4319420206885202, + 0.37750993522006304, + 0.02201126186001296, 0, 0, 0, - 0.030718066616424913, - 0.3177913437553873, - 0.7640437432208638, - 0.7129877791340878, - 0.6335063181323316, - 0.6869167511840547, - 0.6518487768835324, - 0.7696397288798142, - 0.489083308448815, - 0.38472234432391106, - 0.326971379642433, - 0.017552920335929915, 0, 0, 0, @@ -25823,21 +25750,21 @@ 0, 0, 0, + 0.032178680004890645, + 0.446643832098789, + 0.3596371203446453, + 0.4117621099130536, + 0.415830492350275, + 0.37966355147427566, + 0.32961858787453263, + 0.29512506001293853, + 0.20333739902502865, + 0.7443722613588841, + 0.4158865934910668, + 0.014741228762325843, 0, 0, 0, - 0.027229885906901997, - 0.4094879690236307, - 0.33323314411281074, - 0.3745455795918158, - 0.3757349634204949, - 0.3492479425417733, - 0.3014616245694678, - 0.26605937441199623, - 0.18502906393187663, - 0.6584368242884024, - 0.3612414370780329, - 0.01166169749761094, 0, 0, 0, @@ -25847,21 +25774,21 @@ 0, 0, 0, + 0.0015875605355344844, + 0.014291585951539924, + 0.039587131661506535, + 0.10294419883652299, + 0.1457305638628886, + 0.17750768998561445, + 0.2552886930341042, + 0.6064336178400392, + 0.7930893227337037, + 0.47279617709322336, + 0.2893025203997613, + 0.010547794639483531, 0, 0, 0, - 0.0012572892274686932, - 0.013071892610106762, - 0.03762029056955954, - 0.09911035181513393, - 0.14043625116576539, - 0.17070934301427945, - 0.24519821567466477, - 0.559930691776845, - 0.7122013074133994, - 0.44307567045559715, - 0.26509067300231487, - 0.008673585863217809, 0, 0, 0, @@ -25871,21 +25798,21 @@ 0, 0, 0, + 0.008250955513233968, + 0.12564045147500616, + 0.37243208305457814, + 0.2914648038308192, + 0.38228650470738557, + 0.3931381988887691, + 0.5835402343031448, + 0.5277653341464279, + 0.3479088124664141, + 0.41781291468703924, + 0.321281751933267, + 0.014546614746787633, 0, 0, 0, - 0.00667518764633551, - 0.11674144493011741, - 0.34148906647911403, - 0.2643087097872783, - 0.3423477621189494, - 0.35377349472337377, - 0.5188047540418973, - 0.4830478024805531, - 0.3220094481500237, - 0.38090701997873655, - 0.289988407448483, - 0.011849960737948214, 0, 0, 0, @@ -25895,21 +25822,21 @@ 0, 0, 0, + 0.02014680456995202, + 0.06885408311830876, + 0.10016970048981937, + 0.19643002155138575, + 0.3655215767413736, + 0.4131199187551789, + 0.23866897915914886, + 0.34777026336718503, + 0.4573963862101073, + 0.4177732579798045, + 0.16896032884177734, + 0.007948664778905469, 0, 0, 0, - 0.01680691344011266, - 0.06246571616887191, - 0.09093189880727695, - 0.17868093953496253, - 0.33318049344313627, - 0.3727632540067931, - 0.21731544574683143, - 0.31869427034146797, - 0.424266616098705, - 0.3890254694286628, - 0.1557710476913895, - 0.00630582126372139, 0, 0, 0, @@ -25919,21 +25846,21 @@ 0, 0, 0, + 0.005854097566498234, + 0.10988902474122424, + 0.17511251058635208, + 0.3047097778995001, + 0.7162817064288494, + 0.6418267064457255, + 0.6933217747693878, + 0.824143274840304, + 0.8698843350930573, + 0.8857994234480314, + 0.29622420044771836, + 0.01041696929717051, 0, 0, 0, - 0.004774689374980238, - 0.10520227988643593, - 0.1674099790809434, - 0.28740388244622156, - 0.6378887498885398, - 0.5704323564342932, - 0.6094229631082483, - 0.7118211730216129, - 0.7514802068549518, - 0.7387510104296251, - 0.25401574034997326, - 0.00796589270515015, 0, 0, 0, @@ -25943,20 +25870,20 @@ 0, 0, 0, + 0.00233160492713685, + 0.011685155084911341, + 0.029233160734109483, + 0.04509511728165015, + 0.11294027514981571, + 0.10524347234013626, + 0.08499942149917922, + 0.057843808840225615, + 0.05038111988576973, + 0.022181843884722816, + 0.00624081310420807, 0, 0, 0, - 0.00188338180022386, - 0.010785453582069898, - 0.027588177340516207, - 0.042848098482824934, - 0.10851687017850166, - 0.10088941743076132, - 0.08134871470235126, - 0.054947109723454644, - 0.04749007539876739, - 0.020491548292340334, - 0.005692939025181405, 0, 0, 0, @@ -25967,21 +25894,21 @@ 0, 0, 0, + 0.0013617576253962581, + 0.025602445276425943, + 0.05881136526688153, + 0.1230977091127826, + 0.15924309980396317, + 0.28767545830527497, + 0.2468220163734584, + 0.23361345083755813, + 0.28534474664940046, + 0.19954799307934643, + 0.050877968853908, + 0.002452534256627878, 0, 0, 0, - 0.0011225994260213408, - 0.025040335696299067, - 0.05774072804884289, - 0.12017883599123652, - 0.15466542680210568, - 0.27734542601003986, - 0.23706385719295447, - 0.22508842185783906, - 0.27565263213668373, - 0.19332241573776276, - 0.04877212611760718, - 0.00200279929316852, 0, 0, 0, @@ -25991,21 +25918,21 @@ 0, 0, 0, + 0.00844632298438426, + 0.15775423380900508, + 0.5064359199529113, + 0.713094441539326, + 0.7800403101576765, + 0.5998622750469674, + 0.683529556412246, + 0.6875718589914469, + 0.6207248778366323, + 0.13637900088393182, + 0.055688314850442705, + 0.004100775863061899, 0, 0, 0, - 0.00712407360294241, - 0.15302670091274503, - 0.4813858143865888, - 0.6539562126847215, - 0.6829473721121665, - 0.5443776479377537, - 0.6166295636723474, - 0.6210391881933212, - 0.5774241190104197, - 0.1286935220198146, - 0.05102268939820135, - 0.0032540876093712025, 0, 0, 0, @@ -26015,20 +25942,20 @@ 0, 0, 0, + 0.002443649026368051, + 0.029946863219555104, + 0.08156712153455885, + 0.13987837719836604, + 0.1836253211071523, + 0.3107245607659103, + 0.26884624830710974, + 0.2020750410122416, + 0.14735926018133433, + 0.08817764592425488, + 0.021035480433359437, 0, 0, 0, - 0.002132466160821532, - 0.03215645935427858, - 0.08963043632080943, - 0.15409635890288692, - 0.20323623351743184, - 0.3397678442654202, - 0.2954836479990279, - 0.22493646058109054, - 0.16458172164437176, - 0.09808051220791075, - 0.023589422590896237, 0, 0, 0, @@ -26039,21 +25966,21 @@ 0, 0, 0, + 0.0051435919126361805, + 0.09010507957591479, + 0.2648753826328945, + 0.4014648661480985, + 0.5819991882953724, + 0.5515205698937337, + 0.6180341855685214, + 0.5802582884757613, + 0.6053355219949722, + 0.7466230514822684, + 0.16761936750202205, + 0.0036367632378833128, 0, 0, 0, - 0.004827478728307379, - 0.10523138337692535, - 0.3062463674503461, - 0.4588166758606412, - 0.6590790057236785, - 0.6326597185005147, - 0.6921871574381518, - 0.6385590152972108, - 0.6475590528292341, - 0.7276732905455654, - 0.16348896787110517, - 0.003196293711834171, 0, 0, 0, @@ -26063,21 +25990,21 @@ 0, 0, 0, + 0.010936631592028397, + 0.43308109884511176, + 0.8685988262995034, + 0.8853911621566706, + 0.8417788988726099, + 0.7987213915451657, + 0.8152207283878032, + 0.8752541570987363, + 0.929885708967529, + 0.8398126116998224, + 0.17919179516418207, + 0.0031392320058985347, 0, 0, 0, - 0.009819068597145673, - 0.4194204743478495, - 0.856058736999843, - 0.8939138063822197, - 0.8464864386256427, - 0.8120167377421084, - 0.8113834257467765, - 0.8372387625536123, - 0.8520637505748145, - 0.7509720296904099, - 0.16576199250597598, - 0.0025194775313792913, 0, 0, 0, @@ -26087,21 +26014,21 @@ 0, 0, 0, + 0.005557510003109041, + 0.4170172538127317, + 0.8087692490823895, + 0.8177219068716045, + 0.7721180380019825, + 0.7438127423430624, + 0.7605349935648232, + 0.8108985420679116, + 0.861310662524305, + 0.7760452549149983, + 0.1595787705226623, + 0.003488972114611505, 0, 0, 0, - 0.004604917285507116, - 0.39411229697109196, - 0.763972460741758, - 0.7567715527349329, - 0.7242972573644926, - 0.6890949873414568, - 0.7055860670978124, - 0.7418056208812467, - 0.7727457807700818, - 0.7055446846176454, - 0.1444419563120365, - 0.002700133905078698, 0, 0, 0, @@ -26111,21 +26038,21 @@ 0, 0, 0, + 0.008156543666753854, + 0.4071524449911515, + 0.8286244129107809, + 0.8335421759590919, + 0.7722223762787491, + 0.7407706870353596, + 0.762868051936498, + 0.8184378723361916, + 0.8744565444698825, + 0.7816214233834698, + 0.15510063116836403, + 0.0024423016537090435, 0, 0, 0, - 0.006739881685677571, - 0.37759116336437304, - 0.7294425113591585, - 0.7348441750396881, - 0.6804867813834271, - 0.6490012212501418, - 0.6542777460810475, - 0.6986081666498768, - 0.7427474833352895, - 0.654132097763032, - 0.13310095368967645, - 0.0018979923646822768, 0, 0, 0, @@ -26135,21 +26062,21 @@ 0, 0, 0, + 0.0066485786429231605, + 0.4050292348561987, + 0.8260973512597487, + 0.828197866660565, + 0.7792324291842754, + 0.7473059472447369, + 0.767657867908086, + 0.8245648975253443, + 0.8822311759277978, + 0.7738879716798616, + 0.14101376572980803, + 0.002266668064738435, 0, 0, 0, - 0.00523473210666335, - 0.3678273184064539, - 0.7220619991557343, - 0.7239742328679644, - 0.6894220267276346, - 0.6549120057815959, - 0.6634504448824436, - 0.7027574842480298, - 0.7528966204582958, - 0.6680859156792684, - 0.12074912120118286, - 0.0017581517570239723, 0, 0, 0, @@ -26159,20 +26086,20 @@ 0, 0, 0, + 0.006244333512108578, + 0.37914144887752865, + 0.8089830509873457, + 0.8171342464419455, + 0.7504421691580824, + 0.7224777458356813, + 0.7315971599416502, + 0.7855601927290806, + 0.825317239284316, + 0.6939416904718193, + 0.11925886697449829, 0, 0, 0, - 0.004885188618902706, - 0.3399580332214236, - 0.6992050127653131, - 0.7307011278406512, - 0.6826910613551498, - 0.655712644948373, - 0.6673738986038111, - 0.7118573300261457, - 0.7421087036370977, - 0.621128259920955, - 0.106366596961642, 0, 0, 0, @@ -26183,20 +26110,20 @@ 0, 0, 0, + 0.005509479294763438, + 0.3715921112376393, + 0.8188732401276562, + 0.827403371464969, + 0.7760149216463383, + 0.7398727891642568, + 0.759331184624511, + 0.8123712817120045, + 0.8396583161708253, + 0.712208668018614, + 0.11555749975676806, 0, 0, 0, - 0.004413329579705938, - 0.33986075159122553, - 0.7280375530964242, - 0.7257657375158553, - 0.6614390597978128, - 0.6440985451912763, - 0.6535515232779717, - 0.7001677138610449, - 0.7437744845583238, - 0.6333898419432609, - 0.10092300049856043, 0, 0, 0, @@ -26207,20 +26134,20 @@ 0, 0, 0, + 0.004585045004575675, + 0.3618482424853778, + 0.8107614871955059, + 0.8222946890038566, + 0.7674683239716524, + 0.731658074999532, + 0.7532134038850774, + 0.8135577482891257, + 0.8674693209696869, + 0.723431669911428, + 0.11409833486589147, 0, 0, 0, - 0.003453612011639185, - 0.3268575517437113, - 0.7152741906729869, - 0.7040603987800881, - 0.6614416892552386, - 0.6251435947619577, - 0.6480306575839883, - 0.6850282553469389, - 0.7327711263452422, - 0.6051359109172127, - 0.09572741026031022, 0, 0, 0, @@ -26231,20 +26158,20 @@ 0, 0, 0, + 0.002114687120574755, + 0.05378748808168106, + 0.30364887052330597, + 0.7960683733759784, + 0.7236949687183328, + 0.6314875310509105, + 0.6608332678723077, + 0.5659282018257109, + 0.6715135690777835, + 0.6034446631471676, + 0.041500619965819906, 0, 0, 0, - 0.0015216875097192814, - 0.048421150252041655, - 0.28278222222671406, - 0.6732322976148659, - 0.6135338814970006, - 0.5417082631664778, - 0.5657422285462259, - 0.4871733053705684, - 0.5708409900670934, - 0.5162270143999668, - 0.03457448502633757, 0, 0, 0, @@ -26255,20 +26182,20 @@ 0, 0, 0, + 0.0028179509133655347, + 0.29237170573346494, + 0.7307001615188332, + 0.7523231685306248, + 0.7193765886403997, + 0.6920450241566215, + 0.7137285755617794, + 0.7703472671419748, + 0.8230029074367976, + 0.6723632632893873, + 0.10063281741356463, 0, 0, 0, - 0.002041071612447389, - 0.2638971246413432, - 0.6541673338524825, - 0.6626421842034314, - 0.6239266706416572, - 0.6084512047676194, - 0.6275602304147898, - 0.6793690493183154, - 0.7297223679507648, - 0.5995157155866083, - 0.0863688648821892, 0, 0, 0, @@ -26279,20 +26206,20 @@ 0, 0, 0, + 0.0024888500761872856, + 0.29269038802698644, + 0.7660244655624258, + 0.7922380595257976, + 0.7429814834203109, + 0.7092670567254203, + 0.7292777735208438, + 0.7880585827102905, + 0.8370830589907041, + 0.6734980272327072, + 0.09552094673675757, 0, 0, 0, - 0.0019014317458041555, - 0.2573874185708843, - 0.6769396409362421, - 0.6837106779093068, - 0.6476548677553372, - 0.6126744082552918, - 0.6238480881121572, - 0.6752535529528848, - 0.7153619035804821, - 0.573032369327935, - 0.07977852606909105, 0, 0, 0, @@ -26303,20 +26230,20 @@ 0, 0, 0, + 0.0034960298942461826, + 0.26113264626100147, + 0.43626178432746415, + 0.6662198670220116, + 0.6330864873680832, + 0.5925445245453346, + 0.3632828255973904, + 0.32154274064285143, + 0.21870723634886555, + 0.13298813757583744, + 0.024343889372278278, 0, 0, 0, - 0.002761799173299705, - 0.23352042958062438, - 0.391857446394401, - 0.572263337651237, - 0.5533782169390962, - 0.5169272894060769, - 0.3258568895161121, - 0.2907422876431824, - 0.19820570029877302, - 0.11942136018316235, - 0.020504298163428837, 0, 0, 0, @@ -26328,19 +26255,19 @@ 0, 0, 0, + 0.041620153491419426, + 0.10339740454117277, + 0.11513101069951359, + 0.18976190628790313, + 0.5833645757960835, + 0.3377336834226588, + 0.36637238497212027, + 0.5372874929313778, + 0.46690323192792715, + 0.03328519522028405, 0, 0, 0, - 0.03725467865465198, - 0.09519399110080634, - 0.10566319084472528, - 0.17439551252421615, - 0.5152807850295252, - 0.30588270335152196, - 0.33086318880734034, - 0.48199361096072185, - 0.41747444903010966, - 0.027804659279024903, 0, 0, 0, @@ -26351,20 +26278,20 @@ 0, 0, 0, + 0.0013991652906731353, + 0.26722857808048023, + 0.7647611632721152, + 0.7944623575186193, + 0.7378045308861447, + 0.7002550783182782, + 0.7214982355782322, + 0.7806547309357416, + 0.8336307661123239, + 0.6537923927940004, + 0.07268864288604274, 0, 0, 0, - 0.0010785972731970136, - 0.24758069137485642, - 0.7011928685019824, - 0.7276207689191476, - 0.6685300749741254, - 0.6290606425353106, - 0.6418441719647376, - 0.7073292916936528, - 0.7595378721514561, - 0.5881859272674078, - 0.06334057029363001, 0, 0, 0, @@ -26376,19 +26303,19 @@ 0, 0, 0, + 0.009890558917102525, + 0.0394256215347629, + 0.13140987044760163, + 0.10993927719073084, + 0.05305264821115273, + 0.05992134597187054, + 0.03945615848013125, + 0.06757868036022481, + 0.03054144418286207, + 0.011105892584000923, 0, 0, 0, - 0.00897401327527965, - 0.03782030648249938, - 0.12778883272575597, - 0.10632737958326824, - 0.050642504093615544, - 0.05871943875374865, - 0.03808023679224089, - 0.07017431862473518, - 0.03246863443195055, - 0.011391723547242069, 0, 0, 0, @@ -26399,20 +26326,20 @@ 0, 0, 0, + 0.0014920163479020558, + 0.2511252986371377, + 0.7575040633198197, + 0.7865531181161634, + 0.7313986753893998, + 0.7042422990569741, + 0.7125440422137007, + 0.774723966436257, + 0.8288847393573557, + 0.5428006906676593, + 0.08012977079349784, 0, 0, 0, - 0.0012373595282774324, - 0.23675766919089605, - 0.7269221712290481, - 0.7831652808716552, - 0.6993722074320545, - 0.6620415442618128, - 0.6695944834530143, - 0.7318093619262815, - 0.7720790833245994, - 0.5143464836354433, - 0.07470019586459792, 0, 0, 0, @@ -26423,20 +26350,20 @@ 0, 0, 0, + 0.001278868455172352, + 0.24375035586356017, + 0.7577893768819626, + 0.7880074907402933, + 0.7305027075289253, + 0.691804123551572, + 0.7099023585984837, + 0.7684055398977147, + 0.8207426978450401, + 0.6174306181177083, + 0.07169965128121586, 0, 0, 0, - 0.0010740063158408185, - 0.22892293199359837, - 0.7103239767376963, - 0.7313429978976658, - 0.6822545525457051, - 0.6316009557692764, - 0.6436526251209093, - 0.6979417163659396, - 0.7440180822762619, - 0.5607589086149961, - 0.06393246005197356, 0, 0, 0, @@ -26447,20 +26374,20 @@ 0, 0, 0, + 0.0011979833190118097, + 0.19251020931886081, + 0.6876734965129869, + 0.7241024515074145, + 0.7121974561459381, + 0.6741197920539943, + 0.7066530833542954, + 0.7631651643827826, + 0.8147734511808785, + 0.6016898727812721, + 0.0669302199216472, 0, 0, 0, - 0.0009914921570103557, - 0.18092559925471266, - 0.6603161034388418, - 0.6908358240784856, - 0.6737268555988578, - 0.6297350016241144, - 0.6553611720297092, - 0.7029487863663891, - 0.746840572322399, - 0.5582237016323434, - 0.059665222208690555, 0, 0, 0, @@ -26472,19 +26399,19 @@ 0, 0, 0, + 0.21863622959785262, + 0.7385025560183313, + 0.7723637429507509, + 0.7234536519250153, + 0.6803482572208752, + 0.6984161003594886, + 0.7647650127608343, + 0.8243650645404502, + 0.6000144066990512, + 0.06094423975320451, 0, 0, 0, - 0.2021943028138111, - 0.6927314927395813, - 0.706309036952718, - 0.6407147750090562, - 0.6143521366919784, - 0.6426602217253127, - 0.6919026841999872, - 0.7136384024857424, - 0.5461591780126592, - 0.05276017786972941, 0, 0, 0, @@ -26496,19 +26423,19 @@ 0, 0, 0, + 0.19536801394326594, + 0.5106529088637181, + 0.06484187233772133, + 0.517703956725182, + 0.6488651400229402, + 0.6798769778297657, + 0.45328666135976586, + 0.400859712552691, + 0.08825165936491786, + 0.01843310250769645, 0, 0, 0, - 0.18455801273055802, - 0.49723680414608956, - 0.06597497700118728, - 0.5033729736844784, - 0.6199115303200872, - 0.6515345743109524, - 0.4396433040285974, - 0.39145451648343604, - 0.08559362095115633, - 0.01689888417698611, 0, 0, 0, @@ -26520,19 +26447,19 @@ 0, 0, 0, + 0.16590850308727048, + 0.7119301319485251, + 0.7438418607133834, + 0.6921731818702686, + 0.6543351396774838, + 0.6705293839556882, + 0.7394705481461541, + 0.8033094162280613, + 0.6489228205796616, + 0.06923972490369676, 0, 0, 0, - 0.15402921524951152, - 0.67093687361943, - 0.6856204655904963, - 0.6336155054833921, - 0.5898852125302908, - 0.606684994516816, - 0.6664118661547327, - 0.7158505517370016, - 0.5678947558352786, - 0.060129639450636214, 0, 0, 0, @@ -26543,20 +26470,20 @@ 0, 0, 0, + 0.001403853242191877, + 0.20366617874884152, + 0.4943942507708283, + 0.45039484791600054, + 0.5991197400623902, + 0.5805461801327512, + 0.6894778181894186, + 0.7514700239658807, + 0.7703685577802001, + 0.5615888776260652, + 0.056628950331857025, 0, 0, 0, - 0.001107685202206656, - 0.18935077174672366, - 0.46077092293379135, - 0.42001320930694996, - 0.5361992742743554, - 0.5152591201499523, - 0.594824430681657, - 0.6283299088557608, - 0.6682785304928649, - 0.48408905170969724, - 0.04754584786996039, 0, 0, 0, @@ -26568,19 +26495,19 @@ 0, 0, 0, + 0.15752405672785438, + 0.5725594643859093, + 0.753669093568893, + 0.7035366435328294, + 0.6709756205658847, + 0.6907654122601791, + 0.7540592113365874, + 0.8063354922060948, + 0.5706805853397677, + 0.05142557993822208, 0, 0, 0, - 0.1432826378210017, - 0.5204276383351604, - 0.639096881780655, - 0.6008381433788077, - 0.572462144447564, - 0.5844467774520685, - 0.6426682801989888, - 0.6825130620535879, - 0.48024393276909527, - 0.04235989942742985, 0, 0, 0, @@ -26592,19 +26519,19 @@ 0, 0, 0, + 0.03235313397523355, + 0.16557309220229097, + 0.1404095599198207, + 0.16965242102174455, + 0.3370771096064709, + 0.35625859705807045, + 0.44419482597768967, + 0.6841622332298616, + 0.42499411608632837, + 0.05191564842107315, 0, 0, 0, - 0.028138324509092615, - 0.1539503348166008, - 0.12824242031124047, - 0.154836434193288, - 0.29990570562683905, - 0.31934096130810674, - 0.3977195043823139, - 0.589160411185253, - 0.3697597441936714, - 0.04358953142856621, 0, 0, 0, @@ -26616,19 +26543,19 @@ 0, 0, 0, + 0.13808903205870227, + 0.6854283034090685, + 0.7342175991193081, + 0.674962282869916, + 0.635097896521877, + 0.649137433863976, + 0.7054474918651715, + 0.7540876011921622, + 0.5130912658219194, + 0.04656650841140723, 0, 0, 0, - 0.1252057132264762, - 0.6068286840134552, - 0.6490284977372687, - 0.6018660794143147, - 0.5575812755798332, - 0.5723936484605444, - 0.6217395332449037, - 0.668547363144038, - 0.4556414583908861, - 0.039608280273407265, 0, 0, 0, @@ -26640,19 +26567,19 @@ 0, 0, 0, + 0.11588419102132586, + 0.6243769892984599, + 0.691666169644682, + 0.649417467443485, + 0.6154116825359884, + 0.6363064686440839, + 0.6142232199216096, + 0.30349339021935007, + 0.15783490825682378, + 0.016376881812176766, 0, 0, 0, - 0.10755777138768585, - 0.5717626878829075, - 0.640229147108193, - 0.5942509815583876, - 0.555436033121075, - 0.5744375333295658, - 0.5632812442642593, - 0.28801948266376276, - 0.14911379914805747, - 0.014162294772462732, 0, 0, 0, @@ -26664,19 +26591,19 @@ 0, 0, 0, + 0.056330400730249836, + 0.6376435357432508, + 0.7061025705179081, + 0.5937637801844249, + 0.2458139890102509, + 0.5195743133716417, + 0.5612591051266579, + 0.7582987351807159, + 0.3540736171592867, + 0.04408482894462882, 0, 0, 0, - 0.052417044572832944, - 0.5872273714088134, - 0.6426040358160383, - 0.5461151246431201, - 0.23411056634022803, - 0.4768250164490272, - 0.51448186653545, - 0.6755381621921276, - 0.3273024767617359, - 0.03937628999245722, 0, 0, 0, @@ -26688,19 +26615,19 @@ 0, 0, 0, + 0.11255027959652471, + 0.6803592986676679, + 0.7443826050141612, + 0.6870041005521843, + 0.6416794335951286, + 0.6638959837426657, + 0.6964998665734455, + 0.6920286547766152, + 0.5139029645927055, + 0.03175330666729661, 0, 0, 0, - 0.10523866149662549, - 0.6430373414442516, - 0.6851147010095607, - 0.6440333149405333, - 0.5994799838327836, - 0.6127166220237114, - 0.6367615849094677, - 0.634866618155287, - 0.4723420412192216, - 0.02819982118355179, 0, 0, 0, @@ -26712,19 +26639,19 @@ 0, 0, 0, + 0.01631667143887221, + 0.11272625762485657, + 0.5136909577852025, + 0.664218430741118, + 0.5997733092993168, + 0.6374865671277816, + 0.6864070863654352, + 0.6989297782278489, + 0.46243974094656987, + 0.03386228912896886, 0, 0, 0, - 0.014241264293485776, - 0.10651695636781168, - 0.4666761588212227, - 0.5930062730129707, - 0.536933150240996, - 0.5703330719423699, - 0.6119294491303606, - 0.6205304310495171, - 0.4159163065545013, - 0.028803190975176536, 0, 0, 0, @@ -26736,19 +26663,19 @@ 0, 0, 0, + 0.0245543755470838, + 0.04933968533180963, + 0.07225664140296664, + 0.14948903099325794, + 0.2619940692433269, + 0.423186747924767, + 0.681638201524733, + 0.761972622865741, + 0.47438339486285064, + 0.03690949457046078, 0, 0, 0, - 0.02808925047662674, - 0.04772494073963257, - 0.07024750649172012, - 0.14571928101687284, - 0.25479179180379247, - 0.4796158848144352, - 0.6771206018819059, - 0.7367703982118023, - 0.44039053319458255, - 0.034785891915420565, 0, 0, 0, @@ -26760,19 +26687,19 @@ 0, 0, 0, + 0.09305004894688072, + 0.6757823573293714, + 0.752347361061839, + 0.6929923073501503, + 0.6436017112597178, + 0.663648986823673, + 0.7250091510402185, + 0.7789422972927188, + 0.5143133965287652, + 0.035810044315065896, 0, 0, 0, - 0.08730736057364333, - 0.6431631827706696, - 0.7244749268654246, - 0.675951978810115, - 0.6375506128520833, - 0.6378359132778112, - 0.6820998990504117, - 0.706861522143271, - 0.4586114985530907, - 0.03202829804122676, 0, 0, 0, @@ -26784,19 +26711,19 @@ 0, 0, 0, + 0.07677231424858674, + 0.6279506839742014, + 0.7130569968411341, + 0.6761677625555442, + 0.6405986060011182, + 0.630513701502628, + 0.7069765896883277, + 0.7445101501972909, + 0.4420070038417273, + 0.04884175095340307, 0, 0, 0, - 0.07181424177799775, - 0.5900998202264711, - 0.6924807270222803, - 0.678673494484063, - 0.6589753854566882, - 0.6364209340663544, - 0.6757077945529476, - 0.712691527972929, - 0.41847037541297116, - 0.04647184867766402, 0, 0, 0, @@ -26808,19 +26735,19 @@ 0, 0, 0, + 0.07145067441542062, + 0.618117783096044, + 0.7260296710224633, + 0.6724931374551195, + 0.6232326252332, + 0.6461447365408796, + 0.7124584986336583, + 0.7665727773449093, + 0.49567178105387133, + 0.03497525822606644, 0, 0, 0, - 0.0672312870793968, - 0.5992622767262492, - 0.7110008014284286, - 0.6653902537030405, - 0.6303697428014655, - 0.6301387174926883, - 0.6795757853457536, - 0.722293456882818, - 0.45872221558574494, - 0.03149147297381217, 0, 0, 0, @@ -26832,19 +26759,19 @@ 0, 0, 0, + 0.07165089643878461, + 0.6295554081606106, + 0.7312988693102171, + 0.6756689893933734, + 0.6245425782843574, + 0.6432013265825286, + 0.7137451888604627, + 0.7748865719021027, + 0.5048849573603283, + 0.03410990655080407, 0, 0, 0, - 0.06605799141953182, - 0.602226075916806, - 0.6993861141764759, - 0.6310142858899307, - 0.5887060078721336, - 0.6024912601325281, - 0.6566103650929964, - 0.7029443967705513, - 0.43813820854817576, - 0.02913173415692651, 0, 0, 0, @@ -26856,19 +26783,19 @@ 0, 0, 0, + 0.02950002451320195, + 0.16767440481082949, + 0.7018765649292511, + 0.6509195762510873, + 0.6038193784823933, + 0.6234342929241273, + 0.6892921341920228, + 0.7378818801673851, + 0.4714226601278919, + 0.033179991641472374, 0, 0, 0, - 0.02793061495894093, - 0.16826934406454916, - 0.6720614691103945, - 0.6281741351308738, - 0.589425670407642, - 0.6051256699795259, - 0.6575337425902116, - 0.7075928715660103, - 0.4398126940908179, - 0.03009001899043013, 0, 0, 0, @@ -26880,19 +26807,19 @@ 0, 0, 0, + 0.062394530851007955, + 0.6130755014192977, + 0.7346709478277706, + 0.6771190434813872, + 0.625354990470834, + 0.6432170040353359, + 0.7159946228309121, + 0.7751701440267587, + 0.5042617604884886, + 0.03299785194028167, 0, 0, 0, - 0.05658490782640138, - 0.5807422509507402, - 0.6813485833618809, - 0.6168287264032178, - 0.5684956527416073, - 0.5797538181136024, - 0.6468364433433648, - 0.6936204495780454, - 0.44544002632857443, - 0.028024309139699104, 0, 0, 0, @@ -26904,19 +26831,19 @@ 0, 0, 0, + 0.008280583825269106, + 0.030999229395132524, + 0.056463006033400376, + 0.3656507563833675, + 0.252857090224016, + 0.22365738384001976, + 0.10473420711924618, + 0.10638637516287544, + 0.15732568915628634, + 0.011606102631945534, 0, 0, 0, - 0.00707013698421825, - 0.02955059452881947, - 0.05492845897397756, - 0.3561510661684089, - 0.2460336368032447, - 0.22038685027495253, - 0.10270844995742291, - 0.1043257939128375, - 0.15363604856964524, - 0.010307073203018194, 0, 0, 0, @@ -26928,19 +26855,19 @@ 0, 0, 0, + 0.01945555518848971, + 0.4312679779903112, + 0.4438898548445354, + 0.6007940718409177, + 0.49512834797223443, + 0.5023218302360272, + 0.36773978435332, + 0.5001649382115272, + 0.22822063407764123, + 0.02843284077085077, 0, 0, 0, - 0.018313999456401966, - 0.4206936033521009, - 0.4356887728226133, - 0.574156162026099, - 0.4780942057485143, - 0.4855375126803574, - 0.3597029669226337, - 0.4892961227401231, - 0.22013170839805585, - 0.0261151593089298, 0, 0, 0, @@ -26952,19 +26879,19 @@ 0, 0, 0, + 0.047775306430708875, + 0.5716084870976404, + 0.7221492458602533, + 0.6668362729403844, + 0.6079581436481709, + 0.6262403715060055, + 0.6980658481139538, + 0.7552772678589549, + 0.4773546675072122, + 0.028686175968972792, 0, 0, 0, - 0.04392570956086979, - 0.5448698843554719, - 0.6640997518361642, - 0.6012138881847511, - 0.5585980676200223, - 0.5730042440215376, - 0.6359295696457, - 0.6851590460514516, - 0.43113304770451255, - 0.02466036664626968, 0, 0, 0, @@ -26976,19 +26903,19 @@ 0, 0, 0, + 0.04672116737375241, + 0.5535690236330832, + 0.7030873285534832, + 0.6521959976670283, + 0.5947353784485798, + 0.612804261946656, + 0.6854068112794571, + 0.7404647439866222, + 0.4665935448332685, + 0.027955160954721465, 0, 0, 0, - 0.04182140437260191, - 0.5236009494986701, - 0.6519172654629289, - 0.5765635137883115, - 0.5271820195977314, - 0.5348472426058795, - 0.5991763291925077, - 0.6509833598783812, - 0.4119753462153617, - 0.02348072723296151, 0, 0, 0, @@ -27000,19 +26927,19 @@ 0, 0, 0, + 0.04251395138020638, + 0.5411499786429437, + 0.6992510785306892, + 0.6484331068231631, + 0.5909538752120453, + 0.6063043291010016, + 0.6793266517293698, + 0.7356744550192877, + 0.4623219969527956, + 0.027786437010991646, 0, 0, 0, - 0.038375366587768446, - 0.5138860404936683, - 0.64374154320869, - 0.5799283725003249, - 0.5406645881574218, - 0.5562253962961938, - 0.6073281033788112, - 0.650440234612543, - 0.4131256080986008, - 0.02357420213937188, 0, 0, 0, @@ -27024,19 +26951,19 @@ 0, 0, 0, + 0.040183524864796115, + 0.5510574965545789, + 0.7075093512871504, + 0.6538588389905444, + 0.5963463897924965, + 0.612744871353303, + 0.6860397616363586, + 0.7503863690979671, + 0.4776551655180272, + 0.030589092914651065, 0, 0, 0, - 0.034929883191393514, - 0.513173321669977, - 0.6433902431616793, - 0.5838888135842905, - 0.5260123973472398, - 0.5394874389062313, - 0.6096265706515821, - 0.6630043241104764, - 0.4164935094700439, - 0.0257450613846307, 0, 0, 0, @@ -27048,19 +26975,19 @@ 0, 0, 0, + 0.03898335992778271, + 0.5417039359149772, + 0.71427170406044, + 0.6620240970807553, + 0.6016921490288234, + 0.6169370999339514, + 0.6923180445454057, + 0.7561499445806962, + 0.48366073035194396, + 0.03139208853321629, 0, 0, 0, - 0.034527810175236935, - 0.5061880705039336, - 0.6432753161729562, - 0.5802214594824963, - 0.5270503990152818, - 0.5488644986023933, - 0.611345631674767, - 0.6690837405541938, - 0.41976938873477404, - 0.026628695921776364, 0, 0, 0, @@ -27072,19 +26999,19 @@ 0, 0, 0, + 0.03873269386637857, + 0.5392005752130794, + 0.6763406064594288, + 0.6256754415263598, + 0.5864877022588392, + 0.5983561834118826, + 0.6816324870527738, + 0.760987084238514, + 0.48280577215322934, + 0.02830035696053357, 0, 0, 0, - 0.03373752759113914, - 0.49694204425334143, - 0.6159433070250839, - 0.544741171633559, - 0.5180534907066432, - 0.528632184413173, - 0.5856402108913931, - 0.6473410817863935, - 0.4126830390522853, - 0.023305314313377314, 0, 0, 0, @@ -27096,19 +27023,19 @@ 0, 0, 0, + 0.03665153782846388, + 0.5517026832780959, + 0.7320855732873397, + 0.6731195656061706, + 0.6081455300853619, + 0.6174024650527775, + 0.6944627512728534, + 0.759982837840826, + 0.4817205582733596, + 0.028544343751120863, 0, 0, 0, - 0.031883016031128975, - 0.5116104153417826, - 0.6675092210503792, - 0.5835707131963207, - 0.5336734006306003, - 0.5349397824229616, - 0.5880497222707629, - 0.6585108517165856, - 0.4114831767553854, - 0.023405517174798926, 0, 0, 0, @@ -27120,19 +27047,19 @@ 0, 0, 0, + 0.009796185217650952, + 0.09219467545434569, + 0.1649465783528837, + 0.20093390207698467, + 0.28488139505359866, + 0.27552113046119575, + 0.21817641734738227, + 0.1353983258418458, + 0.10279154304672268, + 0.019135013573021765, 0, 0, 0, - 0.008352573370917965, - 0.08907279676449668, - 0.1592455979451814, - 0.19286303968229634, - 0.2731969489952407, - 0.26552620745458444, - 0.21007177381045336, - 0.13030259900557242, - 0.09842430111969401, - 0.017037037398235293, 0, 0, 0, @@ -27144,19 +27071,19 @@ 0, 0, 0, + 0.0016872936654692935, + 0.028359564059893753, + 0.07134782336294326, + 0.13901067891266514, + 0.16818151233913917, + 0.2075778239222217, + 0.23837663331424142, + 0.16506421261882068, + 0.0523014281227867, + 0.01819272746406667, 0, 0, 0, - 0.0014831508209694718, - 0.03119596395874703, - 0.08084184626607945, - 0.15725518986397585, - 0.19007611774896357, - 0.23591525497163052, - 0.26873916337019627, - 0.18425052427376348, - 0.05859307590773676, - 0.018645135427944513, 0, 0, 0, @@ -27168,19 +27095,19 @@ 0, 0, 0, + 0.010912729096657749, + 0.042434892438084966, + 0.09054927879163649, + 0.20778462449475238, + 0.4950456502061267, + 0.2423809856758821, + 0.16033825245703331, + 0.13894777769655514, + 0.05333037843168798, + 0.008072851734059566, 0, 0, 0, - 0.010265814802032279, - 0.04865152283064016, - 0.10352730674281053, - 0.2326399092854357, - 0.5310028521171023, - 0.2674392430580226, - 0.17805051553824353, - 0.15374639359789197, - 0.058917244353674555, - 0.008091108058838434, 0, 0, 0, @@ -27192,19 +27119,19 @@ 0, 0, 0, + 0.02496872421341519, + 0.4815292219526323, + 0.703518999132777, + 0.6570366153336199, + 0.597625365562745, + 0.6063128216082588, + 0.613223314681408, + 0.7433225273091324, + 0.44153679015326436, + 0.04401631114458409, 0, 0, 0, - 0.023373011459050196, - 0.4656490290728261, - 0.7127961926552786, - 0.6636344964689352, - 0.6352654895063198, - 0.6397843419445054, - 0.6288325732741827, - 0.7200629502464658, - 0.4192602196741516, - 0.042209172621805645, 0, 0, 0, @@ -27216,19 +27143,19 @@ 0, 0, 0, + 0.01198932844154004, + 0.12027065549759478, + 0.2274559530318839, + 0.3799070086893734, + 0.3393387617922956, + 0.2872881751799007, + 0.36135928482524876, + 0.38301928649500694, + 0.21126550300672367, + 0.028433917021746517, 0, 0, 0, - 0.011367579826239352, - 0.12952953386454596, - 0.2476278275738552, - 0.4069012659179693, - 0.3728429345710358, - 0.318888414410742, - 0.3886256647699596, - 0.39707270732397804, - 0.21730916317880378, - 0.028548952746720573, 0, 0, 0, @@ -27240,19 +27167,19 @@ 0, 0, 0, + 0.004877592113883939, + 0.07435771322926339, + 0.2175505831742592, + 0.4265373772377956, + 0.4833894182855539, + 0.5187744595595062, + 0.6597533726157234, + 0.7203339658872422, + 0.471657015667572, + 0.033715508927153, 0, 0, 0, - 0.00454307648724636, - 0.08572737427640655, - 0.24831249807522565, - 0.47014576912730865, - 0.542984384814794, - 0.5579216145609045, - 0.6565748589612568, - 0.7044150862911372, - 0.4432062770186654, - 0.03155702460854422, 0, 0, 0, @@ -27264,19 +27191,19 @@ 0, 0, 0, + 0.012795359753245042, + 0.0998116869656859, + 0.2634512136383093, + 0.6392792018244478, + 0.6069825832983259, + 0.6003316980442618, + 0.6435869493087273, + 0.6979807511158435, + 0.47101551253181445, + 0.034796994383758016, 0, 0, 0, - 0.011421408424085608, - 0.1076230481842657, - 0.27953748319245525, - 0.6168573326766964, - 0.629686208378142, - 0.6136510057922688, - 0.6358132377078818, - 0.6900000768261992, - 0.4436139286611405, - 0.031626906358137814, 0, 0, 0, @@ -27288,19 +27215,19 @@ 0, 0, 0, + 0.017202641206996154, + 0.06642174720422156, + 0.26210042522051474, + 0.4585999227815869, + 0.5163319645438504, + 0.3775302572279358, + 0.43234338514297616, + 0.43473147488444985, + 0.14977622967585974, + 0.026547681751903026, 0, 0, 0, - 0.015355772736441385, - 0.06908076863048913, - 0.2648221491437504, - 0.4439968763086624, - 0.4909816527836655, - 0.3612809694824551, - 0.4117903283136922, - 0.4070257059374776, - 0.1433668282219365, - 0.023833652142391696, 0, 0, 0, @@ -27312,19 +27239,19 @@ 0, 0, 0, + 0.004788117555498102, + 0.06396316327868518, + 0.06348862020737019, + 0.06520138567896971, + 0.11499482962674452, + 0.19158142757009414, + 0.11920692747511305, + 0.24191312141793897, + 0.2273053674887616, + 0.022495213575489743, 0, 0, 0, - 0.003993597818010937, - 0.06408596329174573, - 0.06405740534092472, - 0.07112083224138775, - 0.13502078735646716, - 0.23104044232644136, - 0.13944089558796954, - 0.2610299718910284, - 0.2284176274050035, - 0.022205652266981832, 0, 0, 0, @@ -27336,19 +27263,19 @@ 0, 0, 0, + 0.019274436095549394, + 0.4410273618043604, + 0.7372099368224931, + 0.32251519022143893, + 0.1455643392212056, + 0.195202597470726, + 0.5026412347716082, + 0.7214801504802346, + 0.4989394510834834, + 0.04948278966686053, 0, 0, 0, - 0.017017655676302996, - 0.4171150194535799, - 0.728520607500947, - 0.3258784451171916, - 0.1512478941571751, - 0.2028695728987326, - 0.4931253529963153, - 0.6816597334836845, - 0.46717678636608095, - 0.04530871070615714, 0, 0, 0, @@ -27360,19 +27287,19 @@ 0, 0, 0, + 0.01770658752715804, + 0.07040588620609906, + 0.15754501549791436, + 0.16985597007938574, + 0.2015405540635406, + 0.19900426131720594, + 0.13721489051149055, + 0.11063349825077178, + 0.14576926118799446, + 0.044213314206934286, 0, 0, 0, - 0.015520703118082298, - 0.06970313846759395, - 0.15662828768527148, - 0.16801374981605438, - 0.19629552100515363, - 0.1931297862825489, - 0.13213264421827242, - 0.10536569567429876, - 0.13730407170236655, - 0.03927908520521908, 0, 0, 0, @@ -27384,19 +27311,19 @@ 0, 0, 0, + 0.004828281734245804, + 0.0887935543938133, + 0.10037412235048777, + 0.15243701524783318, + 0.28120022654469895, + 0.269024073879473, + 0.3758261838673025, + 0.3829172994066473, + 0.44266005766809624, + 0.049801586804176186, 0, 0, 0, - 0.003809809702408924, - 0.08371275723502926, - 0.09585803652104487, - 0.14601010524671593, - 0.26929068652476634, - 0.2573925343624947, - 0.35489393902096056, - 0.35794963845332356, - 0.4020377591252677, - 0.043107323564093185, 0, 0, 0, @@ -27408,19 +27335,19 @@ 0, 0, 0, + 0.0073180874838598324, + 0.2831852849390698, + 0.6889495922445426, + 0.6382914550930824, + 0.5721229502252796, + 0.5751130151353201, + 0.6562971438926601, + 0.6458235956496827, + 0.48978404345323434, + 0.028419049028315588, 0, 0, 0, - 0.006054569408266461, - 0.26236247208734265, - 0.6162351401664062, - 0.566672789835374, - 0.507541319663567, - 0.5163767387400507, - 0.5922630877036881, - 0.5978372780774942, - 0.43763183966813757, - 0.02457324599372668, 0, 0, 0, @@ -27432,19 +27359,19 @@ 0, 0, 0, + 0.01240396793635299, + 0.41862460287546893, + 0.672512119382522, + 0.5568209209468069, + 0.34759678946010975, + 0.34009701019316857, + 0.633315402249405, + 0.3363638478556656, + 0.09780372798942014, + 0.06102183426227795, 0, 0, 0, - 0.011143115179545932, - 0.3974409662521008, - 0.6505474612182462, - 0.5352859508955988, - 0.3378767952621897, - 0.3299003226832475, - 0.6048023013912398, - 0.32895261128031955, - 0.09513414575339255, - 0.05831340381147684, 0, 0, 0, @@ -27456,19 +27383,19 @@ 0, 0, 0, + 0.012985134367526024, + 0.42935781185964084, + 0.664223695153435, + 0.5565123462169357, + 0.5574494894187341, + 0.5783239537016078, + 0.6436564684984224, + 0.7110064216640799, + 0.5051916891584842, + 0.04208441525631555, 0, 0, 0, - 0.011290408760707197, - 0.4065859804376589, - 0.6413054664208617, - 0.5287825487841912, - 0.5230137765352191, - 0.5341688626410428, - 0.5885162605901908, - 0.6503988643063371, - 0.46434778277306626, - 0.03672381651408086, 0, 0, 0, @@ -27480,19 +27407,19 @@ 0, 0, 0, + 0.015654982970322407, + 0.423641838266833, + 0.6896236702806956, + 0.6481363663941262, + 0.5827377055011561, + 0.5864921994613409, + 0.6596360661339006, + 0.7304220790330451, + 0.5338999542396219, + 0.04679555006809312, 0, 0, 0, - 0.013159599181929299, - 0.39378866466866824, - 0.6411731702042879, - 0.576886222852954, - 0.5175847411694671, - 0.5179084799127391, - 0.5781469065381711, - 0.6426863323592512, - 0.460056249663625, - 0.039753141843588094, 0, 0, 0, @@ -27504,19 +27431,19 @@ 0, 0, 0, + 0.010927052175908829, + 0.10087000031526415, + 0.613879704108756, + 0.6565926666330176, + 0.5717531759587782, + 0.5791253852742568, + 0.6534164897369353, + 0.7271903262237397, + 0.5178205702133344, + 0.04837029589901028, 0, 0, 0, - 0.009082578529159922, - 0.09500167466037505, - 0.5415713450414726, - 0.5741353822544192, - 0.5122988667177031, - 0.515588057270265, - 0.5769848981386664, - 0.6449859555043355, - 0.4544830485878487, - 0.040984466341427404, 0, 0, 0, @@ -27528,19 +27455,19 @@ 0, 0, 0, + 0.014435616653851282, + 0.41243953054459015, + 0.6909428552716201, + 0.6456927380874667, + 0.5802608160458387, + 0.5486385605600004, + 0.4664566629624941, + 0.5554425410559524, + 0.44257495889991455, + 0.038990120144073714, 0, 0, 0, - 0.012472919926008253, - 0.38649725673519, - 0.6401008775792316, - 0.6070660864758203, - 0.5450226341005567, - 0.517908632005715, - 0.4451224077626441, - 0.5314755033092157, - 0.4207523380418886, - 0.03564647882451785, 0, 0, 0, @@ -27552,19 +27479,19 @@ 0, 0, 0, + 0.0049344171953271485, + 0.03946501606046236, + 0.049608036431542574, + 0.0929697987268144, + 0.1322030198820672, + 0.11564897463174686, + 0.059310828146232904, + 0.06297715034402297, + 0.03220344515386076, + 0.012966512613608603, 0, 0, 0, - 0.004132588089463389, - 0.037904521301525315, - 0.04753718336334544, - 0.09169867232435312, - 0.12891237654109983, - 0.11178412510397304, - 0.05738683214048439, - 0.06209287571589544, - 0.03150477447842388, - 0.012111257212617639, 0, 0, 0, @@ -27576,19 +27503,19 @@ 0, 0, 0, + 0.007225858321975615, + 0.2739009610039304, + 0.2820712175338679, + 0.5601230159714221, + 0.4420795791180516, + 0.41473242413157496, + 0.5857877570894523, + 0.40369100283748355, + 0.3715419710094824, + 0.04495425820250535, 0, 0, 0, - 0.006329903469169206, - 0.27320505004739626, - 0.3068040912152685, - 0.5683612690789034, - 0.4917653267793433, - 0.4489576302425901, - 0.6051310658915919, - 0.4169600431753471, - 0.3595545474527393, - 0.043000328458751715, 0, 0, 0, @@ -27600,19 +27527,19 @@ 0, 0, 0, + 0.01336269947935269, + 0.4250770533352345, + 0.7102445430086588, + 0.6692763686575159, + 0.6025350277563702, + 0.5960049082523255, + 0.6629437462506705, + 0.7291346465004215, + 0.551169833088848, + 0.055459765563402444, 0, 0, 0, - 0.011685300379563697, - 0.40490924662504485, - 0.7108564841262979, - 0.6606318552947309, - 0.6089947897297611, - 0.5925191171754995, - 0.6243408914869671, - 0.6810414521166746, - 0.4980088796733417, - 0.05005971543195071, 0, 0, 0, @@ -27624,19 +27551,16 @@ 0, 0, 0, - 0, - 0, - 0, - 0.008481045836220282, - 0.32811781267220264, - 0.6371433463152288, - 0.6068854428142025, - 0.566902030822582, - 0.5523169053016114, - 0.4729305128271571, - 0.5469415151558139, - 0.16472288285947867, - 0.026164806106435342, + 0.009788309012397224, + 0.34837885595657114, + 0.683774706257359, + 0.6469438898244977, + 0.5862415128755015, + 0.5852926039915641, + 0.4962509014540706, + 0.5811922044368373, + 0.16877250185893963, + 0.028063013121440473, 0, 0, 0, @@ -28496,34 +28420,7 @@ } } } - }, - "text/html": [ - "
" - ] + } }, "metadata": {}, "output_type": "display_data" @@ -28561,7 +28458,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 39, "id": "bb28fb2e", "metadata": {}, "outputs": [], @@ -28583,7 +28480,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 40, "id": "e278e073", "metadata": {}, "outputs": [], @@ -28606,7 +28503,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 41, "id": "00d1211e", "metadata": {}, "outputs": [], @@ -28624,7 +28521,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 42, "id": "1b525260", "metadata": {}, "outputs": [], @@ -28646,7 +28543,7 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 43, "id": "36fcd28d", "metadata": {}, "outputs": [], @@ -28668,7 +28565,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": null, "id": "5303d438", "metadata": {}, "outputs": [], @@ -28689,7 +28586,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.7.12 ('hybrid')", "language": "python", "name": "python3" }, @@ -28703,7 +28600,12 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.8" + "version": "3.7.12" + }, + "vscode": { + "interpreter": { + "hash": "be2cbe8f104d9ac6d9fabf42fbeb31737fdd025c22f444174f4d7205615d859d" + } } }, "nbformat": 4, diff --git a/Examples/UtilityRatesExample.py b/Examples/UtilityRatesExample.py index 8b34fe85..94ce16a8 100644 --- a/Examples/UtilityRatesExample.py +++ b/Examples/UtilityRatesExample.py @@ -47,9 +47,13 @@ def get_urdb_rate_data(page, key): if __name__ == "__main__": path = os.getcwd() + os.path.sep page = "618940545457a35a1c4097ec" # https://apps.openei.org/USURDB/rate/view/618940545457a35a1c4097ec (DG-R Primary (Above 500kW)) + if "YOUR_API_KEY" in key: + raise Exception("Please replace the `key` with your URDB API key.") urdb_response = get_urdb_rate_data(page, key) - urdb_response_json = json.loads(urdb_response)["items"][0] - rates = PySAM.ResourceTools.URDBv7_to_ElectricityRates(urdb_response_json) # To see status of version discrepancy, see https://github.com/NREL/pysam/issues/116. There's no difference between V7 and V8 for 99.9% of rates + urdb_response_json = json.loads(urdb_response) + if 'error' in urdb_response_json.keys(): + raise Exception(urdb_response_json['error']) + rates = PySAM.ResourceTools.URDBv7_to_ElectricityRates(urdb_response_json["items"][0]) # To see status of version discrepancy, see https://github.com/NREL/pysam/issues/116. There's no difference between V7 and V8 for 99.9% of rates ur = utility_rate.new() for k, v in rates.items(): diff --git a/README.md b/README.md index 415abdf7..009bbbe4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ https://nrel-pysam.readthedocs.io ## Requirements -1. Python 3.5+, 64 bit +1. Python 3.6+, 64 bit 2. Operating system: - MacOSX 10.7+ - Most Linux @@ -32,7 +32,6 @@ https://nrel-pysam.readthedocs.io May not be compatible with different builds of the CPython reference interpreter, and not with alternative interpreters such as PyPy, IronPython or Jython ## Usage Examples -- [Importing a SAM case](https://nrel-pysam.readthedocs.io/en/latest/Import.html) - [Examples](https://github.com/NREL/pysam/blob/master/Examples) diff --git a/RELEASE.md b/RELEASE.md index 62288790..42a7b10f 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,9 +1,11 @@ # Release Notes +## Version 3.0.2, Sep 27, 2022 - SAM 2021.12.02, Revision 2, SSC Version 274 +* [SAM Release updates for Version 2020.12.02 Revision 2](https://nrel.github.io/SAM/doc/releasenotes.html) +* Added support for Apple Silicon (#108) + ## Version 3.0.1, Mar 4, 2022 - SAM 2021.12.02, Revision 1, SSC Version 268 -* [SSC Release Notes](https://nrel.github.io/ssc/doc/releasenotes.html) for description of functionality and - variable changes -* [SAM Release updates for Version 2020.12.02](https://nrel.github.io/SAM/doc/releasenotes.html) +* [SAM Release updates for Version 2020.12.02 Revision 1](https://nrel.github.io/SAM/doc/releasenotes.html) * Moved all stub files from NREL-PySAM-stubs package into NREL-PySAM (#109) ## Version 3.0.0, Dec 23, 2021 ~ SAM 2021.12.02, SSC Version 267 diff --git a/build_manylinux.sh b/build_manylinux.sh index cff39dd4..eae1a923 100755 --- a/build_manylinux.sh +++ b/build_manylinux.sh @@ -9,14 +9,17 @@ ln -s /opt/python/cp37-cp37m/bin/cmake /usr/bin/cmake mkdir -p /io/build_linux_ssc cd /io/build_linux_ssc +rm -rf * cmake ${SSCDIR} -DCMAKE_BUILD_TYPE=Release -DSAM_SKIP_TOOLS=1 -DSAMAPI_EXPORT=1 -DSAM_SKIP_TESTS=1 ../ssc/ || exit make -j 6 +make -j 1 +make -j 6 || exit mkdir -p /io/build_linux_sam cd /io/build_linux_sam rm -rf * cmake ${SAMNTDIR}/api -DCMAKE_BUILD_TYPE=Release -DSAMAPI_EXPORT=1 -DSAM_SKIP_AUTOGEN=1 ../sam/api || exit -make -j 6 +make -j 6 || exit cd $PYSAMDIR for PYTHONENV in cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 diff --git a/build_unix.sh b/build_unix.sh index 8ba49193..0eb95948 100755 --- a/build_unix.sh +++ b/build_unix.sh @@ -7,6 +7,7 @@ # Building libssc and libSAM_api # requires SAM-Dev/CMakeList.txt that contains lk, wex, ssc and sam as subdirectories +rm -rf ~/SAM-Dev/cmake-build-release mkdir -p ~/SAM-Dev/cmake-build-release cd ~/SAM-Dev/cmake-build-release || exit cmake .. -DCMAKE_BUILD_TYPE=Release -DSAMAPI_EXPORT=1 -DSAM_SKIP_AUTOGEN=0 @@ -46,7 +47,7 @@ yes | $PYSAMDIR/build_conda.sh || exit cd .. docker pull quay.io/pypa/manylinux2010_x86_64 # docker run --rm -dit -v $(pwd):/io quay.io/pypa/manylinux2010_x86_64 /bin/bash -docker run --rm -v $(pwd):/io quay.io/pypa/manylinux2010_x86_64 /io/pysam/build_manylinux.sh +docker run --rm -v $(pwd):/io quay.io/pypa/manylinux2010_x86_64 /io/pysam/build_manylinux.sh || exit rename -s linux manylinux1 $PYSAMDIR/dist/*-linux_* diff --git a/docs/lists/configs.rst b/docs/lists/configs.rst new file mode 100644 index 00000000..532c15d8 --- /dev/null +++ b/docs/lists/configs.rst @@ -0,0 +1,1386 @@ +Biomass Combustion -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"BiopowerLCOECalculator"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Biomass Combustion -- Merchant Plant +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"BiopowerMerchantPlant"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Biomass Combustion -- No Financial Model +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Run the performance model with no financial model. + + Configuration name for defaults: *"BiopowerNone"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid` + +Biomass Combustion -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"BiopowerLeveragedPartnershipFlip"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Biomass Combustion -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"BiopowerAllEquityPartnershipFlip"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Biomass Combustion -- Sale Leaseback +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"BiopowerSaleLeaseback"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Biomass Combustion -- Single Owner +----------------------------------------------------------------------- + + Biomass combustion for electricity generation. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"BiopowerSingleOwner"* + + :doc:`../modules/Biomass`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Detailed PV Model -- Commercial Owner +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"FlatPlatePVCommercial"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Detailed PV Model -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"FlatPlatePVLCOECalculator"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Detailed PV Model -- Merchant Plant +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"FlatPlatePVMerchantPlant"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Detailed PV Model -- No Financial Model +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Run the performance model with no financial model. + + Configuration name for defaults: *"FlatPlatePVNone"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid` + +Detailed PV Model -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"FlatPlatePVLeveragedPartnershipFlip"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Detailed PV Model -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"FlatPlatePVAllEquityPartnershipFlip"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Detailed PV Model -- Residential Owner +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"FlatPlatePVResidential"* + + :doc:`../modules/Belpe`, :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Detailed PV Model -- Sale Leaseback +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"FlatPlatePVSaleLeaseback"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Detailed PV Model -- Single Owner +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"FlatPlatePVSingleOwner"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Detailed PV Model -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"FlatPlatePVHostDeveloper"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +Detailed PV Model -- Third Party Owner - Host +----------------------------------------------------------------------- + + Photovoltaic system using detailed photovoltaic model with separate module and inverter component models. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"FlatPlatePVThirdParty"* + + :doc:`../modules/Belpe`, :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Detailed PV-Battery -- Commercial Owner +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"PVBatteryCommercial"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Detailed PV-Battery -- Merchant Plant +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PVBatteryMerchantPlant"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Detailed PV-Battery -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"PVBatteryLeveragedPartnershipFlip"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Detailed PV-Battery -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"PVBatteryAllEquityPartnershipFlip"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Detailed PV-Battery -- Residential Owner +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"PVBatteryResidential"* + + :doc:`../modules/Belpe`, :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Detailed PV-Battery -- Sale Leaseback +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"PVBatterySaleLeaseback"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Detailed PV-Battery -- Single Owner +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PVBatterySingleOwner"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Detailed PV-Battery -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"PVBatteryHostDeveloper"* + + :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +Detailed PV-Battery -- Third Party Owner - Host +----------------------------------------------------------------------- + + Detailed photovoltaic model with battery storage. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"PVBatteryThirdParty"* + + :doc:`../modules/Belpe`, :doc:`../modules/Pvsamv1`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Electric Thermal Energy Storage -- Single Owner +----------------------------------------------------------------------- + + Electric thermal energy storage. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"ETESSingleOwner"* + + :doc:`../modules/EtesElectricResistance`, :doc:`../modules/Singleowner` + +Fuel Cell - PV - Battery -- Commercial Owner +----------------------------------------------------------------------- + + Fuel cell with photovoltaic system and optional electric battery for commercial building or PPA project applications. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"FuelCellCommercial"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Fuelcell`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thermalrate`, :doc:`../modules/Cashloan` + +Fuel Cell - PV - Battery -- Single Owner +----------------------------------------------------------------------- + + Fuel cell with photovoltaic system and optional electric battery for commercial building or PPA project applications. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"FuelCellSingleOwner"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Fuelcell`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thermalrate`, :doc:`../modules/Singleowner` + +Generic Model -- Commercial Owner +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"GenericCSPSystemCommercial"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Generic Model -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"GenericCSPSystemLCOECalculator"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Generic Model -- Merchant Plant +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericCSPSystemMerchantPlant"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Generic Model -- No Financial Model +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Run the performance model with no financial model. + + Configuration name for defaults: *"GenericCSPSystemNone"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid` + +Generic Model -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"GenericCSPSystemLeveragedPartnershipFlip"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Generic Model -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"GenericCSPSystemAllEquityPartnershipFlip"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Generic Model -- Sale Leaseback +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"GenericCSPSystemSaleLeaseback"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Generic Model -- Single Owner +----------------------------------------------------------------------- + + CSP power system with solar field modeled using a table of optical efficiency values. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericCSPSystemSingleOwner"* + + :doc:`../modules/TcsgenericSolar`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Generic System -- Commercial Owner +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"GenericSystemCommercial"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Generic System -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"GenericSystemLCOECalculator"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Generic System -- Merchant Plant +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericSystemMerchantPlant"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Generic System -- No Financial Model +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Run the performance model with no financial model. + + Configuration name for defaults: *"GenericSystemNone"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid` + +Generic System -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"GenericSystemLeveragedPartnershipFlip"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Generic System -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"GenericSystemAllEquityPartnershipFlip"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Generic System -- Residential Owner +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"GenericSystemResidential"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Generic System -- Sale Leaseback +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"GenericSystemSaleLeaseback"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Generic System -- Single Owner +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericSystemSingleOwner"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Generic System -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"GenericSystemHostDeveloper"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +Generic System -- Third Party Owner - Host +----------------------------------------------------------------------- + + Basic power system model using either capacity, capacity factor, and heat rate, or an hourly power generation profile as input. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"GenericSystemThirdParty"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Generic System-Battery -- Commercial Owner +----------------------------------------------------------------------- + + Generic system model with battery storage. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"GenericBatteryCommercial"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Generic System-Battery -- Merchant Plant +----------------------------------------------------------------------- + + Generic system model with battery storage. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericBatteryMerchantPlant"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Generic System-Battery -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Generic system model with battery storage. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"GenericBatteryLeveragedPartnershipFlip"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Generic System-Battery -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Generic system model with battery storage. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"GenericBatteryAllEquityPartnershipFlip"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Generic System-Battery -- Residential Owner +----------------------------------------------------------------------- + + Generic system model with battery storage. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"GenericBatteryResidential"* + + :doc:`../modules/Belpe`, :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Generic System-Battery -- Sale Leaseback +----------------------------------------------------------------------- + + Generic system model with battery storage. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"GenericBatterySaleLeaseback"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Generic System-Battery -- Single Owner +----------------------------------------------------------------------- + + Generic system model with battery storage. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GenericBatterySingleOwner"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Generic System-Battery -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Generic system model with battery storage. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"GenericBatteryHostDeveloper"* + + :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +Generic System-Battery -- Third Party Owner - Host +----------------------------------------------------------------------- + + Generic system model with battery storage. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"GenericBatteryThirdParty"* + + :doc:`../modules/Belpe`, :doc:`../modules/GenericSystem`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Geothermal -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"GeothermalPowerLCOECalculator"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Geothermal -- Merchant Plant +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GeothermalPowerMerchantPlant"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Geothermal -- No Financial Model +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Run the performance model with no financial model. + + Configuration name for defaults: *"GeothermalPowerNone"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid` + +Geothermal -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"GeothermalPowerLeveragedPartnershipFlip"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Geothermal -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"GeothermalPowerAllEquityPartnershipFlip"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Geothermal -- Sale Leaseback +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"GeothermalPowerSaleLeaseback"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Geothermal -- Single Owner +----------------------------------------------------------------------- + + Geothermal power model for hydrothermal and EGS systems with flash or binary conversion. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"GeothermalPowerSingleOwner"* + + :doc:`../modules/Geothermal`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +High Concentration PV -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"HighXConcentratingPVLCOECalculator"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +High Concentration PV -- Merchant Plant +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"HighXConcentratingPVMerchantPlant"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +High Concentration PV -- No Financial Model +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Run the performance model with no financial model. + + Configuration name for defaults: *"HighXConcentratingPVNone"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid` + +High Concentration PV -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"HighXConcentratingPVLeveragedPartnershipFlip"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +High Concentration PV -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"HighXConcentratingPVAllEquityPartnershipFlip"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +High Concentration PV -- Sale Leaseback +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"HighXConcentratingPVSaleLeaseback"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +High Concentration PV -- Single Owner +----------------------------------------------------------------------- + + Concentrating photovoltaic system with a high concentration photovoltaic module model and separate inverter model. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"HighXConcentratingPVSingleOwner"* + + :doc:`../modules/Hcpv`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Linear Fresnel Direct Steam - Heat -- +----------------------------------------------------------------------- + + Industrial process heat linear collector system. . + + Configuration name for defaults: *"DSGLIPHLCOHCalculator"* + + :doc:`../modules/LinearFresnelDsgIph`, :doc:`../modules/IphToLcoefcr`, :doc:`../modules/Lcoefcr` + +Linear Fresnel Direct Steam - Heat -- No Financial Model +----------------------------------------------------------------------- + + Industrial process heat linear collector system. Run the performance model with no financial model. + + Configuration name for defaults: *"DSGLIPHNone"* + + :doc:`../modules/LinearFresnelDsgIph` + +Linear Fresnel Direct Steam -- Commercial Owner +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"DSLFCommercial"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Linear Fresnel Direct Steam -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"DSLFLCOECalculator"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Linear Fresnel Direct Steam -- Merchant Plant +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"DSLFMerchantPlant"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Linear Fresnel Direct Steam -- No Financial Model +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Run the performance model with no financial model. + + Configuration name for defaults: *"DSLFNone"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid` + +Linear Fresnel Direct Steam -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"DSLFLeveragedPartnershipFlip"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Linear Fresnel Direct Steam -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"DSLFAllEquityPartnershipFlip"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Linear Fresnel Direct Steam -- Sale Leaseback +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"DSLFSaleLeaseback"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Linear Fresnel Direct Steam -- Single Owner +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"DSLFSingleOwner"* + + :doc:`../modules/TcslinearFresnel`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Linear Fresnel Molten Salt -- Commercial Owner +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"MSLFCommercial"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Linear Fresnel Molten Salt -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"MSLFLCOECalculator"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Linear Fresnel Molten Salt -- Merchant Plant +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"MSLFMerchantPlant"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Linear Fresnel Molten Salt -- No Financial Model +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Run the performance model with no financial model. + + Configuration name for defaults: *"MSLFNone"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid` + +Linear Fresnel Molten Salt -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"MSLFLeveragedPartnershipFlip"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Linear Fresnel Molten Salt -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"MSLFAllEquityPartnershipFlip"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Linear Fresnel Molten Salt -- Sale Leaseback +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"MSLFSaleLeaseback"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Linear Fresnel Molten Salt -- Single Owner +----------------------------------------------------------------------- + + CSP power system that uses long small mirrors to line focus sunlight on fixed receiver tubes mounted above them.. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"MSLFSingleOwner"* + + :doc:`../modules/TcsMSLF`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +PVWatts -- Commercial Owner +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"PVWattsCommercial"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +PVWatts -- Community Solar +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Community solar owner model. + + Configuration name for defaults: *"PVWattsCommunitySolar"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Communitysolar` + +PVWatts -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"PVWattsLCOECalculator"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +PVWatts -- Merchant Plant +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PVWattsMerchantPlant"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +PVWatts -- No Financial Model +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Run the performance model with no financial model. + + Configuration name for defaults: *"PVWattsNone"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid` + +PVWatts -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"PVWattsLeveragedPartnershipFlip"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +PVWatts -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"PVWattsAllEquityPartnershipFlip"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +PVWatts -- Residential Owner +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"PVWattsResidential"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Belpe`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +PVWatts -- Sale Leaseback +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"PVWattsSaleLeaseback"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +PVWatts -- Single Owner +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PVWattsSingleOwner"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +PVWatts -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"PVWattsHostDeveloper"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +PVWatts -- Third Party Owner - Host +----------------------------------------------------------------------- + + Photovoltaic system using basic NREL PVWatts V8 algorithm. Does not do detailed degradation or loss modeling. If those are important, please use pvsamv1.. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"PVWattsThirdParty"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Belpe`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +PVWatts-Battery -- Commercial Owner +----------------------------------------------------------------------- + + PVWatts system model with battery storage. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"PVWattsBatteryCommercial"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Battwatts`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +PVWatts-Battery -- Residential Owner +----------------------------------------------------------------------- + + PVWatts system model with battery storage. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"PVWattsBatteryResidential"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Belpe`, :doc:`../modules/Battwatts`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +PVWatts-Battery -- Third Party - Host / Developer +----------------------------------------------------------------------- + + PVWatts system model with battery storage. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"PVWattsBatteryHostDeveloper"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Battwatts`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +PVWatts-Battery -- Third Party Owner - Host +----------------------------------------------------------------------- + + PVWatts system model with battery storage. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"PVWattsBatteryThirdParty"* + + :doc:`../modules/Pvwattsv8`, :doc:`../modules/Belpe`, :doc:`../modules/Battwatts`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Parabolic Trough - Empirical -- Commercial Owner +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"EmpiricalTroughCommercial"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Parabolic Trough - Empirical -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"EmpiricalTroughLCOECalculator"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Lcoefcr` + +Parabolic Trough - Empirical -- Merchant Plant +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"EmpiricalTroughMerchantPlant"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Parabolic Trough - Empirical -- No Financial Model +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Run the performance model with no financial model. + + Configuration name for defaults: *"EmpiricalTroughNone"* + + :doc:`../modules/TcstroughEmpirical` + +Parabolic Trough - Empirical -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"EmpiricalTroughLeveragedPartnershipFlip"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Parabolic Trough - Empirical -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"EmpiricalTroughAllEquityPartnershipFlip"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Parabolic Trough - Empirical -- Sale Leaseback +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"EmpiricalTroughSaleLeaseback"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Parabolic Trough - Empirical -- Single Owner +----------------------------------------------------------------------- + + CSP parabolic trough system using model with empirically-derived coefficients and equations. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"EmpiricalTroughSingleOwner"* + + :doc:`../modules/TcstroughEmpirical`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Parabolic Trough - Heat -- +----------------------------------------------------------------------- + + Industrial process heat parabolic trough system using heat transfer and thermodynamic component models. . + + Configuration name for defaults: *"PhysicalTroughIPHLCOHCalculator"* + + :doc:`../modules/TroughPhysicalProcessHeat`, :doc:`../modules/IphToLcoefcr`, :doc:`../modules/Lcoefcr` + +Parabolic Trough - Heat -- No Financial Model +----------------------------------------------------------------------- + + Industrial process heat parabolic trough system using heat transfer and thermodynamic component models. Run the performance model with no financial model. + + Configuration name for defaults: *"PhysicalTroughIPHNone"* + + :doc:`../modules/TroughPhysicalProcessHeat` + +Parabolic Trough - Physical -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"PhysicalTroughLCOECalculator"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Parabolic Trough - Physical -- Merchant Plant +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PhysicalTroughMerchantPlant"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Parabolic Trough - Physical -- No Financial Model +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Run the performance model with no financial model. + + Configuration name for defaults: *"PhysicalTroughNone"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid` + +Parabolic Trough - Physical -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"PhysicalTroughLeveragedPartnershipFlip"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Parabolic Trough - Physical -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"PhysicalTroughAllEquityPartnershipFlip"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Parabolic Trough - Physical -- Sale Leaseback +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"PhysicalTroughSaleLeaseback"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Parabolic Trough - Physical -- Single Owner +----------------------------------------------------------------------- + + CSP parabolic trough system using heat transfer and thermodynamic component models. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"PhysicalTroughSingleOwner"* + + :doc:`../modules/TroughPhysical`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Power Tower Molten Salt -- Merchant Plant +----------------------------------------------------------------------- + + CSP molten salt power tower system using heat transfer and thermodynamic component models. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"MSPTMerchantPlant"* + + :doc:`../modules/TcsmoltenSalt`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Power Tower Molten Salt -- Partnership Flip with Debt +----------------------------------------------------------------------- + + CSP molten salt power tower system using heat transfer and thermodynamic component models. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"MSPTLeveragedPartnershipFlip"* + + :doc:`../modules/TcsmoltenSalt`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Power Tower Molten Salt -- Partnership Flip without Debt +----------------------------------------------------------------------- + + CSP molten salt power tower system using heat transfer and thermodynamic component models. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"MSPTAllEquityPartnershipFlip"* + + :doc:`../modules/TcsmoltenSalt`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Power Tower Molten Salt -- Sale Leaseback +----------------------------------------------------------------------- + + CSP molten salt power tower system using heat transfer and thermodynamic component models. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"MSPTSaleLeaseback"* + + :doc:`../modules/TcsmoltenSalt`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Power Tower Molten Salt -- Single Owner +----------------------------------------------------------------------- + + CSP molten salt power tower system using heat transfer and thermodynamic component models. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"MSPTSingleOwner"* + + :doc:`../modules/TcsmoltenSalt`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Solar Water Heating -- Commercial Owner +----------------------------------------------------------------------- + + Solar water heating model for residential and commercial building applications. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"SolarWaterHeatingCommercial"* + + :doc:`../modules/Swh`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Solar Water Heating -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Solar water heating model for residential and commercial building applications. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"SolarWaterHeatingLCOECalculator"* + + :doc:`../modules/Swh`, :doc:`../modules/Lcoefcr` + +Solar Water Heating -- No Financial Model +----------------------------------------------------------------------- + + Solar water heating model for residential and commercial building applications. Run the performance model with no financial model. + + Configuration name for defaults: *"SolarWaterHeatingNone"* + + :doc:`../modules/Swh` + +Solar Water Heating -- Residential Owner +----------------------------------------------------------------------- + + Solar water heating model for residential and commercial building applications. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"SolarWaterHeatingResidential"* + + :doc:`../modules/Swh`, :doc:`../modules/Belpe`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Standalone Battery -- Commercial Owner +----------------------------------------------------------------------- + + Generic standalone battery storage. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"StandaloneBatteryCommercial"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Standalone Battery -- Merchant Plant +----------------------------------------------------------------------- + + Generic standalone battery storage. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"StandaloneBatteryMerchantPlant"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Standalone Battery -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Generic standalone battery storage. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"StandaloneBatteryLeveragedPartnershipFlip"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Standalone Battery -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Generic standalone battery storage. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"StandaloneBatteryAllEquityPartnershipFlip"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Standalone Battery -- Residential Owner +----------------------------------------------------------------------- + + Generic standalone battery storage. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"StandaloneBatteryResidential"* + + :doc:`../modules/Belpe`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Standalone Battery -- Sale Leaseback +----------------------------------------------------------------------- + + Generic standalone battery storage. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"StandaloneBatterySaleLeaseback"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Standalone Battery -- Single Owner +----------------------------------------------------------------------- + + Generic standalone battery storage. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"StandaloneBatterySingleOwner"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + +Standalone Battery -- Third Party - Host / Developer +----------------------------------------------------------------------- + + Generic standalone battery storage. Third party ownershop from host and developer perspective for PPA. + + Configuration name for defaults: *"StandaloneBatteryHostDeveloper"* + + :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/HostDeveloper` + +Standalone Battery -- Third Party Owner - Host +----------------------------------------------------------------------- + + Generic standalone battery storage. Third party ownership from host perspective for PPA or lease agreement. + + Configuration name for defaults: *"StandaloneBatteryThirdParty"* + + :doc:`../modules/Belpe`, :doc:`../modules/Battery`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Thirdpartyownership` + +Tidal -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Marine energy tidal system. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"MEtidalLCOECalculator"* + + :doc:`../modules/MhkTidal`, :doc:`../modules/Lcoefcr` + +Tidal -- No Financial Model +----------------------------------------------------------------------- + + Marine energy tidal system. Run the performance model with no financial model. + + Configuration name for defaults: *"MEtidalNone"* + + :doc:`../modules/MhkTidal` + +Wave -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Marine energy wave system. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"MEwaveLCOECalculator"* + + :doc:`../modules/WaveFileReader`, :doc:`../modules/MhkWave`, :doc:`../modules/Lcoefcr` + +Wave -- No Financial Model +----------------------------------------------------------------------- + + Marine energy wave system. Run the performance model with no financial model. + + Configuration name for defaults: *"MEwaveNone"* + + :doc:`../modules/WaveFileReader`, :doc:`../modules/MhkWave` + +Wind -- Commercial Owner +----------------------------------------------------------------------- + + Small or large wind power system. Renewable energy system displaces commercial building electric load. + + Configuration name for defaults: *"WindPowerCommercial"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Wind -- LCOE Calculator (FCR Method) +----------------------------------------------------------------------- + + Small or large wind power system. Calculate LCOE using fixed charge rate method. + + Configuration name for defaults: *"WindPowerLCOECalculator"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Lcoefcr` + +Wind -- Merchant Plant +----------------------------------------------------------------------- + + Small or large wind power system. Merchant plant with constant DSCR and ancillary services revenue, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"WindPowerMerchantPlant"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Merchantplant` + +Wind -- No Financial Model +----------------------------------------------------------------------- + + Small or large wind power system. Run the performance model with no financial model. + + Configuration name for defaults: *"WindPowerNone"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid` + +Wind -- Partnership Flip with Debt +----------------------------------------------------------------------- + + Small or large wind power system. Developer/investor partnership flip PPA structure with debt. + + Configuration name for defaults: *"WindPowerLeveragedPartnershipFlip"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Levpartflip` + +Wind -- Partnership Flip without Debt +----------------------------------------------------------------------- + + Small or large wind power system. Developer/investor partnership flip PPA structure without debt. + + Configuration name for defaults: *"WindPowerAllEquityPartnershipFlip"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Equpartflip` + +Wind -- Residential Owner +----------------------------------------------------------------------- + + Small or large wind power system. Renewable energy system displaces residential home electric load. + + Configuration name for defaults: *"WindPowerResidential"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Cashloan` + +Wind -- Sale Leaseback +----------------------------------------------------------------------- + + Small or large wind power system. Sale leaseback partnership PPA structure. + + Configuration name for defaults: *"WindPowerSaleLeaseback"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Saleleaseback` + +Wind -- Single Owner +----------------------------------------------------------------------- + + Small or large wind power system. Single owner PPA with constant DSCR and IRR target year, reserve accounts and depreciation allocations. + + Configuration name for defaults: *"WindPowerSingleOwner"* + + :doc:`../modules/Windpower`, :doc:`../modules/Grid`, :doc:`../modules/Utilityrate5`, :doc:`../modules/Singleowner` + diff --git a/docs/lists/models.rst b/docs/lists/models.rst new file mode 100644 index 00000000..e0a1cd24 --- /dev/null +++ b/docs/lists/models.rst @@ -0,0 +1,368 @@ +:doc:`../modules/Annualoutput` (HD) + Annual Output + +:doc:`../modules/Battery` + Battery storage standalone model . + +:doc:`../modules/BatteryStateful` (HD) + Battery management system model with state + +:doc:`../modules/Battwatts` (HD) + simple battery model + +:doc:`../modules/Belpe` + Estimates an electric load profile given basic building characteristics and a weather file + +:doc:`../modules/Biomass` + Utility scale wind farm model (adapted from TRNSYS code by P.Quinlan and openWind software by AWS Truepower) + +:doc:`../modules/Cashloan` (HD) + Residential/Commerical Finance model. + +:doc:`../modules/CbConstructionFinancing` (HD) + Construction financing cost calculations + +:doc:`../modules/CbEmpiricalHceHeatLoss` (HD) + Empirical HCE Heat Loss + +:doc:`../modules/CbMsptSystemCosts` (HD) + CSP molten salt power tower system costs + +:doc:`../modules/Communitysolar` + Comunity Solar Financial Model + +:doc:`../modules/CspDsgLfUi` (HD) + Calculates values for all calculated values on UI TES page(s) + +:doc:`../modules/DsgFluxPreprocess` (HD) + Calculate receiver max flux and absorber (boiler, etc.) fractions + +:doc:`../modules/Equpartflip` + All Equity Partnership Flip Financial Model + +:doc:`../modules/EtesElectricResistance` + Electric resistance heater charging TES from grid, discharge with power cycle + +:doc:`../modules/Fuelcell` + Fuel cell model + +:doc:`../modules/GenericSystem` + Generic System + +:doc:`../modules/Geothermal` + Geothermal monthly and hourly models using general power block code from TRNSYS Type 224 code by M.Wagner, and some GETEM model code. + +:doc:`../modules/GeothermalCosts` (HD) + Geothermal monthly and hourly models using general power block code from TRNSYS Type 224 code by M.Wagner, and some GETEM model code. + +:doc:`../modules/Grid` (HD) + Grid model + +:doc:`../modules/Hcpv` + High-X Concentrating PV, SAM component models V.1 + +:doc:`../modules/HostDeveloper` + Host Developer Financial Model + +:doc:`../modules/Iec61853interp` (HD) + Determine single diode model parameters from IEC 61853 solution matrix at a given temperature and irradiance. + +:doc:`../modules/Iec61853par` (HD) + Calculate 11-parameter single diode model parameters from IEC-61853 PV module test data. + +:doc:`../modules/InvCecCg` (HD) + CEC Inverter Coefficient Generator + +:doc:`../modules/IphToLcoefcr` + Convert annual energy to kWt-hr and adjust fixed cost to include electric parasitic costs. + +:doc:`../modules/Ippppa` (HD) + Utility IPP/Commerical PPA Finance model. + +:doc:`../modules/Irradproc` (HD) + Irradiance Processor + +:doc:`../modules/IsccDesignPoint` (HD) + Calculates design point inject, extraction, fossil output + +:doc:`../modules/Layoutarea` (HD) + Layout Area Calculation + +:doc:`../modules/Lcoefcr` + Calculate levelized cost of energy using fixed charge rate method. + +:doc:`../modules/Levpartflip` + Leveraged Partnership Flip Financial Model + +:doc:`../modules/LinearFresnelDsgIph` + CSP model using the linear fresnel TCS types. + +:doc:`../modules/Merchantplant` (HD) + Single Owner Financial Model + +:doc:`../modules/MhkCosts` (HD) + Calculates various cost categories for Marine Energy arrays for different device types. + +:doc:`../modules/MhkTidal` (HD) + MHK Tidal power calculation model using power distribution. + +:doc:`../modules/MhkWave` (HD) + MHK Wave power calculation model using power distribution. + +:doc:`../modules/Poacalib` (HD) + Calibrates beam and diffuse to give POA input + +:doc:`../modules/Pv6parmod` (HD) + CEC 6 Parameter PV module model performance calculator. Does not include weather file reading or irradiance processing, or inverter (DC to AC) modeling. + +:doc:`../modules/PvGetShadeLossMpp` (HD) + PV get shade loss fraction for strings + +:doc:`../modules/Pvsamv1` + Photovoltaic performance model, SAM component models V.1 + +:doc:`../modules/Pvsandiainv` (HD) + Sandia PV inverter performance calculator. + +:doc:`../modules/Pvwattsv1` (HD) + PVWatts V.1 - integrated hourly weather reader and PV system simulator. + +:doc:`../modules/Pvwattsv11ts` (HD) + pvwattsv1_1ts- single timestep calculation of PV system performance. + +:doc:`../modules/Pvwattsv1Poa` (HD) + PVWatts system performance calculator. Does not include weather file reading or irradiance processing - user must supply arrays of precalculated POA irradiance data. + +:doc:`../modules/Pvwattsv5` (HD) + PVWatts V5 - integrated hourly weather reader and PV system simulator. + +:doc:`../modules/Pvwattsv51ts` (HD) + pvwattsv5_1ts- single timestep calculation of PV system performance. + +:doc:`../modules/Pvwattsv7` (HD) + PVWatts V7 - integrated hourly weather reader and PV system simulator. + +:doc:`../modules/Pvwattsv8` + PVWatts V8 - integrated hourly weather reader and PV system simulator. + +:doc:`../modules/Saleleaseback` + Sale Leaseback Financial Model + +:doc:`../modules/Sco2AirCooler` (HD) + Returns air cooler dimensions given fluid and location design points + +:doc:`../modules/Sco2CompCurves` (HD) + Calls sCO2 auto-design cycle function + +:doc:`../modules/Sco2CspSystem` (HD) + ... + +:doc:`../modules/Sco2CspUdPcTables` (HD) + ... + +:doc:`../modules/Singlediode` (HD) + Single diode model function. + +:doc:`../modules/Singlediodeparams` (HD) + Single diode model parameter calculation. + +:doc:`../modules/Singleowner` + Single Owner Financial Model + +:doc:`../modules/SixParsolve` + Solver for CEC/6 parameter PV module coefficients + +:doc:`../modules/Snowmodel` (HD) + Estimates the Detrimental Effects due to Snow Fall + +:doc:`../modules/Solarpilot` (HD) + SolarPILOT - CSP tower solar field layout tool. + +:doc:`../modules/Swh` + Solar water heating model using multi-mode tank node model. + +:doc:`../modules/TcsMSLF` + CSP model using the molten salt linear fresnel TCS types. + +:doc:`../modules/TcsgenericSolar` + Generic CSP model using the generic solar TCS types. + +:doc:`../modules/TcslinearFresnel` + CSP model using the linear fresnel TCS types. + +:doc:`../modules/TcsmoltenSalt` + CSP molten salt power tower with hierarchical controller and dispatch optimization + +:doc:`../modules/TcstroughEmpirical` + CSP model using the emperical trough TCS types. + +:doc:`../modules/TcstroughPhysical` (HD) + CSP model using the emperical trough TCS types. + +:doc:`../modules/TestUdPowerCycle` (HD) + Test user-defined power cylce model + +:doc:`../modules/Thermalrate` (HD) + Thermal flat rate structure net revenue calculator + +:doc:`../modules/Thirdpartyownership` + Residential/Commercial 3rd Party Ownership Finance model. + +:doc:`../modules/Timeseq` (HD) + Time sequence generator + +:doc:`../modules/TroughPhysical` + Physical trough applications + +:doc:`../modules/TroughPhysicalCspSolver` (HD) + Physical trough using CSP Solver + +:doc:`../modules/TroughPhysicalProcessHeat` + Physical trough process heat applications + +:doc:`../modules/UiTesCalcs` (HD) + Calculates values for all calculated values on UI TES page(s) + +:doc:`../modules/UiUdpcChecks` (HD) + Calculates the levels and number of paramteric runs for 3 udpc ind variables + +:doc:`../modules/UserHtfComparison` (HD) + Evaluates equivalence of two user-defined HTF tables + +:doc:`../modules/Utilityrate` (HD) + Electricity bill calculator (deprecated) + +:doc:`../modules/Utilityrate2` (HD) + Electricity bill calculator based on OpenEI Version 2 (deprecated) + +:doc:`../modules/Utilityrate3` (HD) + Electricity bill calculator based on OpenEI Version 3 (deprecated) + +:doc:`../modules/Utilityrate4` (HD) + Electricity bill calculator based on OpenEI Version 4 (deprecated) + +:doc:`../modules/Utilityrate5` + Electricity bill calculator based on OpenEI Version 8 + +:doc:`../modules/WaveFileReader` (HD) + SAM Wave Resource File Reader + +:doc:`../modules/Wfcheck` (HD) + Weather file checker. + +:doc:`../modules/Wfcsvconv` (HD) + Converter for TMY2, TMY3, INTL, EPW, SMW weather files to standard CSV format + +:doc:`../modules/Wfreader` (HD) + Standard Weather File Format Reader (TMY2, TMY3, EPW, SMW, WFCSV) + +:doc:`../modules/WindFileReader` (HD) + SAM Wind Resource File Reader (SRW) + +:doc:`../modules/WindObos` (HD) + Wind Offshore Balance of System cost model + +:doc:`../modules/Windbos` (HD) + Wind Balance of System cost model + +:doc:`../modules/Windcsm` (HD) + WISDEM turbine cost model + +:doc:`../modules/Windpower` + Utility scale wind farm model (adapted from TRNSYS code by P.Quinlan and openWind software by AWS Truepower) + +.. toctree:: + :maxdepth: 2 + :hidden: + + ../modules/Annualoutput.rst + ../modules/Battery.rst + ../modules/BatteryStateful.rst + ../modules/Battwatts.rst + ../modules/Belpe.rst + ../modules/Biomass.rst + ../modules/Cashloan.rst + ../modules/CbConstructionFinancing.rst + ../modules/CbEmpiricalHceHeatLoss.rst + ../modules/CbMsptSystemCosts.rst + ../modules/Communitysolar.rst + ../modules/CspDsgLfUi.rst + ../modules/DsgFluxPreprocess.rst + ../modules/Equpartflip.rst + ../modules/EtesElectricResistance.rst + ../modules/Fuelcell.rst + ../modules/GenericSystem.rst + ../modules/Geothermal.rst + ../modules/GeothermalCosts.rst + ../modules/Grid.rst + ../modules/Hcpv.rst + ../modules/HostDeveloper.rst + ../modules/Iec61853interp.rst + ../modules/Iec61853par.rst + ../modules/InvCecCg.rst + ../modules/IphToLcoefcr.rst + ../modules/Ippppa.rst + ../modules/Irradproc.rst + ../modules/IsccDesignPoint.rst + ../modules/Layoutarea.rst + ../modules/Lcoefcr.rst + ../modules/Levpartflip.rst + ../modules/LinearFresnelDsgIph.rst + ../modules/Merchantplant.rst + ../modules/MhkCosts.rst + ../modules/MhkTidal.rst + ../modules/MhkWave.rst + ../modules/Poacalib.rst + ../modules/Pv6parmod.rst + ../modules/PvGetShadeLossMpp.rst + ../modules/Pvsamv1.rst + ../modules/Pvsandiainv.rst + ../modules/Pvwattsv1.rst + ../modules/Pvwattsv11ts.rst + ../modules/Pvwattsv1Poa.rst + ../modules/Pvwattsv5.rst + ../modules/Pvwattsv51ts.rst + ../modules/Pvwattsv7.rst + ../modules/Pvwattsv8.rst + ../modules/Saleleaseback.rst + ../modules/Sco2AirCooler.rst + ../modules/Sco2CompCurves.rst + ../modules/Sco2CspSystem.rst + ../modules/Sco2CspUdPcTables.rst + ../modules/Singlediode.rst + ../modules/Singlediodeparams.rst + ../modules/Singleowner.rst + ../modules/SixParsolve.rst + ../modules/Snowmodel.rst + ../modules/Solarpilot.rst + ../modules/Swh.rst + ../modules/TcsMSLF.rst + ../modules/TcsgenericSolar.rst + ../modules/TcslinearFresnel.rst + ../modules/TcsmoltenSalt.rst + ../modules/TcstroughEmpirical.rst + ../modules/TcstroughPhysical.rst + ../modules/TestUdPowerCycle.rst + ../modules/Thermalrate.rst + ../modules/Thirdpartyownership.rst + ../modules/Timeseq.rst + ../modules/TroughPhysical.rst + ../modules/TroughPhysicalCspSolver.rst + ../modules/TroughPhysicalProcessHeat.rst + ../modules/UiTesCalcs.rst + ../modules/UiUdpcChecks.rst + ../modules/UserHtfComparison.rst + ../modules/Utilityrate.rst + ../modules/Utilityrate2.rst + ../modules/Utilityrate3.rst + ../modules/Utilityrate4.rst + ../modules/Utilityrate5.rst + ../modules/WaveFileReader.rst + ../modules/Wfcheck.rst + ../modules/Wfcsvconv.rst + ../modules/Wfreader.rst + ../modules/WindFileReader.rst + ../modules/WindObos.rst + ../modules/Windbos.rst + ../modules/Windcsm.rst + ../modules/Windpower.rst diff --git a/docs/modules/Annualoutput.rst b/docs/modules/Annualoutput.rst index e9107675..3b2ff2c0 100644 --- a/docs/modules/Annualoutput.rst +++ b/docs/modules/Annualoutput.rst @@ -1,45 +1,34 @@ .. _Annualoutput: Annualoutput -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_annualoutput.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Annualoutput + :members: -Creating an Instance -=================================== +Annualoutput is a wrapper for the SSC compute module `cmod_annualoutput.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Annualoutput model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Annualoutput - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Annualoutput.Annualoutput :members: AnnualOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Annualoutput.Annualoutput.AnnualOutput :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Annualoutput.Annualoutput.Outputs :members: diff --git a/docs/modules/Battery.rst b/docs/modules/Battery.rst index c19a0bfb..3bc6846a 100644 --- a/docs/modules/Battery.rst +++ b/docs/modules/Battery.rst @@ -1,158 +1,186 @@ .. _Battery: Battery -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_battery.cpp `_ +.. automodule:: PySAM.Battery + :members: + +Battery is a wrapper for the SSC compute module `cmod_battery.cpp `_ -Input Consistency Warning -================================== +Interdependent Variables +-------------------------- -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - LeadAcid_q10_computed + - LeadAcid_q20_computed + - LeadAcid_qn_computed + - batt_Qexp + - batt_Qfull + - batt_Qfull_flow + - batt_Qnom + - batt_Vnom_default + - batt_ac_dc_efficiency + - batt_ac_or_dc + - batt_chem + - batt_computed_bank_capacity + - batt_computed_series + - batt_computed_strings + - batt_current_charge_max + - batt_current_choice + - batt_current_discharge_max + - batt_dc_ac_efficiency + - batt_dc_dc_efficiency + - batt_dispatch_load_forecast_choice + - batt_load_ac_forecast + - batt_load_ac_forecast_escalation + - batt_mass + - batt_power_charge_max_kwac + - batt_power_charge_max_kwdc + - batt_power_discharge_max_kwac + - batt_power_discharge_max_kwdc + - batt_room_temperature_celsius + - batt_surface_area + - dispatch_manual_discharge - - dispatch_manual_gridcharge - - dispatch_manual_percent_discharge - - dispatch_manual_percent_gridcharge - - grid_curtailment - - load_escalation -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - dispatch_manual_gridcharge -Creating an Instance -=================================== + - dispatch_manual_percent_discharge -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - dispatch_manual_percent_gridcharge -**Battery model description** + - grid_curtailment -.. automodule:: PySAM.Battery - :members: + - load_escalation Functions -=================================== +----------- .. autoclass:: PySAM.Battery.Battery :members: Simulation Group -====================================================== +----------------- .. autoclass:: PySAM.Battery.Battery.Simulation :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Battery.Battery.Lifetime :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Battery.Battery.BatterySystem :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Battery.Battery.SystemOutput :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Battery.Battery.Load :members: BatteryCell Group -====================================================== +------------------ .. autoclass:: PySAM.Battery.Battery.BatteryCell :members: Inverter Group -====================================================== +--------------- .. autoclass:: PySAM.Battery.Battery.Inverter :members: Losses Group -====================================================== +------------- .. autoclass:: PySAM.Battery.Battery.Losses :members: BatteryDispatch Group -====================================================== +---------------------- .. autoclass:: PySAM.Battery.Battery.BatteryDispatch :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Battery.Battery.SystemCosts :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Battery.Battery.FuelCell :members: PriceSignal Group -====================================================== +------------------ .. autoclass:: PySAM.Battery.Battery.PriceSignal :members: +Revenue Group +-------------- + +.. autoclass:: PySAM.Battery.Battery.Revenue + :members: + ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Battery.Battery.ElectricityRates :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Battery.Battery.GridLimits :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Battery.Battery.Outputs :members: diff --git a/docs/modules/BatteryStateful.rst b/docs/modules/BatteryStateful.rst index 889267e0..02d5ae96 100644 --- a/docs/modules/BatteryStateful.rst +++ b/docs/modules/BatteryStateful.rst @@ -1,63 +1,52 @@ .. _BatteryStateful: BatteryStateful -*********************************** +================ -Wrapper for SAM Simulation Core model: `cmod_battery_stateful.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.BatteryStateful + :members: -Creating an Instance -=================================== +BatteryStateful is a wrapper for the SSC compute module `cmod_battery_stateful.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**BatteryStateful model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.BatteryStateful - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful :members: Controls Group -====================================================== +--------------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful.Controls :members: ParamsCell Group -====================================================== +----------------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful.ParamsCell :members: ParamsPack Group -====================================================== +----------------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful.ParamsPack :members: StatePack Group -====================================================== +---------------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful.StatePack :members: StateCell Group -====================================================== +---------------- .. autoclass:: PySAM.BatteryStateful.BatteryStateful.StateCell :members: diff --git a/docs/modules/Battwatts.rst b/docs/modules/Battwatts.rst index 01c8c419..64424b03 100644 --- a/docs/modules/Battwatts.rst +++ b/docs/modules/Battwatts.rst @@ -1,63 +1,52 @@ .. _Battwatts: Battwatts -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_battwatts.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Battwatts + :members: -Creating an Instance -=================================== +Battwatts is a wrapper for the SSC compute module `cmod_battwatts.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Battwatts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Battwatts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Battwatts.Battwatts :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Battwatts.Battwatts.Lifetime :members: Battery Group -====================================================== +-------------- .. autoclass:: PySAM.Battwatts.Battwatts.Battery :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Battwatts.Battwatts.Load :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Battwatts.Battwatts.GridLimits :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Battwatts.Battwatts.Outputs :members: diff --git a/docs/modules/Belpe.rst b/docs/modules/Belpe.rst index cd46fe5a..fe9337ff 100644 --- a/docs/modules/Belpe.rst +++ b/docs/modules/Belpe.rst @@ -1,39 +1,28 @@ .. _Belpe: Belpe -*********************************** +====== -Wrapper for SAM Simulation Core model: `cmod_belpe.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Belpe + :members: -Creating an Instance -=================================== +Belpe is a wrapper for the SSC compute module `cmod_belpe.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Belpe model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Belpe - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Belpe.Belpe :members: LoadProfileEstimator Group -====================================================== +--------------------------- .. autoclass:: PySAM.Belpe.Belpe.LoadProfileEstimator :members: diff --git a/docs/modules/Biomass.rst b/docs/modules/Biomass.rst index 1407db39..0cff8f6f 100644 --- a/docs/modules/Biomass.rst +++ b/docs/modules/Biomass.rst @@ -1,51 +1,40 @@ .. _Biomass: Biomass -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_biomass.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Biomass + :members: -Creating an Instance -=================================== +Biomass is a wrapper for the SSC compute module `cmod_biomass.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Biomass model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Biomass - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Biomass.Biomass :members: Biopower Group -====================================================== +--------------- .. autoclass:: PySAM.Biomass.Biomass.Biopower :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Biomass.Biomass.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Biomass.Biomass.Outputs :members: diff --git a/docs/modules/Cashloan.rst b/docs/modules/Cashloan.rst index c583c30e..88f26b4e 100644 --- a/docs/modules/Cashloan.rst +++ b/docs/modules/Cashloan.rst @@ -1,129 +1,118 @@ .. _Cashloan: Cashloan -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_cashloan.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Cashloan + :members: -Creating an Instance -=================================== +Cashloan is a wrapper for the SSC compute module `cmod_cashloan.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Cashloan model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Cashloan - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Cashloan.Cashloan :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Cashloan.Cashloan.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Cashloan.Cashloan.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Cashloan.Cashloan.LandLease :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Cashloan.Cashloan.Depreciation :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Cashloan.Cashloan.TaxCreditIncentives :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Cashloan.Cashloan.PaymentIncentives :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Cashloan.Cashloan.BatterySystem :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Cashloan.Cashloan.FuelCell :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Cashloan.Cashloan.ChargesByMonth :members: Battery Group -====================================================== +-------------- .. autoclass:: PySAM.Cashloan.Cashloan.Battery :members: TimeSeries Group -====================================================== +----------------- .. autoclass:: PySAM.Cashloan.Cashloan.TimeSeries :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Cashloan.Cashloan.SystemOutput :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Cashloan.Cashloan.Lifetime :members: ThirdPartyOwnership Group -====================================================== +-------------------------- .. autoclass:: PySAM.Cashloan.Cashloan.ThirdPartyOwnership :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Cashloan.Cashloan.LCOS :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Cashloan.Cashloan.Outputs :members: diff --git a/docs/modules/CbConstructionFinancing.rst b/docs/modules/CbConstructionFinancing.rst index bf0d4d23..269344aa 100644 --- a/docs/modules/CbConstructionFinancing.rst +++ b/docs/modules/CbConstructionFinancing.rst @@ -1,51 +1,40 @@ .. _CbConstructionFinancing: CbConstructionFinancing -*********************************** +======================== -Wrapper for SAM Simulation Core model: `cmod_cb_construction_financing.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.CbConstructionFinancing + :members: -Creating an Instance -=================================== +CbConstructionFinancing is a wrapper for the SSC compute module `cmod_cb_construction_financing.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**CbConstructionFinancing model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.CbConstructionFinancing - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.CbConstructionFinancing.CbConstructionFinancing :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.CbConstructionFinancing.CbConstructionFinancing.SystemCosts :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.CbConstructionFinancing.CbConstructionFinancing.FinancialParameters :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.CbConstructionFinancing.CbConstructionFinancing.Outputs :members: diff --git a/docs/modules/CbEmpiricalHceHeatLoss.rst b/docs/modules/CbEmpiricalHceHeatLoss.rst index 26e7990d..f778262e 100644 --- a/docs/modules/CbEmpiricalHceHeatLoss.rst +++ b/docs/modules/CbEmpiricalHceHeatLoss.rst @@ -1,45 +1,34 @@ .. _CbEmpiricalHceHeatLoss: CbEmpiricalHceHeatLoss -*********************************** +======================= -Wrapper for SAM Simulation Core model: `cmod_cb_empirical_hce_heat_loss.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.CbEmpiricalHceHeatLoss + :members: -Creating an Instance -=================================== +CbEmpiricalHceHeatLoss is a wrapper for the SSC compute module `cmod_cb_empirical_hce_heat_loss.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**CbEmpiricalHceHeatLoss model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.CbEmpiricalHceHeatLoss - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.CbEmpiricalHceHeatLoss.CbEmpiricalHceHeatLoss :members: Hce Group -====================================================== +---------- .. autoclass:: PySAM.CbEmpiricalHceHeatLoss.CbEmpiricalHceHeatLoss.Hce :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.CbEmpiricalHceHeatLoss.CbEmpiricalHceHeatLoss.Outputs :members: diff --git a/docs/modules/CbMsptSystemCosts.rst b/docs/modules/CbMsptSystemCosts.rst index 9f3d1974..1e7e8dd7 100644 --- a/docs/modules/CbMsptSystemCosts.rst +++ b/docs/modules/CbMsptSystemCosts.rst @@ -1,69 +1,58 @@ .. _CbMsptSystemCosts: CbMsptSystemCosts -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_cb_mspt_system_costs.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.CbMsptSystemCosts + :members: -Creating an Instance -=================================== +CbMsptSystemCosts is a wrapper for the SSC compute module `cmod_cb_mspt_system_costs.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**CbMsptSystemCosts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.CbMsptSystemCosts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts :members: Heliostat Group -====================================================== +---------------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.Heliostat :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.SystemCosts :members: Receiver Group -====================================================== +--------------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.Receiver :members: TES Group -====================================================== +---------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.TES :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.SystemDesign :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.CbMsptSystemCosts.CbMsptSystemCosts.Outputs :members: diff --git a/docs/modules/Communitysolar.rst b/docs/modules/Communitysolar.rst index c4971660..c6fbc1b1 100644 --- a/docs/modules/Communitysolar.rst +++ b/docs/modules/Communitysolar.rst @@ -1,144 +1,134 @@ .. _Communitysolar: Communitysolar -*********************************** +=============== -Wrapper for SAM Simulation Core model: `cmod_communitysolar.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +.. automodule:: PySAM.Communitysolar + :members: - - construction_financing_cost - - land_area - - total_installed_cost +Communitysolar is a wrapper for the SSC compute module `cmod_communitysolar.cpp `_ -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +Interdependent Variables +-------------------------- -Creating an Instance -=================================== +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - construction_financing_cost -**Communitysolar model description** + - land_area -.. automodule:: PySAM.Communitysolar - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Communitysolar.Communitysolar :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Communitysolar.Communitysolar.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Communitysolar.Communitysolar.PaymentIncentives :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.Revenue :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.BatterySystem :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.ElectricityRates :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.SystemOutput :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Communitysolar.Communitysolar.UtilityBill :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.Lifetime :members: CommunitySolar Group -====================================================== +--------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.CommunitySolar :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.FuelCell :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.GridLimits :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Communitysolar.Communitysolar.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.ChargesByMonth :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Communitysolar.Communitysolar.Outputs :members: diff --git a/docs/modules/CspDsgLfUi.rst b/docs/modules/CspDsgLfUi.rst new file mode 100644 index 00000000..f4672de4 --- /dev/null +++ b/docs/modules/CspDsgLfUi.rst @@ -0,0 +1,35 @@ +.. _CspDsgLfUi: + +CspDsgLfUi +=========== + +.. automodule:: PySAM.CspDsgLfUi + :members: + +CspDsgLfUi is a wrapper for the SSC compute module `cmod_csp_dsg_lf_ui.cpp `_ + +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. + +- None + +Functions +----------- + +.. autoclass:: PySAM.CspDsgLfUi.CspDsgLfUi + :members: + +Common Group +------------- + +.. autoclass:: PySAM.CspDsgLfUi.CspDsgLfUi.Common + :members: + +Outputs Group +-------------- + +.. autoclass:: PySAM.CspDsgLfUi.CspDsgLfUi.Outputs + :members: + diff --git a/docs/modules/DsgFluxPreprocess.rst b/docs/modules/DsgFluxPreprocess.rst index b8759ebd..0d2b5833 100644 --- a/docs/modules/DsgFluxPreprocess.rst +++ b/docs/modules/DsgFluxPreprocess.rst @@ -1,45 +1,34 @@ .. _DsgFluxPreprocess: DsgFluxPreprocess -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_dsg_flux_preprocess.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.DsgFluxPreprocess + :members: -Creating an Instance -=================================== +DsgFluxPreprocess is a wrapper for the SSC compute module `cmod_dsg_flux_preprocess.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**DsgFluxPreprocess model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.DsgFluxPreprocess - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.DsgFluxPreprocess.DsgFluxPreprocess :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.DsgFluxPreprocess.DsgFluxPreprocess.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.DsgFluxPreprocess.DsgFluxPreprocess.Outputs :members: diff --git a/docs/modules/Equpartflip.rst b/docs/modules/Equpartflip.rst index b8e6b70d..41cdff1b 100644 --- a/docs/modules/Equpartflip.rst +++ b/docs/modules/Equpartflip.rst @@ -1,155 +1,144 @@ .. _Equpartflip: Equpartflip -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_equpartflip.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - - construction_financing_cost - - total_installed_cost +.. automodule:: PySAM.Equpartflip + :members: -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +Equpartflip is a wrapper for the SSC compute module `cmod_equpartflip.cpp `_ -Creating an Instance -=================================== +Interdependent Variables +-------------------------- -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -**Equpartflip model description** + - construction_financing_cost -.. automodule:: PySAM.Equpartflip - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Equpartflip.Equpartflip :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.Revenue :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Equpartflip.Equpartflip.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Equpartflip.Equpartflip.PaymentIncentives :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.SystemOutput :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.ElectricityRates :members: Recapitalization Group -====================================================== +----------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.Recapitalization :members: TimeOfDelivery Group -====================================================== +--------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.TimeOfDelivery :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Equpartflip.Equpartflip.UtilityBill :members: ConstructionFinancing Group -====================================================== +---------------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.ConstructionFinancing :members: OtherCapitalCosts Group -====================================================== +------------------------ .. autoclass:: PySAM.Equpartflip.Equpartflip.OtherCapitalCosts :members: IRRTargets Group -====================================================== +----------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.IRRTargets :members: DeveloperCapitalRecovery Group -====================================================== +------------------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.DeveloperCapitalRecovery :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Equpartflip.Equpartflip.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.ChargesByMonth :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.BatterySystem :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Equpartflip.Equpartflip.Outputs :members: diff --git a/docs/modules/EtesElectricResistance.rst b/docs/modules/EtesElectricResistance.rst index 1a051aaf..cf010758 100644 --- a/docs/modules/EtesElectricResistance.rst +++ b/docs/modules/EtesElectricResistance.rst @@ -1,162 +1,182 @@ .. _EtesElectricResistance: EtesElectricResistance -*********************************** +======================= -Wrapper for SAM Simulation Core model: `cmod_etes_electric_resistance.cpp `_ +.. automodule:: PySAM.EtesElectricResistance + :members: + +EtesElectricResistance is a wrapper for the SSC compute module `cmod_etes_electric_resistance.cpp `_ -Input Consistency Warning -================================== +Interdependent Variables +-------------------------- -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - const_per_interest_rate1 + - const_per_interest_rate2 + - const_per_interest_rate3 + - const_per_interest_rate4 + - const_per_interest_rate5 + - const_per_months1 + - const_per_months2 + - const_per_months3 + - const_per_months4 + - const_per_months5 + - const_per_percent1 + - const_per_percent2 + - const_per_percent3 + - const_per_percent4 + - const_per_percent5 + - const_per_upfront_rate1 + - const_per_upfront_rate2 + - const_per_upfront_rate3 + - const_per_upfront_rate4 + - const_per_upfront_rate5 + - dispatch_factor1 + - dispatch_factor2 + - dispatch_factor3 + - dispatch_factor4 + - dispatch_factor5 + - dispatch_factor6 + - dispatch_factor7 + - dispatch_factor8 - - dispatch_factor9 - - dispatch_factors_ts - - dispatch_sched_weekday - - dispatch_sched_weekend - - ppa_multiplier_model -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - dispatch_factor9 -Creating an Instance -=================================== + - dispatch_factors_ts -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - dispatch_sched_weekday -**EtesElectricResistance model description** + - dispatch_sched_weekend -.. automodule:: PySAM.EtesElectricResistance - :members: + - ppa_multiplier_model Functions -=================================== +----------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.SolarResource :members: SystemControl Group -====================================================== +-------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.SystemControl :members: FinancialModel Group -====================================================== +--------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.FinancialModel :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.SystemDesign :members: PowerCycle Group -====================================================== +----------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.PowerCycle :members: RankineCycle Group -====================================================== +------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.RankineCycle :members: UserDefinedPowerCycle Group -====================================================== +---------------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.UserDefinedPowerCycle :members: ThermalStorage Group -====================================================== +--------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.ThermalStorage :members: Heater Group -====================================================== +------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.Heater :members: TimeOfDeliveryFactors Group -====================================================== +---------------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.TimeOfDeliveryFactors :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.Revenue :members: SystemCost Group -====================================================== +----------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.SystemCost :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.SystemCosts :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.FinancialParameters :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.EtesElectricResistance.EtesElectricResistance.Outputs :members: diff --git a/docs/modules/Fuelcell.rst b/docs/modules/Fuelcell.rst index 759feb98..92b59cd8 100644 --- a/docs/modules/Fuelcell.rst +++ b/docs/modules/Fuelcell.rst @@ -1,76 +1,76 @@ .. _Fuelcell: Fuelcell -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_fuelcell.cpp `_ +.. automodule:: PySAM.Fuelcell + :members: + +Fuelcell is a wrapper for the SSC compute module `cmod_fuelcell.cpp `_ -Input Consistency Warning -================================== +Interdependent Variables +-------------------------- -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - dispatch_manual_fuelcelldischarge + - dispatch_manual_percent_fc_discharge + - dispatch_manual_units_fc_discharge + - fuelcell_degradation + - fuelcell_dispatch + - fuelcell_dynamic_response_down + - fuelcell_dynamic_response_up + - fuelcell_fuel_available - - fuelcell_fuel_type - - fuelcell_lhv - - fuelcell_number_of_units - - fuelcell_unit_max_power - - fuelcell_unit_min_power -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - fuelcell_fuel_type -Creating an Instance -=================================== + - fuelcell_lhv -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - fuelcell_number_of_units -**Fuelcell model description** + - fuelcell_unit_max_power -.. automodule:: PySAM.Fuelcell - :members: + - fuelcell_unit_min_power Functions -=================================== +----------- .. autoclass:: PySAM.Fuelcell.Fuelcell :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Fuelcell.Fuelcell.Lifetime :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Fuelcell.Fuelcell.Common :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Fuelcell.Fuelcell.Load :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Fuelcell.Fuelcell.FuelCell :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Fuelcell.Fuelcell.Outputs :members: diff --git a/docs/modules/GenericSystem.rst b/docs/modules/GenericSystem.rst index d687645c..fa6e6749 100644 --- a/docs/modules/GenericSystem.rst +++ b/docs/modules/GenericSystem.rst @@ -1,59 +1,48 @@ .. _GenericSystem: GenericSystem -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_generic_system.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - - conv_eff - - heat_rate +.. automodule:: PySAM.GenericSystem + :members: -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +GenericSystem is a wrapper for the SSC compute module `cmod_generic_system.cpp `_ -Creating an Instance -=================================== +Interdependent Variables +-------------------------- -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -**GenericSystem model description** + - conv_eff -.. automodule:: PySAM.GenericSystem - :members: + - heat_rate Functions -=================================== +----------- .. autoclass:: PySAM.GenericSystem.GenericSystem :members: Plant Group -====================================================== +------------ .. autoclass:: PySAM.GenericSystem.GenericSystem.Plant :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.GenericSystem.GenericSystem.Lifetime :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.GenericSystem.GenericSystem.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.GenericSystem.GenericSystem.Outputs :members: diff --git a/docs/modules/Geothermal.rst b/docs/modules/Geothermal.rst index 1d354475..bc182118 100644 --- a/docs/modules/Geothermal.rst +++ b/docs/modules/Geothermal.rst @@ -1,95 +1,126 @@ .. _Geothermal: Geothermal -*********************************** +=========== -Wrapper for SAM Simulation Core model: `cmod_geothermal.cpp `_ +.. automodule:: PySAM.Geothermal + :members: -Input Consistency Warning -================================== +Geothermal is a wrapper for the SSC compute module `cmod_geothermal.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - T_htf_hot_ref + - ambient_pressure + - analysis_type + - casing_size + - conversion_subtype + - conversion_type + - decline_type + - delta_pressure_equip + - design_temp + - dt_prod_well + - excess_pressure_pump + - fracture_angle + - fracture_aperature + - fracture_width + - geothermal_analysis_period + - hr_pl_nlev + - inj_prod_well_distance + - inj_well_diam + - model_choice + - nameplate + - num_fractures + - num_wells + - num_wells_getem + - plant_efficiency_input + - pump_efficiency + - reservoir_height + - reservoir_permeability + - reservoir_pressure_change + - reservoir_pressure_change_type + - reservoir_width + - resource_depth + - resource_temp + - resource_type + - rock_density + - rock_specific_heat + - rock_thermal_conductivity + - specified_pump_work_amount + - specify_pump_work + - subsurface_water_loss - - temp_decline_max - - temp_decline_rate - - well_diameter - - well_flow_rate - - wet_bulb_temp -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - temp_decline_max -Creating an Instance -=================================== + - temp_decline_rate -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - well_diameter -**Geothermal model description** + - well_flow_rate -.. automodule:: PySAM.Geothermal - :members: + - wet_bulb_temp Functions -=================================== +----------- .. autoclass:: PySAM.Geothermal.Geothermal :members: GeoHourly Group -====================================================== +---------------- .. autoclass:: PySAM.Geothermal.Geothermal.GeoHourly :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Geothermal.Geothermal.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Geothermal.Geothermal.Outputs :members: diff --git a/docs/modules/GeothermalCosts.rst b/docs/modules/GeothermalCosts.rst index fb3ce2fa..13106496 100644 --- a/docs/modules/GeothermalCosts.rst +++ b/docs/modules/GeothermalCosts.rst @@ -1,45 +1,34 @@ .. _GeothermalCosts: GeothermalCosts -*********************************** +================ -Wrapper for SAM Simulation Core model: `cmod_geothermal_costs.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.GeothermalCosts + :members: -Creating an Instance -=================================== +GeothermalCosts is a wrapper for the SSC compute module `cmod_geothermal_costs.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**GeothermalCosts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.GeothermalCosts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.GeothermalCosts.GeothermalCosts :members: GeoHourly Group -====================================================== +---------------- .. autoclass:: PySAM.GeothermalCosts.GeothermalCosts.GeoHourly :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.GeothermalCosts.GeothermalCosts.Outputs :members: diff --git a/docs/modules/Grid.rst b/docs/modules/Grid.rst index c95d91fe..6a9da68c 100644 --- a/docs/modules/Grid.rst +++ b/docs/modules/Grid.rst @@ -1,63 +1,52 @@ .. _Grid: Grid -*********************************** +===== -Wrapper for SAM Simulation Core model: `cmod_grid.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Grid + :members: -Creating an Instance -=================================== +Grid is a wrapper for the SSC compute module `cmod_grid.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Grid model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Grid - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Grid.Grid :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Grid.Grid.Lifetime :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Grid.Grid.SystemOutput :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Grid.Grid.Load :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Grid.Grid.GridLimits :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Grid.Grid.Outputs :members: diff --git a/docs/modules/Hcpv.rst b/docs/modules/Hcpv.rst index 6180274b..f131b83b 100644 --- a/docs/modules/Hcpv.rst +++ b/docs/modules/Hcpv.rst @@ -1,92 +1,96 @@ .. _Hcpv: Hcpv -*********************************** +===== -Wrapper for SAM Simulation Core model: `cmod_hcpv.cpp `_ +.. automodule:: PySAM.Hcpv + :members: -Input Consistency Warning -================================== +Hcpv is a wrapper for the SSC compute module `cmod_hcpv.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - array_modules_per_tracker + - array_num_inverters + - array_num_trackers + - inv_snl_pdco + - module_a0 + - module_a1 + - module_a2 + - module_a3 + - module_a4 + - module_alignment_error + - module_cell_area + - module_concentration - - module_flutter_loss_coeff - - module_ncells - - module_optical_error - - module_reference - - system_capacity -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - module_flutter_loss_coeff -Creating an Instance -=================================== + - module_ncells -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - module_optical_error -**Hcpv model description** + - module_reference -.. automodule:: PySAM.Hcpv - :members: + - system_capacity Functions -=================================== +----------- .. autoclass:: PySAM.Hcpv.Hcpv :members: SolarResourceData Group -====================================================== +------------------------ .. autoclass:: PySAM.Hcpv.Hcpv.SolarResourceData :members: PVWatts Group -====================================================== +-------------- .. autoclass:: PySAM.Hcpv.Hcpv.PVWatts :members: HCPVModule Group -====================================================== +----------------- .. autoclass:: PySAM.Hcpv.Hcpv.HCPVModule :members: InverterCECDatabase Group -====================================================== +-------------------------- .. autoclass:: PySAM.Hcpv.Hcpv.InverterCECDatabase :members: HCPVArray Group -====================================================== +---------------- .. autoclass:: PySAM.Hcpv.Hcpv.HCPVArray :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Hcpv.Hcpv.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Hcpv.Hcpv.Outputs :members: diff --git a/docs/modules/HostDeveloper.rst b/docs/modules/HostDeveloper.rst index 7cbc1052..0706bd12 100644 --- a/docs/modules/HostDeveloper.rst +++ b/docs/modules/HostDeveloper.rst @@ -1,143 +1,132 @@ .. _HostDeveloper: HostDeveloper -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_host_developer.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - - construction_financing_cost - - total_installed_cost +.. automodule:: PySAM.HostDeveloper + :members: -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +HostDeveloper is a wrapper for the SSC compute module `cmod_host_developer.cpp `_ -Creating an Instance -=================================== +Interdependent Variables +-------------------------- -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -**HostDeveloper model description** + - construction_financing_cost -.. automodule:: PySAM.HostDeveloper - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Revenue :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.HostDeveloper.HostDeveloper.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.HostDeveloper.HostDeveloper.PaymentIncentives :members: Host Group -====================================================== +----------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Host :members: TimeSeries Group -====================================================== +----------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.TimeSeries :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.ChargesByMonth :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.SystemOutput :members: Moratorium Group -====================================================== +----------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Moratorium :members: Recapitalization Group -====================================================== +----------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Recapitalization :members: TimeOfDelivery Group -====================================================== +--------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.TimeOfDelivery :members: ConstructionFinancing Group -====================================================== +---------------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.ConstructionFinancing :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.BatterySystem :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.LCOS :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.HostDeveloper.HostDeveloper.Outputs :members: diff --git a/docs/modules/Iec61853interp.rst b/docs/modules/Iec61853interp.rst index a9196599..aa8f12d9 100644 --- a/docs/modules/Iec61853interp.rst +++ b/docs/modules/Iec61853interp.rst @@ -1,51 +1,40 @@ .. _Iec61853interp: Iec61853interp -*********************************** +=============== -Wrapper for SAM Simulation Core model: `cmod_iec61853interp.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Iec61853interp + :members: -Creating an Instance -=================================== +Iec61853interp is a wrapper for the SSC compute module `cmod_iec61853interp.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Iec61853interp model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Iec61853interp - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Iec61853interp.Iec61853interp :members: IEC61853 Group -====================================================== +--------------- .. autoclass:: PySAM.Iec61853interp.Iec61853interp.IEC61853 :members: SingleDiodeModel Group -====================================================== +----------------------- .. autoclass:: PySAM.Iec61853interp.Iec61853interp.SingleDiodeModel :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Iec61853interp.Iec61853interp.Outputs :members: diff --git a/docs/modules/Iec61853par.rst b/docs/modules/Iec61853par.rst index 7505094b..3eda08c1 100644 --- a/docs/modules/Iec61853par.rst +++ b/docs/modules/Iec61853par.rst @@ -1,45 +1,34 @@ .. _Iec61853par: Iec61853par -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_iec61853par.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Iec61853par + :members: -Creating an Instance -=================================== +Iec61853par is a wrapper for the SSC compute module `cmod_iec61853par.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Iec61853par model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Iec61853par - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Iec61853par.Iec61853par :members: IEC61853 Group -====================================================== +--------------- .. autoclass:: PySAM.Iec61853par.Iec61853par.IEC61853 :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Iec61853par.Iec61853par.Outputs :members: diff --git a/docs/modules/InvCecCg.rst b/docs/modules/InvCecCg.rst index d4356d90..4453b6b5 100644 --- a/docs/modules/InvCecCg.rst +++ b/docs/modules/InvCecCg.rst @@ -1,45 +1,34 @@ .. _InvCecCg: InvCecCg -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_inv_cec_cg.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.InvCecCg + :members: -Creating an Instance -=================================== +InvCecCg is a wrapper for the SSC compute module `cmod_inv_cec_cg.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**InvCecCg model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.InvCecCg - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.InvCecCg.InvCecCg :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.InvCecCg.InvCecCg.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.InvCecCg.InvCecCg.Outputs :members: diff --git a/docs/modules/IphToLcoefcr.rst b/docs/modules/IphToLcoefcr.rst index 85e14abe..345755de 100644 --- a/docs/modules/IphToLcoefcr.rst +++ b/docs/modules/IphToLcoefcr.rst @@ -1,45 +1,34 @@ .. _IphToLcoefcr: IphToLcoefcr -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_iph_to_lcoefcr.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.IphToLcoefcr + :members: -Creating an Instance -=================================== +IphToLcoefcr is a wrapper for the SSC compute module `cmod_iph_to_lcoefcr.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**IphToLcoefcr model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.IphToLcoefcr - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.IphToLcoefcr.IphToLcoefcr :members: IPHLCOH Group -====================================================== +-------------- .. autoclass:: PySAM.IphToLcoefcr.IphToLcoefcr.IPHLCOH :members: SimpleLCOE Group -====================================================== +----------------- .. autoclass:: PySAM.IphToLcoefcr.IphToLcoefcr.SimpleLCOE :members: diff --git a/docs/modules/Ippppa.rst b/docs/modules/Ippppa.rst index 7c82a7c7..dcbc777f 100644 --- a/docs/modules/Ippppa.rst +++ b/docs/modules/Ippppa.rst @@ -1,81 +1,70 @@ .. _Ippppa: Ippppa -*********************************** +======= -Wrapper for SAM Simulation Core model: `cmod_ippppa.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Ippppa + :members: -Creating an Instance -=================================== +Ippppa is a wrapper for the SSC compute module `cmod_ippppa.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Ippppa model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Ippppa - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Ippppa.Ippppa :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Ippppa.Ippppa.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Ippppa.Ippppa.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Ippppa.Ippppa.LandLease :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Ippppa.Ippppa.Depreciation :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Ippppa.Ippppa.TaxCreditIncentives :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Ippppa.Ippppa.PaymentIncentives :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Ippppa.Ippppa.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Ippppa.Ippppa.Outputs :members: diff --git a/docs/modules/Irradproc.rst b/docs/modules/Irradproc.rst index c4318aaf..42781f98 100644 --- a/docs/modules/Irradproc.rst +++ b/docs/modules/Irradproc.rst @@ -1,45 +1,34 @@ .. _Irradproc: Irradproc -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_irradproc.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Irradproc + :members: -Creating an Instance -=================================== +Irradproc is a wrapper for the SSC compute module `cmod_irradproc.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Irradproc model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Irradproc - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Irradproc.Irradproc :members: IrradianceProcessor Group -====================================================== +-------------------------- .. autoclass:: PySAM.Irradproc.Irradproc.IrradianceProcessor :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Irradproc.Irradproc.Outputs :members: diff --git a/docs/modules/IsccDesignPoint.rst b/docs/modules/IsccDesignPoint.rst index a5c5b6a1..6c8cef4f 100644 --- a/docs/modules/IsccDesignPoint.rst +++ b/docs/modules/IsccDesignPoint.rst @@ -1,45 +1,34 @@ .. _IsccDesignPoint: IsccDesignPoint -*********************************** +================ -Wrapper for SAM Simulation Core model: `cmod_iscc_design_point.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.IsccDesignPoint + :members: -Creating an Instance -=================================== +IsccDesignPoint is a wrapper for the SSC compute module `cmod_iscc_design_point.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**IsccDesignPoint model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.IsccDesignPoint - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.IsccDesignPoint.IsccDesignPoint :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.IsccDesignPoint.IsccDesignPoint.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.IsccDesignPoint.IsccDesignPoint.Outputs :members: diff --git a/docs/modules/Layoutarea.rst b/docs/modules/Layoutarea.rst index a8dc37e6..1d20b62b 100644 --- a/docs/modules/Layoutarea.rst +++ b/docs/modules/Layoutarea.rst @@ -1,45 +1,34 @@ .. _Layoutarea: Layoutarea -*********************************** +=========== -Wrapper for SAM Simulation Core model: `cmod_layoutarea.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Layoutarea + :members: -Creating an Instance -=================================== +Layoutarea is a wrapper for the SSC compute module `cmod_layoutarea.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Layoutarea model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Layoutarea - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Layoutarea.Layoutarea :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Layoutarea.Layoutarea.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Layoutarea.Layoutarea.Outputs :members: diff --git a/docs/modules/Lcoefcr.rst b/docs/modules/Lcoefcr.rst index b27beffa..9354a31a 100644 --- a/docs/modules/Lcoefcr.rst +++ b/docs/modules/Lcoefcr.rst @@ -1,45 +1,34 @@ .. _Lcoefcr: Lcoefcr -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_lcoefcr.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Lcoefcr + :members: -Creating an Instance -=================================== +Lcoefcr is a wrapper for the SSC compute module `cmod_lcoefcr.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Lcoefcr model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Lcoefcr - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Lcoefcr.Lcoefcr :members: SimpleLCOE Group -====================================================== +----------------- .. autoclass:: PySAM.Lcoefcr.Lcoefcr.SimpleLCOE :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Lcoefcr.Lcoefcr.Outputs :members: diff --git a/docs/modules/Levpartflip.rst b/docs/modules/Levpartflip.rst index ed400811..4faaaaf5 100644 --- a/docs/modules/Levpartflip.rst +++ b/docs/modules/Levpartflip.rst @@ -1,155 +1,144 @@ .. _Levpartflip: Levpartflip -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_levpartflip.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - - construction_financing_cost - - total_installed_cost +.. automodule:: PySAM.Levpartflip + :members: -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +Levpartflip is a wrapper for the SSC compute module `cmod_levpartflip.cpp `_ -Creating an Instance -=================================== +Interdependent Variables +-------------------------- -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -**Levpartflip model description** + - construction_financing_cost -.. automodule:: PySAM.Levpartflip - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Levpartflip.Levpartflip :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.Revenue :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Levpartflip.Levpartflip.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Levpartflip.Levpartflip.PaymentIncentives :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.SystemOutput :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.ElectricityRates :members: Moratorium Group -====================================================== +----------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.Moratorium :members: Recapitalization Group -====================================================== +----------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.Recapitalization :members: TimeOfDelivery Group -====================================================== +--------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.TimeOfDelivery :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Levpartflip.Levpartflip.UtilityBill :members: ConstructionFinancing Group -====================================================== +---------------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.ConstructionFinancing :members: OtherCapitalCosts Group -====================================================== +------------------------ .. autoclass:: PySAM.Levpartflip.Levpartflip.OtherCapitalCosts :members: IRRTargets Group -====================================================== +----------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.IRRTargets :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Levpartflip.Levpartflip.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.ChargesByMonth :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.BatterySystem :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Levpartflip.Levpartflip.Outputs :members: diff --git a/docs/modules/LinearFresnelDsgIph.rst b/docs/modules/LinearFresnelDsgIph.rst index 3bffebe2..53f5db79 100644 --- a/docs/modules/LinearFresnelDsgIph.rst +++ b/docs/modules/LinearFresnelDsgIph.rst @@ -1,82 +1,80 @@ .. _LinearFresnelDsgIph: LinearFresnelDsgIph -*********************************** +==================== -Wrapper for SAM Simulation Core model: `cmod_linear_fresnel_dsg_iph.cpp `_ +.. automodule:: PySAM.LinearFresnelDsgIph + :members: -Input Consistency Warning -================================== +LinearFresnelDsgIph is a wrapper for the SSC compute module `cmod_linear_fresnel_dsg_iph.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - I_bn_des + + - P_turb_des + - T_amb_des_sf + - T_cold_ref - - T_hot - - nLoops - - nModBoil - - q_pb_des -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - deltaT_subcooled -Creating an Instance -=================================== + - nLoops -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - nModBoil -**LinearFresnelDsgIph model description** + - q_pb_des -.. automodule:: PySAM.LinearFresnelDsgIph - :members: + - use_quality_or_subcooled Functions -=================================== +----------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.Weather :members: Solarfield Group -====================================================== +----------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.Solarfield :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.Powerblock :members: Heliostat Group -====================================================== +---------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.Heliostat :members: HeatSink Group -====================================================== +--------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.HeatSink :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.LinearFresnelDsgIph.LinearFresnelDsgIph.Outputs :members: diff --git a/docs/modules/Merchantplant.rst b/docs/modules/Merchantplant.rst index 35bbd182..88f8cd39 100644 --- a/docs/modules/Merchantplant.rst +++ b/docs/modules/Merchantplant.rst @@ -1,145 +1,136 @@ .. _Merchantplant: Merchantplant -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_merchantplant.cpp `_ - -Input Consistency Warning -================================== +.. automodule:: PySAM.Merchantplant + :members: -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Merchantplant is a wrapper for the SSC compute module `cmod_merchantplant.cpp `_ - - construction_financing_cost - - cp_battery_nameplate - - cp_system_nameplate - - total_installed_cost +Interdependent Variables +-------------------------- -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Creating an Instance -=================================== + - construction_financing_cost -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - cp_battery_nameplate -**Merchantplant model description** + - cp_system_nameplate -.. automodule:: PySAM.Merchantplant - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Merchantplant.Merchantplant :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Merchantplant.Merchantplant.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Merchantplant.Merchantplant.PaymentIncentives :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.Revenue :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.BatterySystem :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.ElectricityRates :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.SystemOutput :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Merchantplant.Merchantplant.UtilityBill :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.Lifetime :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.FuelCell :members: CapacityPayments Group -====================================================== +----------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.CapacityPayments :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Merchantplant.Merchantplant.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.ChargesByMonth :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.GridLimits :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Merchantplant.Merchantplant.Outputs :members: diff --git a/docs/modules/MhkCosts.rst b/docs/modules/MhkCosts.rst index 97f30fc5..6991a5a6 100644 --- a/docs/modules/MhkCosts.rst +++ b/docs/modules/MhkCosts.rst @@ -1,45 +1,34 @@ .. _MhkCosts: MhkCosts -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_mhk_costs.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.MhkCosts + :members: -Creating an Instance -=================================== +MhkCosts is a wrapper for the SSC compute module `cmod_mhk_costs.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**MhkCosts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.MhkCosts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.MhkCosts.MhkCosts :members: MHKCosts Group -====================================================== +--------------- .. autoclass:: PySAM.MhkCosts.MhkCosts.MHKCosts :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.MhkCosts.MhkCosts.Outputs :members: diff --git a/docs/modules/MhkTidal.rst b/docs/modules/MhkTidal.rst index 49f6991a..410cf7e9 100644 --- a/docs/modules/MhkTidal.rst +++ b/docs/modules/MhkTidal.rst @@ -1,48 +1,38 @@ .. _MhkTidal: MhkTidal -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_mhk_tidal.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +.. automodule:: PySAM.MhkTidal + :members: - - number_devices - - system_capacity - - tidal_power_curve +MhkTidal is a wrapper for the SSC compute module `cmod_mhk_tidal.cpp `_ -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +Interdependent Variables +-------------------------- -Creating an Instance -=================================== +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - number_devices -**MhkTidal model description** + - system_capacity -.. automodule:: PySAM.MhkTidal - :members: + - tidal_power_curve Functions -=================================== +----------- .. autoclass:: PySAM.MhkTidal.MhkTidal :members: MHKTidal Group -====================================================== +--------------- .. autoclass:: PySAM.MhkTidal.MhkTidal.MHKTidal :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.MhkTidal.MhkTidal.Outputs :members: diff --git a/docs/modules/MhkWave.rst b/docs/modules/MhkWave.rst index 99596ee8..38129961 100644 --- a/docs/modules/MhkWave.rst +++ b/docs/modules/MhkWave.rst @@ -1,49 +1,40 @@ .. _MhkWave: MhkWave -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_mhk_wave.cpp `_ - -Input Consistency Warning -================================== +.. automodule:: PySAM.MhkWave + :members: -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +MhkWave is a wrapper for the SSC compute module `cmod_mhk_wave.cpp `_ - - device_rated_power - - number_devices - - system_capacity - - wave_power_matrix +Interdependent Variables +-------------------------- -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Creating an Instance -=================================== + - device_rated_power -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - number_devices -**MhkWave model description** + - system_capacity -.. automodule:: PySAM.MhkWave - :members: + - wave_power_matrix Functions -=================================== +----------- .. autoclass:: PySAM.MhkWave.MhkWave :members: MHKWave Group -====================================================== +-------------- .. autoclass:: PySAM.MhkWave.MhkWave.MHKWave :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.MhkWave.MhkWave.Outputs :members: diff --git a/docs/modules/Poacalib.rst b/docs/modules/Poacalib.rst index a03b3004..218b87f6 100644 --- a/docs/modules/Poacalib.rst +++ b/docs/modules/Poacalib.rst @@ -1,45 +1,34 @@ .. _Poacalib: Poacalib -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_poacalib.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Poacalib + :members: -Creating an Instance -=================================== +Poacalib is a wrapper for the SSC compute module `cmod_poacalib.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Poacalib model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Poacalib - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Poacalib.Poacalib :members: POACalibrate Group -====================================================== +------------------- .. autoclass:: PySAM.Poacalib.Poacalib.POACalibrate :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Poacalib.Poacalib.Outputs :members: diff --git a/docs/modules/Pv6parmod.rst b/docs/modules/Pv6parmod.rst index 0be88ba8..5ac1ca00 100644 --- a/docs/modules/Pv6parmod.rst +++ b/docs/modules/Pv6parmod.rst @@ -1,51 +1,40 @@ .. _Pv6parmod: Pv6parmod -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_pv6parmod.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pv6parmod + :members: -Creating an Instance -=================================== +Pv6parmod is a wrapper for the SSC compute module `cmod_pv6parmod.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pv6parmod model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pv6parmod - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pv6parmod.Pv6parmod :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.Pv6parmod.Pv6parmod.Weather :members: CEC6ParameterPVModuleModel Group -====================================================== +--------------------------------- .. autoclass:: PySAM.Pv6parmod.Pv6parmod.CEC6ParameterPVModuleModel :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pv6parmod.Pv6parmod.Outputs :members: diff --git a/docs/modules/PvGetShadeLossMpp.rst b/docs/modules/PvGetShadeLossMpp.rst index a42ee1f3..60af6266 100644 --- a/docs/modules/PvGetShadeLossMpp.rst +++ b/docs/modules/PvGetShadeLossMpp.rst @@ -1,45 +1,34 @@ .. _PvGetShadeLossMpp: PvGetShadeLossMpp -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_pv_get_shade_loss_mpp.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.PvGetShadeLossMpp + :members: -Creating an Instance -=================================== +PvGetShadeLossMpp is a wrapper for the SSC compute module `cmod_pv_get_shade_loss_mpp.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**PvGetShadeLossMpp model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.PvGetShadeLossMpp - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.PvGetShadeLossMpp.PvGetShadeLossMpp :members: PVShadeLossDB Group -====================================================== +-------------------- .. autoclass:: PySAM.PvGetShadeLossMpp.PvGetShadeLossMpp.PVShadeLossDB :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.PvGetShadeLossMpp.PvGetShadeLossMpp.Outputs :members: diff --git a/docs/modules/Pvsamv1.rst b/docs/modules/Pvsamv1.rst index af2244f9..845ee1d4 100644 --- a/docs/modules/Pvsamv1.rst +++ b/docs/modules/Pvsamv1.rst @@ -1,321 +1,422 @@ .. _Pvsamv1: Pvsamv1 -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_pvsamv1.cpp `_ +.. automodule:: PySAM.Pvsamv1 + :members: -Input Consistency Warning -================================== +Pvsamv1 is a wrapper for the SSC compute module `cmod_pvsamv1.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - 6par_aisc + - 6par_bvoc + - 6par_imp + - 6par_isc + - 6par_vmp + - 6par_voc + - cec_area + - cec_i_mp_ref + - cec_module_length + - cec_module_width + - cec_v_mp_ref + - cec_v_oc_ref + - inv_cec_cg_c0 + - inv_cec_cg_c1 + - inv_cec_cg_c2 + - inv_cec_cg_c3 + - inv_cec_cg_eff_cec + - inv_cec_cg_paco + - inv_cec_cg_pdco + - inv_cec_cg_psco + - inv_cec_cg_vdcmax + - inv_cec_cg_vdco + - inv_ds_paco + - inv_ds_vdcmax + - inv_num_mppt + - inv_pd_eff + - inv_pd_paco + - inv_pd_pdco + - inv_pd_vdcmax + - inv_snl_c0 + - inv_snl_c1 + - inv_snl_c2 + - inv_snl_c3 + - inv_snl_eff_cec + - inv_snl_paco + - inv_snl_pdco + - inv_snl_pso + - inv_snl_vdcmax + - inv_snl_vdco + - inverter_count + - inverter_model + - module_model + - mppt_hi_inverter + - mppt_low_inverter + - sd11par_Vmp0 + - sd11par_Voc0 + - snl_a + - snl_a0 + - snl_a1 + - snl_a2 + - snl_a3 + - snl_a4 + - snl_aimp + - snl_aisc + - snl_area + - snl_b + - snl_b0 + - snl_b1 + - snl_b2 + - snl_b3 + - snl_b4 + - snl_b5 + - snl_bvmpo + - snl_bvoco + - snl_c0 + - snl_c1 + - snl_c2 + - snl_c3 + - snl_dtc + - snl_fd + - snl_impo + - snl_isco + - snl_mbvmp + - snl_mbvoc + - snl_module_structure + - snl_n + - snl_ref_a + - snl_ref_b + - snl_ref_dT + - snl_series_cells + - snl_vmpo + - snl_voco + - spe_area + - spe_eff0 + - spe_eff1 + - spe_eff2 + - spe_eff3 + - spe_eff4 + - spe_rad0 + - spe_rad1 + - spe_rad2 + - spe_rad3 + - spe_rad4 + - spe_reference + - spe_vmp + - spe_voc + - subarray1_modules_per_string + - subarray1_nstrings + - subarray2_enable + - subarray2_modules_per_string + - subarray2_nstrings + - subarray3_enable + - subarray3_modules_per_string - - subarray3_nstrings - - subarray4_enable - - subarray4_modules_per_string - - subarray4_nstrings - - system_capacity -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - subarray3_nstrings -Creating an Instance -=================================== + - subarray4_enable -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - subarray4_modules_per_string -**Pvsamv1 model description** + - subarray4_nstrings -.. automodule:: PySAM.Pvsamv1 - :members: + - system_capacity Functions -=================================== +----------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1 :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.SolarResource :members: Losses Group -====================================================== +------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Losses :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Lifetime :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.SystemDesign :members: Shading Group -====================================================== +-------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Shading :members: Layout Group -====================================================== +------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Layout :members: Module Group -====================================================== +------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Module :members: SimpleEfficiencyModuleModel Group -====================================================== +---------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.SimpleEfficiencyModuleModel :members: CECPerformanceModelWithModuleDatabase Group -====================================================== +-------------------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.CECPerformanceModelWithModuleDatabase :members: CECPerformanceModelWithUserEnteredSpecifications Group -====================================================== +------------------------------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.CECPerformanceModelWithUserEnteredSpecifications :members: SandiaPVArrayPerformanceModelWithModuleDatabase Group -====================================================== +------------------------------------------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.SandiaPVArrayPerformanceModelWithModuleDatabase :members: IEC61853SingleDiodeModel Group -====================================================== +------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.IEC61853SingleDiodeModel :members: MermoudLejeuneSingleDiodeModel Group -====================================================== +------------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.MermoudLejeuneSingleDiodeModel :members: Inverter Group -====================================================== +--------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Inverter :members: InverterCECDatabase Group -====================================================== +-------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.InverterCECDatabase :members: InverterCECCoefficientGenerator Group -====================================================== +-------------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.InverterCECCoefficientGenerator :members: InverterDatasheet Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.InverterDatasheet :members: InverterPartLoadCurve Group -====================================================== +---------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.InverterPartLoadCurve :members: InverterMermoudLejeuneModel Group -====================================================== +---------------------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.InverterMermoudLejeuneModel :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.BatterySystem :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Load :members: BatteryCell Group -====================================================== +------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.BatteryCell :members: BatteryDispatch Group -====================================================== +---------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.BatteryDispatch :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.SystemCosts :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.FuelCell :members: PriceSignal Group -====================================================== +------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.PriceSignal :members: +Revenue Group +-------------- + +.. autoclass:: PySAM.Pvsamv1.Pvsamv1.Revenue + :members: + ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.ElectricityRates :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.GridLimits :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvsamv1.Pvsamv1.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvsamv1.Pvsamv1.Outputs :members: diff --git a/docs/modules/Pvsandiainv.rst b/docs/modules/Pvsandiainv.rst index 965dddbf..b6382353 100644 --- a/docs/modules/Pvsandiainv.rst +++ b/docs/modules/Pvsandiainv.rst @@ -1,45 +1,34 @@ .. _Pvsandiainv: Pvsandiainv -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_pvsandiainv.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvsandiainv + :members: -Creating an Instance -=================================== +Pvsandiainv is a wrapper for the SSC compute module `cmod_pvsandiainv.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvsandiainv model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvsandiainv - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvsandiainv.Pvsandiainv :members: SandiaInverterModel Group -====================================================== +-------------------------- .. autoclass:: PySAM.Pvsandiainv.Pvsandiainv.SandiaInverterModel :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvsandiainv.Pvsandiainv.Outputs :members: diff --git a/docs/modules/Pvwattsv1.rst b/docs/modules/Pvwattsv1.rst index ee2bdbdb..beaebb9d 100644 --- a/docs/modules/Pvwattsv1.rst +++ b/docs/modules/Pvwattsv1.rst @@ -1,57 +1,46 @@ .. _Pvwattsv1: Pvwattsv1 -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_pvwattsv1.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv1 + :members: -Creating an Instance -=================================== +Pvwattsv1 is a wrapper for the SSC compute module `cmod_pvwattsv1.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv1 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv1 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv1.Pvwattsv1 :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1.Pvwattsv1.Weather :members: PVWatts Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1.Pvwattsv1.PVWatts :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvwattsv1.Pvwattsv1.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1.Pvwattsv1.Outputs :members: diff --git a/docs/modules/Pvwattsv11ts.rst b/docs/modules/Pvwattsv11ts.rst index c2c08445..155d29d4 100644 --- a/docs/modules/Pvwattsv11ts.rst +++ b/docs/modules/Pvwattsv11ts.rst @@ -1,45 +1,34 @@ .. _Pvwattsv11ts: Pvwattsv11ts -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_pvwattsv1_1ts.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv11ts + :members: -Creating an Instance -=================================== +Pvwattsv11ts is a wrapper for the SSC compute module `cmod_pvwattsv1_1ts.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv11ts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv11ts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv11ts.Pvwattsv11ts :members: PVWatts Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv11ts.Pvwattsv11ts.PVWatts :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv11ts.Pvwattsv11ts.Outputs :members: diff --git a/docs/modules/Pvwattsv1Poa.rst b/docs/modules/Pvwattsv1Poa.rst index e41927d6..12349a80 100644 --- a/docs/modules/Pvwattsv1Poa.rst +++ b/docs/modules/Pvwattsv1Poa.rst @@ -1,51 +1,40 @@ .. _Pvwattsv1Poa: Pvwattsv1Poa -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_pvwattsv1_poa.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv1Poa + :members: -Creating an Instance -=================================== +Pvwattsv1Poa is a wrapper for the SSC compute module `cmod_pvwattsv1_poa.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv1Poa model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv1Poa - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv1Poa.Pvwattsv1Poa :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1Poa.Pvwattsv1Poa.Weather :members: PVWatts Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1Poa.Pvwattsv1Poa.PVWatts :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv1Poa.Pvwattsv1Poa.Outputs :members: diff --git a/docs/modules/Pvwattsv5.rst b/docs/modules/Pvwattsv5.rst index 33e605fe..f1819f35 100644 --- a/docs/modules/Pvwattsv5.rst +++ b/docs/modules/Pvwattsv5.rst @@ -1,63 +1,52 @@ .. _Pvwattsv5: Pvwattsv5 -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_pvwattsv5.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv5 + :members: -Creating an Instance -=================================== +Pvwattsv5 is a wrapper for the SSC compute module `cmod_pvwattsv5.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv5 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv5 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5 :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5.Lifetime :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5.SolarResource :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5.SystemDesign :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv5.Pvwattsv5.Outputs :members: diff --git a/docs/modules/Pvwattsv51ts.rst b/docs/modules/Pvwattsv51ts.rst index a448e1aa..57f3507d 100644 --- a/docs/modules/Pvwattsv51ts.rst +++ b/docs/modules/Pvwattsv51ts.rst @@ -1,51 +1,40 @@ .. _Pvwattsv51ts: Pvwattsv51ts -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_pvwattsv5_1ts.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv51ts + :members: -Creating an Instance -=================================== +Pvwattsv51ts is a wrapper for the SSC compute module `cmod_pvwattsv5_1ts.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv51ts model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv51ts - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv51ts.Pvwattsv51ts :members: PVWatts Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv51ts.Pvwattsv51ts.PVWatts :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Pvwattsv51ts.Pvwattsv51ts.SystemDesign :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv51ts.Pvwattsv51ts.Outputs :members: diff --git a/docs/modules/Pvwattsv7.rst b/docs/modules/Pvwattsv7.rst index 9d4887eb..af66d5bb 100644 --- a/docs/modules/Pvwattsv7.rst +++ b/docs/modules/Pvwattsv7.rst @@ -1,63 +1,52 @@ .. _Pvwattsv7: Pvwattsv7 -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_pvwattsv7.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv7 + :members: -Creating an Instance -=================================== +Pvwattsv7 is a wrapper for the SSC compute module `cmod_pvwattsv7.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv7 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv7 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7 :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7.SolarResource :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7.Lifetime :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7.SystemDesign :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv7.Pvwattsv7.Outputs :members: diff --git a/docs/modules/Pvwattsv8.rst b/docs/modules/Pvwattsv8.rst index 580350b8..35113845 100644 --- a/docs/modules/Pvwattsv8.rst +++ b/docs/modules/Pvwattsv8.rst @@ -1,63 +1,52 @@ .. _Pvwattsv8: Pvwattsv8 -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_pvwattsv8.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Pvwattsv8 + :members: -Creating an Instance -=================================== +Pvwattsv8 is a wrapper for the SSC compute module `cmod_pvwattsv8.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Pvwattsv8 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Pvwattsv8 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8 :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8.SolarResource :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8.Lifetime :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8.SystemDesign :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Pvwattsv8.Pvwattsv8.Outputs :members: diff --git a/docs/modules/Saleleaseback.rst b/docs/modules/Saleleaseback.rst index 245cb562..879e9471 100644 --- a/docs/modules/Saleleaseback.rst +++ b/docs/modules/Saleleaseback.rst @@ -1,137 +1,126 @@ .. _Saleleaseback: Saleleaseback -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_saleleaseback.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - - construction_financing_cost - - total_installed_cost +.. automodule:: PySAM.Saleleaseback + :members: -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +Saleleaseback is a wrapper for the SSC compute module `cmod_saleleaseback.cpp `_ -Creating an Instance -=================================== +Interdependent Variables +-------------------------- -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -**Saleleaseback model description** + - construction_financing_cost -.. automodule:: PySAM.Saleleaseback - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.Revenue :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Saleleaseback.Saleleaseback.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Saleleaseback.Saleleaseback.PaymentIncentives :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.SystemOutput :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.ElectricityRates :members: SaleLeaseback Group -====================================================== +-------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.SaleLeaseback :members: TimeOfDelivery Group -====================================================== +--------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.TimeOfDelivery :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Saleleaseback.Saleleaseback.UtilityBill :members: OtherCapitalCosts Group -====================================================== +------------------------ .. autoclass:: PySAM.Saleleaseback.Saleleaseback.OtherCapitalCosts :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.ChargesByMonth :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.BatterySystem :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Saleleaseback.Saleleaseback.Outputs :members: diff --git a/docs/modules/Sco2AirCooler.rst b/docs/modules/Sco2AirCooler.rst index 59e8e2df..ffc6391f 100644 --- a/docs/modules/Sco2AirCooler.rst +++ b/docs/modules/Sco2AirCooler.rst @@ -1,45 +1,34 @@ .. _Sco2AirCooler: Sco2AirCooler -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_sco2_air_cooler.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Sco2AirCooler + :members: -Creating an Instance -=================================== +Sco2AirCooler is a wrapper for the SSC compute module `cmod_sco2_air_cooler.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Sco2AirCooler model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Sco2AirCooler - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Sco2AirCooler.Sco2AirCooler :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Sco2AirCooler.Sco2AirCooler.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Sco2AirCooler.Sco2AirCooler.Outputs :members: diff --git a/docs/modules/Sco2CompCurves.rst b/docs/modules/Sco2CompCurves.rst index b02a44e3..1cd31b6d 100644 --- a/docs/modules/Sco2CompCurves.rst +++ b/docs/modules/Sco2CompCurves.rst @@ -1,45 +1,34 @@ .. _Sco2CompCurves: Sco2CompCurves -*********************************** +=============== -Wrapper for SAM Simulation Core model: `cmod_sco2_comp_curves.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Sco2CompCurves + :members: -Creating an Instance -=================================== +Sco2CompCurves is a wrapper for the SSC compute module `cmod_sco2_comp_curves.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Sco2CompCurves model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Sco2CompCurves - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Sco2CompCurves.Sco2CompCurves :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Sco2CompCurves.Sco2CompCurves.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Sco2CompCurves.Sco2CompCurves.Outputs :members: diff --git a/docs/modules/Sco2CspSystem.rst b/docs/modules/Sco2CspSystem.rst index 8b44e446..fd0c6199 100644 --- a/docs/modules/Sco2CspSystem.rst +++ b/docs/modules/Sco2CspSystem.rst @@ -1,69 +1,58 @@ .. _Sco2CspSystem: Sco2CspSystem -*********************************** +============== -Wrapper for SAM Simulation Core model: `cmod_sco2_csp_system.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Sco2CspSystem + :members: -Creating an Instance -=================================== +Sco2CspSystem is a wrapper for the SSC compute module `cmod_sco2_csp_system.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Sco2CspSystem model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Sco2CspSystem - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.SystemDesign :members: HeatExchangerDesign Group -====================================================== +-------------------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.HeatExchangerDesign :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.Common :members: PHXDesign Group -====================================================== +---------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.PHXDesign :members: AirCoolerDesign Group -====================================================== +---------------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.AirCoolerDesign :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Sco2CspSystem.Sco2CspSystem.Outputs :members: diff --git a/docs/modules/Sco2CspUdPcTables.rst b/docs/modules/Sco2CspUdPcTables.rst index 834bf295..372b1d26 100644 --- a/docs/modules/Sco2CspUdPcTables.rst +++ b/docs/modules/Sco2CspUdPcTables.rst @@ -1,69 +1,58 @@ .. _Sco2CspUdPcTables: Sco2CspUdPcTables -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_sco2_csp_ud_pc_tables.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Sco2CspUdPcTables + :members: -Creating an Instance -=================================== +Sco2CspUdPcTables is a wrapper for the SSC compute module `cmod_sco2_csp_ud_pc_tables.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Sco2CspUdPcTables model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Sco2CspUdPcTables - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.SystemDesign :members: HeatExchangerDesign Group -====================================================== +-------------------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.HeatExchangerDesign :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.Common :members: PHXDesign Group -====================================================== +---------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.PHXDesign :members: AirCoolerDesign Group -====================================================== +---------------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.AirCoolerDesign :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Sco2CspUdPcTables.Sco2CspUdPcTables.Outputs :members: diff --git a/docs/modules/Singlediode.rst b/docs/modules/Singlediode.rst index e3e64f8d..add32567 100644 --- a/docs/modules/Singlediode.rst +++ b/docs/modules/Singlediode.rst @@ -1,45 +1,34 @@ .. _Singlediode: Singlediode -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_singlediode.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Singlediode + :members: -Creating an Instance -=================================== +Singlediode is a wrapper for the SSC compute module `cmod_singlediode.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Singlediode model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Singlediode - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Singlediode.Singlediode :members: SingleDiodeModel Group -====================================================== +----------------------- .. autoclass:: PySAM.Singlediode.Singlediode.SingleDiodeModel :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Singlediode.Singlediode.Outputs :members: diff --git a/docs/modules/Singlediodeparams.rst b/docs/modules/Singlediodeparams.rst index 51ad96de..3c969787 100644 --- a/docs/modules/Singlediodeparams.rst +++ b/docs/modules/Singlediodeparams.rst @@ -1,45 +1,34 @@ .. _Singlediodeparams: Singlediodeparams -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_singlediodeparams.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Singlediodeparams + :members: -Creating an Instance -=================================== +Singlediodeparams is a wrapper for the SSC compute module `cmod_singlediodeparams.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Singlediodeparams model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Singlediodeparams - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Singlediodeparams.Singlediodeparams :members: SingleDiodeModel Group -====================================================== +----------------------- .. autoclass:: PySAM.Singlediodeparams.Singlediodeparams.SingleDiodeModel :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Singlediodeparams.Singlediodeparams.Outputs :members: diff --git a/docs/modules/Singleowner.rst b/docs/modules/Singleowner.rst index 385f2e15..89c01158 100644 --- a/docs/modules/Singleowner.rst +++ b/docs/modules/Singleowner.rst @@ -1,146 +1,138 @@ .. _Singleowner: Singleowner -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_singleowner.cpp `_ +.. automodule:: PySAM.Singleowner + :members: -Input Consistency Warning -================================== +Singleowner is a wrapper for the SSC compute module `cmod_singleowner.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- - - construction_financing_cost - - cp_battery_nameplate - - cp_system_nameplate - - system_capacity - - total_installed_cost +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - construction_financing_cost -Creating an Instance -=================================== + - cp_battery_nameplate -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - cp_system_nameplate -**Singleowner model description** + - system_capacity -.. automodule:: PySAM.Singleowner - :members: + - total_installed_cost Functions -=================================== +----------- .. autoclass:: PySAM.Singleowner.Singleowner :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.Singleowner.Singleowner.Revenue :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.Singleowner.Singleowner.FinancialParameters :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.Singleowner.Singleowner.SystemCosts :members: LandLease Group -====================================================== +---------------- .. autoclass:: PySAM.Singleowner.Singleowner.LandLease :members: TaxCreditIncentives Group -====================================================== +-------------------------- .. autoclass:: PySAM.Singleowner.Singleowner.TaxCreditIncentives :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Singleowner.Singleowner.Depreciation :members: PaymentIncentives Group -====================================================== +------------------------ .. autoclass:: PySAM.Singleowner.Singleowner.PaymentIncentives :members: BatterySystem Group -====================================================== +-------------------- .. autoclass:: PySAM.Singleowner.Singleowner.BatterySystem :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Singleowner.Singleowner.ElectricityRates :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Singleowner.Singleowner.SystemOutput :members: UtilityBill Group -====================================================== +------------------ .. autoclass:: PySAM.Singleowner.Singleowner.UtilityBill :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Singleowner.Singleowner.Lifetime :members: FuelCell Group -====================================================== +--------------- .. autoclass:: PySAM.Singleowner.Singleowner.FuelCell :members: CapacityPayments Group -====================================================== +----------------------- .. autoclass:: PySAM.Singleowner.Singleowner.CapacityPayments :members: GridLimits Group -====================================================== +----------------- .. autoclass:: PySAM.Singleowner.Singleowner.GridLimits :members: LCOS Group -====================================================== +----------- .. autoclass:: PySAM.Singleowner.Singleowner.LCOS :members: ChargesByMonth Group -====================================================== +--------------------- .. autoclass:: PySAM.Singleowner.Singleowner.ChargesByMonth :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Singleowner.Singleowner.Outputs :members: diff --git a/docs/modules/SixParsolve.rst b/docs/modules/SixParsolve.rst index 6049e912..685a3a2e 100644 --- a/docs/modules/SixParsolve.rst +++ b/docs/modules/SixParsolve.rst @@ -1,45 +1,34 @@ .. _SixParsolve: -6parsolve -*********************************** +SixParsolve +============ -Wrapper for SAM Simulation Core model: `cmod_6parsolve.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.SixParsolve + :members: -Creating an Instance -=================================== +SixParsolve is a wrapper for the SSC compute module `cmod_6parsolve.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**SixParsolve model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.SixParsolve - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.SixParsolve.SixParsolve :members: SixParameterSolver Group -====================================================== +------------------------- .. autoclass:: PySAM.SixParsolve.SixParsolve.SixParameterSolver :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.SixParsolve.SixParsolve.Outputs :members: diff --git a/docs/modules/Snowmodel.rst b/docs/modules/Snowmodel.rst index 30d6cadc..1c515bb5 100644 --- a/docs/modules/Snowmodel.rst +++ b/docs/modules/Snowmodel.rst @@ -1,51 +1,40 @@ .. _Snowmodel: Snowmodel -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_snowmodel.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Snowmodel + :members: -Creating an Instance -=================================== +Snowmodel is a wrapper for the SSC compute module `cmod_snowmodel.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Snowmodel model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Snowmodel - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Snowmodel.Snowmodel :members: PVSnowModel Group -====================================================== +------------------ .. autoclass:: PySAM.Snowmodel.Snowmodel.PVSnowModel :members: TimeSeries Group -====================================================== +----------------- .. autoclass:: PySAM.Snowmodel.Snowmodel.TimeSeries :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Snowmodel.Snowmodel.Outputs :members: diff --git a/docs/modules/Solarpilot.rst b/docs/modules/Solarpilot.rst index 31e11cf4..e9505bd2 100644 --- a/docs/modules/Solarpilot.rst +++ b/docs/modules/Solarpilot.rst @@ -1,45 +1,34 @@ .. _Solarpilot: Solarpilot -*********************************** +=========== -Wrapper for SAM Simulation Core model: `cmod_solarpilot.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Solarpilot + :members: -Creating an Instance -=================================== +Solarpilot is a wrapper for the SSC compute module `cmod_solarpilot.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Solarpilot model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Solarpilot - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Solarpilot.Solarpilot :members: SolarPILOT Group -====================================================== +----------------- .. autoclass:: PySAM.Solarpilot.Solarpilot.SolarPILOT :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Solarpilot.Solarpilot.Outputs :members: diff --git a/docs/modules/Swh.rst b/docs/modules/Swh.rst index 040d553f..e4b8582b 100644 --- a/docs/modules/Swh.rst +++ b/docs/modules/Swh.rst @@ -1,62 +1,54 @@ .. _Swh: Swh -*********************************** +==== -Wrapper for SAM Simulation Core model: `cmod_swh.cpp `_ +.. automodule:: PySAM.Swh + :members: -Input Consistency Warning -================================== +Swh is a wrapper for the SSC compute module `cmod_swh.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- - - FRUL - - FRta - - area_coll - - ncoll - - system_capacity +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - FRUL -Creating an Instance -=================================== + - FRta -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - area_coll -**Swh model description** + - ncoll -.. automodule:: PySAM.Swh - :members: + - system_capacity Functions -=================================== +----------- .. autoclass:: PySAM.Swh.Swh :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.Swh.Swh.SolarResource :members: SWH Group -====================================================== +---------- .. autoclass:: PySAM.Swh.Swh.SWH :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Swh.Swh.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Swh.Swh.Outputs :members: diff --git a/docs/modules/TcsMSLF.rst b/docs/modules/TcsMSLF.rst index 59e14ccf..8dd60671 100644 --- a/docs/modules/TcsMSLF.rst +++ b/docs/modules/TcsMSLF.rst @@ -1,135 +1,164 @@ .. _TcsMSLF: TcsMSLF -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_tcsMSLF.cpp `_ +.. automodule:: PySAM.TcsMSLF + :members: -Input Consistency Warning -================================== +TcsMSLF is a wrapper for the SSC compute module `cmod_tcsMSLF.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - A_aperture + - Dirt_mirror + - Error + - Fluid + - GeomEffects + - I_bn_des + - L_mod + - P_ref + - T_amb_sf_des + - T_field_in_des + - T_field_out_des + - T_htf_cold_ref + - T_htf_hot_ref + - T_loop_in_des + - T_loop_out + - T_tank_cold_ini + - T_tank_hot_ini + - TrackingError + - V_tank_hot_ini + - W_pb_design + - dt_cold + - dt_hot + - eta_ref + - field_fluid + - fthr_ok + - fthrok + - is_hx + - nLoops + - nMod + - nSCA + - pb_rated_cap + - q_max_aux + - q_pb_design + - reflectivity + - solar_mult + - solarm + - store_fl_props - - store_fluid - - system_capacity - - tes_temp - - tshours - - vol_tank -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - store_fluid -Creating an Instance -=================================== + - system_capacity -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - tes_temp -**TcsMSLF model description** + - tshours -.. automodule:: PySAM.TcsMSLF - :members: + - vol_tank Functions -=================================== +----------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Weather :members: Mslf Group -====================================================== +----------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Mslf :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.TouTranslator :members: Controller Group -====================================================== +----------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Controller :members: SolarField Group -====================================================== +----------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.SolarField :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Powerblock :members: UserDefinedPC Group -====================================================== +-------------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.UserDefinedPC :members: Enet Group -====================================================== +----------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Enet :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcsMSLF.TcsMSLF.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcsMSLF.TcsMSLF.Outputs :members: diff --git a/docs/modules/TcsgenericSolar.rst b/docs/modules/TcsgenericSolar.rst index 74be79ef..e5ee6f63 100644 --- a/docs/modules/TcsgenericSolar.rst +++ b/docs/modules/TcsgenericSolar.rst @@ -1,74 +1,66 @@ .. _TcsgenericSolar: TcsgenericSolar -*********************************** +================ -Wrapper for SAM Simulation Core model: `cmod_tcsgeneric_solar.cpp `_ +.. automodule:: PySAM.TcsgenericSolar + :members: -Input Consistency Warning -================================== +TcsgenericSolar is a wrapper for the SSC compute module `cmod_tcsgeneric_solar.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- - - eta_des - - qsf_des - - solarm - - system_capacity - - w_des +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - eta_des -Creating an Instance -=================================== + - qsf_des -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - solarm -**TcsgenericSolar model description** + - system_capacity -.. automodule:: PySAM.TcsgenericSolar - :members: + - w_des Functions -=================================== +----------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.Weather :members: GenericSolar Group -====================================================== +------------------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.GenericSolar :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.TouTranslator :members: Type260 Group -====================================================== +-------------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.Type260 :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcsgenericSolar.TcsgenericSolar.Outputs :members: diff --git a/docs/modules/TcslinearFresnel.rst b/docs/modules/TcslinearFresnel.rst index 4e05ab5e..6fc3619f 100644 --- a/docs/modules/TcslinearFresnel.rst +++ b/docs/modules/TcslinearFresnel.rst @@ -1,99 +1,104 @@ .. _TcslinearFresnel: TcslinearFresnel -*********************************** +================= -Wrapper for SAM Simulation Core model: `cmod_tcslinear_fresnel.cpp `_ +.. automodule:: PySAM.TcslinearFresnel + :members: -Input Consistency Warning -================================== +TcslinearFresnel is a wrapper for the SSC compute module `cmod_tcslinear_fresnel.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - ColAz + - I_bn_des + - P_boil_des + - P_turb_des + - Pipe_hl_coef + - T_amb_des_sf + - T_cold_ref + - T_hot + - azimuth + - demand_var + - eta_ref + - nLoops + - nModBoil - - nModSH - - q_max_aux - - q_pb_des - - solarm - - system_capacity -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - nModSH -Creating an Instance -=================================== + - q_max_aux -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - q_pb_des -**TcslinearFresnel model description** + - solarm -.. automodule:: PySAM.TcslinearFresnel - :members: + - system_capacity Functions -=================================== +----------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.Weather :members: LinearFresnelr Group -====================================================== +--------------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.LinearFresnelr :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.TouTranslator :members: Solarfield Group -====================================================== +----------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.Solarfield :members: Heliostat Group -====================================================== +---------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.Heliostat :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.Powerblock :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcslinearFresnel.TcslinearFresnel.Outputs :members: diff --git a/docs/modules/TcsmoltenSalt.rst b/docs/modules/TcsmoltenSalt.rst index 2c834bbc..0f1c5c1f 100644 --- a/docs/modules/TcsmoltenSalt.rst +++ b/docs/modules/TcsmoltenSalt.rst @@ -1,142 +1,135 @@ .. _TcsmoltenSalt: TcsmoltenSalt -*********************************** - -Wrapper for SAM Simulation Core model: `cmod_tcsmolten_salt.cpp `_ - -Creating an Instance -=================================== - -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. - -**TcsmoltenSalt model description** +============== .. automodule:: PySAM.TcsmoltenSalt :members: +TcsmoltenSalt is a wrapper for the SSC compute module `cmod_tcsmolten_salt.cpp `_ + Functions -=================================== +----------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt :members: SolarResource Group -====================================================== +-------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.SolarResource :members: SystemControl Group -====================================================== +-------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.SystemControl :members: FinancialModel Group -====================================================== +--------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.FinancialModel :members: TimeOfDeliveryFactors Group -====================================================== +---------------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.TimeOfDeliveryFactors :members: HeliostatField Group -====================================================== +--------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.HeliostatField :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.SystemDesign :members: TowerAndReceiver Group -====================================================== +----------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.TowerAndReceiver :members: SystemCosts Group -====================================================== +------------------ .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.SystemCosts :members: FinancialParameters Group -====================================================== +-------------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.FinancialParameters :members: ParallelHeater Group -====================================================== +--------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.ParallelHeater :members: ThermalStorage Group -====================================================== +--------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.ThermalStorage :members: RADCOOL Group -====================================================== +-------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.RADCOOL :members: PowerCycle Group -====================================================== +----------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.PowerCycle :members: RankineCycle Group -====================================================== +------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.RankineCycle :members: UserDefinedPowerCycle Group -====================================================== +---------------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.UserDefinedPowerCycle :members: FinancialSolutionMode Group -====================================================== +---------------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.FinancialSolutionMode :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.ElectricityRates :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.Revenue :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcsmoltenSalt.TcsmoltenSalt.Outputs :members: diff --git a/docs/modules/TcstroughEmpirical.rst b/docs/modules/TcstroughEmpirical.rst index df72101a..e8122ff1 100644 --- a/docs/modules/TcstroughEmpirical.rst +++ b/docs/modules/TcstroughEmpirical.rst @@ -1,140 +1,168 @@ .. _TcstroughEmpirical: TcstroughEmpirical -*********************************** +=================== -Wrapper for SAM Simulation Core model: `cmod_tcstrough_empirical.cpp `_ +.. automodule:: PySAM.TcstroughEmpirical + :members: -Input Consistency Warning -================================== +TcstroughEmpirical is a wrapper for the SSC compute module `cmod_tcstrough_empirical.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - AntiFrPar + - BOPPar + - BOPParPF + - ChtfPar + - ChtfParPF + - ConcFac + - CtPar + - CtParPF + - GeoAcc + - HCEdust + - HhtfPar + - HhtfParPF + - HtrPar + - HtrParPF + - MaxGrOut + - MinGrOut + - MirCln + - MirRef + - PFSmax + - PTSmax + - PTTMAX + - PTTMIN + - PbFixPar + - RefMirrAper + - SCA_aper + - SfInTempD + - SfOutTempD + - SfPar + - SfParPF + - SfPipeHl1 + - SfPipeHl2 + - SfPipeHl3 + - SfPipeHl300 + - Solar_Field_Area + - Solar_Field_Mult + - TrkTwstErr - - TurTesEffAdj - - TurTesOutAdj - - TurbEffG - - TurbOutG - - system_capacity -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - TurTesEffAdj -Creating an Instance -=================================== + - TurTesOutAdj -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - TurbEffG -**TcstroughEmpirical model description** + - TurbOutG -.. automodule:: PySAM.TcstroughEmpirical - :members: + - system_capacity Functions -=================================== +----------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Weather :members: Trough Group -====================================================== +------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Trough :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.TouTranslator :members: Solarfield Group -====================================================== +----------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Solarfield :members: Sca Group -====================================================== +---------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Sca :members: Hce Group -====================================================== +---------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Hce :members: Pwrb Group -====================================================== +----------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Pwrb :members: Tes Group -====================================================== +---------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Tes :members: Parasitic Group -====================================================== +---------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Parasitic :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcstroughEmpirical.TcstroughEmpirical.Outputs :members: diff --git a/docs/modules/TcstroughPhysical.rst b/docs/modules/TcstroughPhysical.rst index 35742a97..599b19b3 100644 --- a/docs/modules/TcstroughPhysical.rst +++ b/docs/modules/TcstroughPhysical.rst @@ -1,93 +1,82 @@ .. _TcstroughPhysical: TcstroughPhysical -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_tcstrough_physical.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.TcstroughPhysical + :members: -Creating an Instance -=================================== +TcstroughPhysical is a wrapper for the SSC compute module `cmod_tcstrough_physical.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**TcstroughPhysical model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.TcstroughPhysical - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Weather :members: Trough Group -====================================================== +------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Trough :members: SolarField Group -====================================================== +----------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.SolarField :members: Controller Group -====================================================== +----------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Controller :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.TouTranslator :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Powerblock :members: UserDefinedPC Group -====================================================== +-------------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.UserDefinedPC :members: Enet Group -====================================================== +----------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Enet :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TcstroughPhysical.TcstroughPhysical.Outputs :members: diff --git a/docs/modules/TestUdPowerCycle.rst b/docs/modules/TestUdPowerCycle.rst index 64dc0271..df18ffd0 100644 --- a/docs/modules/TestUdPowerCycle.rst +++ b/docs/modules/TestUdPowerCycle.rst @@ -1,45 +1,34 @@ .. _TestUdPowerCycle: TestUdPowerCycle -*********************************** +================= -Wrapper for SAM Simulation Core model: `cmod_test_ud_power_cycle.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.TestUdPowerCycle + :members: -Creating an Instance -=================================== +TestUdPowerCycle is a wrapper for the SSC compute module `cmod_test_ud_power_cycle.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**TestUdPowerCycle model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.TestUdPowerCycle - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.TestUdPowerCycle.TestUdPowerCycle :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.TestUdPowerCycle.TestUdPowerCycle.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TestUdPowerCycle.TestUdPowerCycle.Outputs :members: diff --git a/docs/modules/Thermalrate.rst b/docs/modules/Thermalrate.rst index 42aedfe2..23f12fd9 100644 --- a/docs/modules/Thermalrate.rst +++ b/docs/modules/Thermalrate.rst @@ -1,57 +1,50 @@ .. _Thermalrate: Thermalrate -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_thermalrate.cpp `_ +.. automodule:: PySAM.Thermalrate + :members: -Input Consistency Warning -================================== +Thermalrate is a wrapper for the SSC compute module `cmod_thermalrate.cpp `_ -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +Interdependent Variables +-------------------------- + +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - thermal_buy_rate - - thermal_buy_rate_flat - - thermal_buy_rate_option - - thermal_sell_rate - - thermal_sell_rate_flat - - thermal_sell_rate_option -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - thermal_buy_rate_flat -Creating an Instance -=================================== + - thermal_buy_rate_option -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - thermal_sell_rate -**Thermalrate model description** + - thermal_sell_rate_flat -.. automodule:: PySAM.Thermalrate - :members: + - thermal_sell_rate_option Functions -=================================== +----------- .. autoclass:: PySAM.Thermalrate.Thermalrate :members: ThermalRate Group -====================================================== +------------------ .. autoclass:: PySAM.Thermalrate.Thermalrate.ThermalRate :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Thermalrate.Thermalrate.Lifetime :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Thermalrate.Thermalrate.Outputs :members: diff --git a/docs/modules/Thirdpartyownership.rst b/docs/modules/Thirdpartyownership.rst index d6f37d9d..0c8fb238 100644 --- a/docs/modules/Thirdpartyownership.rst +++ b/docs/modules/Thirdpartyownership.rst @@ -1,81 +1,70 @@ .. _Thirdpartyownership: Thirdpartyownership -*********************************** +==================== -Wrapper for SAM Simulation Core model: `cmod_thirdpartyownership.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Thirdpartyownership + :members: -Creating an Instance -=================================== +Thirdpartyownership is a wrapper for the SSC compute module `cmod_thirdpartyownership.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Thirdpartyownership model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Thirdpartyownership - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership :members: Depreciation Group -====================================================== +------------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.Depreciation :members: Financials Group -====================================================== +----------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.Financials :members: FinancialThirdPartyOwnership Group -====================================================== +----------------------------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.FinancialThirdPartyOwnership :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.Common :members: AnnualOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.AnnualOutput :members: CashFlow Group -====================================================== +--------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.CashFlow :members: ElectricityCost Group -====================================================== +---------------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.ElectricityCost :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Thirdpartyownership.Thirdpartyownership.Outputs :members: diff --git a/docs/modules/Timeseq.rst b/docs/modules/Timeseq.rst index deae95dc..83afb9ae 100644 --- a/docs/modules/Timeseq.rst +++ b/docs/modules/Timeseq.rst @@ -1,45 +1,34 @@ .. _Timeseq: Timeseq -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_timeseq.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Timeseq + :members: -Creating an Instance -=================================== +Timeseq is a wrapper for the SSC compute module `cmod_timeseq.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Timeseq model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Timeseq - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Timeseq.Timeseq :members: TimeSequence Group -====================================================== +------------------- .. autoclass:: PySAM.Timeseq.Timeseq.TimeSequence :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Timeseq.Timeseq.Outputs :members: diff --git a/docs/modules/TroughPhysical.rst b/docs/modules/TroughPhysical.rst index 6e32db2b..1a9066ab 100644 --- a/docs/modules/TroughPhysical.rst +++ b/docs/modules/TroughPhysical.rst @@ -1,106 +1,99 @@ .. _TroughPhysical: TroughPhysical -*********************************** - -Wrapper for SAM Simulation Core model: `cmod_trough_physical.cpp `_ - -Creating an Instance -=================================== - -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. - -**TroughPhysical model description** +=============== .. automodule:: PySAM.TroughPhysical :members: +TroughPhysical is a wrapper for the SSC compute module `cmod_trough_physical.cpp `_ + Functions -=================================== +----------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Weather :members: SolarField Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.SolarField :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Powerblock :members: TES Group -====================================================== +---------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.TES :members: Tou Group -====================================================== +---------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Tou :members: SystemControl Group -====================================================== +-------------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.SystemControl :members: FinancialModel Group -====================================================== +--------------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.FinancialModel :members: FinancialSolutionMode Group -====================================================== +---------------------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.FinancialSolutionMode :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.ElectricityRates :members: Revenue Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Revenue :members: System Group -====================================================== +------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.System :members: Controller Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Controller :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TroughPhysical.TroughPhysical.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysical.TroughPhysical.Outputs :members: diff --git a/docs/modules/TroughPhysicalCspSolver.rst b/docs/modules/TroughPhysicalCspSolver.rst index 3265cfff..2b6cd9b0 100644 --- a/docs/modules/TroughPhysicalCspSolver.rst +++ b/docs/modules/TroughPhysicalCspSolver.rst @@ -1,99 +1,88 @@ .. _TroughPhysicalCspSolver: TroughPhysicalCspSolver -*********************************** +======================== -Wrapper for SAM Simulation Core model: `cmod_trough_physical_csp_solver.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.TroughPhysicalCspSolver + :members: -Creating an Instance -=================================== +TroughPhysicalCspSolver is a wrapper for the SSC compute module `cmod_trough_physical_csp_solver.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**TroughPhysicalCspSolver model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.TroughPhysicalCspSolver - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Weather :members: Trough Group -====================================================== +------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Trough :members: TimeOfDelivery Group -====================================================== +--------------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.TimeOfDelivery :members: SolarField Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.SolarField :members: Controller Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Controller :members: TouTranslator Group -====================================================== +-------------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.TouTranslator :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Powerblock :members: UserDefinedPC Group -====================================================== +-------------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.UserDefinedPC :members: Enet Group -====================================================== +----------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Enet :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysicalCspSolver.TroughPhysicalCspSolver.Outputs :members: diff --git a/docs/modules/TroughPhysicalProcessHeat.rst b/docs/modules/TroughPhysicalProcessHeat.rst index 89976ab5..886d7131 100644 --- a/docs/modules/TroughPhysicalProcessHeat.rst +++ b/docs/modules/TroughPhysicalProcessHeat.rst @@ -1,94 +1,87 @@ .. _TroughPhysicalProcessHeat: TroughPhysicalProcessHeat -*********************************** - -Wrapper for SAM Simulation Core model: `cmod_trough_physical_process_heat.cpp `_ - -Creating an Instance -=================================== - -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. - -**TroughPhysicalProcessHeat model description** +========================== .. automodule:: PySAM.TroughPhysicalProcessHeat :members: +TroughPhysicalProcessHeat is a wrapper for the SSC compute module `cmod_trough_physical_process_heat.cpp `_ + Functions -=================================== +----------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat :members: Weather Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Weather :members: SolarField Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.SolarField :members: Controller Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Controller :members: SystemDesign Group -====================================================== +------------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.SystemDesign :members: TES Group -====================================================== +---------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.TES :members: TES2tank Group -====================================================== +--------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.TES2tank :members: Tou Group -====================================================== +---------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Tou :members: SystemControl Group -====================================================== +-------------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.SystemControl :members: System Group -====================================================== +------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.System :members: Powerblock Group -====================================================== +----------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Powerblock :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.TroughPhysicalProcessHeat.TroughPhysicalProcessHeat.Outputs :members: diff --git a/docs/modules/UiTesCalcs.rst b/docs/modules/UiTesCalcs.rst index 05be3f62..7292ad2c 100644 --- a/docs/modules/UiTesCalcs.rst +++ b/docs/modules/UiTesCalcs.rst @@ -1,45 +1,34 @@ .. _UiTesCalcs: UiTesCalcs -*********************************** +=========== -Wrapper for SAM Simulation Core model: `cmod_ui_tes_calcs.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.UiTesCalcs + :members: -Creating an Instance -=================================== +UiTesCalcs is a wrapper for the SSC compute module `cmod_ui_tes_calcs.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**UiTesCalcs model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.UiTesCalcs - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.UiTesCalcs.UiTesCalcs :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.UiTesCalcs.UiTesCalcs.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.UiTesCalcs.UiTesCalcs.Outputs :members: diff --git a/docs/modules/UiUdpcChecks.rst b/docs/modules/UiUdpcChecks.rst index 9b5b5115..8cf92a13 100644 --- a/docs/modules/UiUdpcChecks.rst +++ b/docs/modules/UiUdpcChecks.rst @@ -1,51 +1,40 @@ .. _UiUdpcChecks: UiUdpcChecks -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_ui_udpc_checks.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.UiUdpcChecks + :members: -Creating an Instance -=================================== +UiUdpcChecks is a wrapper for the SSC compute module `cmod_ui_udpc_checks.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**UiUdpcChecks model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.UiUdpcChecks - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.UiUdpcChecks.UiUdpcChecks :members: UserDefinedPowerCycle Group -====================================================== +---------------------------- .. autoclass:: PySAM.UiUdpcChecks.UiUdpcChecks.UserDefinedPowerCycle :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.UiUdpcChecks.UiUdpcChecks.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.UiUdpcChecks.UiUdpcChecks.Outputs :members: diff --git a/docs/modules/UserHtfComparison.rst b/docs/modules/UserHtfComparison.rst index ee8e10db..a5d30c65 100644 --- a/docs/modules/UserHtfComparison.rst +++ b/docs/modules/UserHtfComparison.rst @@ -1,45 +1,34 @@ .. _UserHtfComparison: UserHtfComparison -*********************************** +================== -Wrapper for SAM Simulation Core model: `cmod_user_htf_comparison.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.UserHtfComparison + :members: -Creating an Instance -=================================== +UserHtfComparison is a wrapper for the SSC compute module `cmod_user_htf_comparison.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**UserHtfComparison model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.UserHtfComparison - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.UserHtfComparison.UserHtfComparison :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.UserHtfComparison.UserHtfComparison.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.UserHtfComparison.UserHtfComparison.Outputs :members: diff --git a/docs/modules/Utilityrate.rst b/docs/modules/Utilityrate.rst index 240f3d18..c0f2109b 100644 --- a/docs/modules/Utilityrate.rst +++ b/docs/modules/Utilityrate.rst @@ -1,45 +1,34 @@ .. _Utilityrate: Utilityrate -*********************************** +============ -Wrapper for SAM Simulation Core model: `cmod_utilityrate.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Utilityrate + :members: -Creating an Instance -=================================== +Utilityrate is a wrapper for the SSC compute module `cmod_utilityrate.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Utilityrate model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Utilityrate - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Utilityrate.Utilityrate :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Utilityrate.Utilityrate.Common :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Utilityrate.Utilityrate.Outputs :members: diff --git a/docs/modules/Utilityrate2.rst b/docs/modules/Utilityrate2.rst index eebb10a9..17b1fb72 100644 --- a/docs/modules/Utilityrate2.rst +++ b/docs/modules/Utilityrate2.rst @@ -1,51 +1,40 @@ .. _Utilityrate2: Utilityrate2 -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_utilityrate2.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Utilityrate2 + :members: -Creating an Instance -=================================== +Utilityrate2 is a wrapper for the SSC compute module `cmod_utilityrate2.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Utilityrate2 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Utilityrate2 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Utilityrate2.Utilityrate2 :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Utilityrate2.Utilityrate2.Common :members: AnnualOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Utilityrate2.Utilityrate2.AnnualOutput :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Utilityrate2.Utilityrate2.Outputs :members: diff --git a/docs/modules/Utilityrate3.rst b/docs/modules/Utilityrate3.rst index 0f2b0723..f0f76004 100644 --- a/docs/modules/Utilityrate3.rst +++ b/docs/modules/Utilityrate3.rst @@ -1,63 +1,52 @@ .. _Utilityrate3: Utilityrate3 -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_utilityrate3.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Utilityrate3 + :members: -Creating an Instance -=================================== +Utilityrate3 is a wrapper for the SSC compute module `cmod_utilityrate3.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Utilityrate3 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Utilityrate3 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3 :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3.Common :members: TimeSeries Group -====================================================== +----------------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3.TimeSeries :members: Financials Group -====================================================== +----------------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3.Financials :members: AnnualOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3.AnnualOutput :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Utilityrate3.Utilityrate3.Outputs :members: diff --git a/docs/modules/Utilityrate4.rst b/docs/modules/Utilityrate4.rst index 04677d74..f8ba098a 100644 --- a/docs/modules/Utilityrate4.rst +++ b/docs/modules/Utilityrate4.rst @@ -1,63 +1,52 @@ .. _Utilityrate4: Utilityrate4 -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_utilityrate4.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Utilityrate4 + :members: -Creating an Instance -=================================== +Utilityrate4 is a wrapper for the SSC compute module `cmod_utilityrate4.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Utilityrate4 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Utilityrate4 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4 :members: Common Group -====================================================== +------------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4.Common :members: TimeSeries Group -====================================================== +----------------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4.TimeSeries :members: Financials Group -====================================================== +----------------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4.Financials :members: AnnualOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4.AnnualOutput :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Utilityrate4.Utilityrate4.Outputs :members: diff --git a/docs/modules/Utilityrate5.rst b/docs/modules/Utilityrate5.rst index 6318739a..1d84e681 100644 --- a/docs/modules/Utilityrate5.rst +++ b/docs/modules/Utilityrate5.rst @@ -1,63 +1,52 @@ .. _Utilityrate5: Utilityrate5 -*********************************** +============= -Wrapper for SAM Simulation Core model: `cmod_utilityrate5.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Utilityrate5 + :members: -Creating an Instance -=================================== +Utilityrate5 is a wrapper for the SSC compute module `cmod_utilityrate5.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Utilityrate5 model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Utilityrate5 - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5 :members: ElectricityRates Group -====================================================== +----------------------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5.ElectricityRates :members: Lifetime Group -====================================================== +--------------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5.Lifetime :members: SystemOutput Group -====================================================== +------------------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5.SystemOutput :members: Load Group -====================================================== +----------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5.Load :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Utilityrate5.Utilityrate5.Outputs :members: diff --git a/docs/modules/WaveFileReader.rst b/docs/modules/WaveFileReader.rst index e4f38017..29b42943 100644 --- a/docs/modules/WaveFileReader.rst +++ b/docs/modules/WaveFileReader.rst @@ -1,45 +1,34 @@ .. _WaveFileReader: WaveFileReader -*********************************** +=============== -Wrapper for SAM Simulation Core model: `cmod_wave_file_reader.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.WaveFileReader + :members: -Creating an Instance -=================================== +WaveFileReader is a wrapper for the SSC compute module `cmod_wave_file_reader.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**WaveFileReader model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.WaveFileReader - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.WaveFileReader.WaveFileReader :members: WeatherReader Group -====================================================== +-------------------- .. autoclass:: PySAM.WaveFileReader.WaveFileReader.WeatherReader :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.WaveFileReader.WaveFileReader.Outputs :members: diff --git a/docs/modules/Wfcheck.rst b/docs/modules/Wfcheck.rst index 63df600f..a7850133 100644 --- a/docs/modules/Wfcheck.rst +++ b/docs/modules/Wfcheck.rst @@ -1,39 +1,28 @@ .. _Wfcheck: Wfcheck -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_wfcheck.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Wfcheck + :members: -Creating an Instance -=================================== +Wfcheck is a wrapper for the SSC compute module `cmod_wfcheck.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Wfcheck model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Wfcheck - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Wfcheck.Wfcheck :members: WeatherFileChecker Group -====================================================== +------------------------- .. autoclass:: PySAM.Wfcheck.Wfcheck.WeatherFileChecker :members: diff --git a/docs/modules/Wfcsvconv.rst b/docs/modules/Wfcsvconv.rst index aff3bf19..de360215 100644 --- a/docs/modules/Wfcsvconv.rst +++ b/docs/modules/Wfcsvconv.rst @@ -1,39 +1,28 @@ .. _Wfcsvconv: Wfcsvconv -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_wfcsvconv.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Wfcsvconv + :members: -Creating an Instance -=================================== +Wfcsvconv is a wrapper for the SSC compute module `cmod_wfcsvconv.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Wfcsvconv model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Wfcsvconv - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Wfcsvconv.Wfcsvconv :members: WeatherFileConverter Group -====================================================== +--------------------------- .. autoclass:: PySAM.Wfcsvconv.Wfcsvconv.WeatherFileConverter :members: diff --git a/docs/modules/Wfreader.rst b/docs/modules/Wfreader.rst index 538a0f36..4ad8221d 100644 --- a/docs/modules/Wfreader.rst +++ b/docs/modules/Wfreader.rst @@ -1,45 +1,34 @@ .. _Wfreader: Wfreader -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_wfreader.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Wfreader + :members: -Creating an Instance -=================================== +Wfreader is a wrapper for the SSC compute module `cmod_wfreader.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Wfreader model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Wfreader - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Wfreader.Wfreader :members: WeatherReader Group -====================================================== +-------------------- .. autoclass:: PySAM.Wfreader.Wfreader.WeatherReader :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Wfreader.Wfreader.Outputs :members: diff --git a/docs/modules/WindFileReader.rst b/docs/modules/WindFileReader.rst index 7378f403..1ec646c7 100644 --- a/docs/modules/WindFileReader.rst +++ b/docs/modules/WindFileReader.rst @@ -1,45 +1,34 @@ .. _WindFileReader: WindFileReader -*********************************** +=============== -Wrapper for SAM Simulation Core model: `cmod_wind_file_reader.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.WindFileReader + :members: -Creating an Instance -=================================== +WindFileReader is a wrapper for the SSC compute module `cmod_wind_file_reader.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**WindFileReader model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.WindFileReader - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.WindFileReader.WindFileReader :members: WeatherReader Group -====================================================== +-------------------- .. autoclass:: PySAM.WindFileReader.WindFileReader.WeatherReader :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.WindFileReader.WindFileReader.Outputs :members: diff --git a/docs/modules/WindObos.rst b/docs/modules/WindObos.rst index eedde118..1c6ebb60 100644 --- a/docs/modules/WindObos.rst +++ b/docs/modules/WindObos.rst @@ -1,45 +1,34 @@ .. _WindObos: WindObos -*********************************** +========= -Wrapper for SAM Simulation Core model: `cmod_wind_obos.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.WindObos + :members: -Creating an Instance -=================================== +WindObos is a wrapper for the SSC compute module `cmod_wind_obos.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**WindObos model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.WindObos - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.WindObos.WindObos :members: Wobos Group -====================================================== +------------ .. autoclass:: PySAM.WindObos.WindObos.Wobos :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.WindObos.WindObos.Outputs :members: diff --git a/docs/modules/Windbos.rst b/docs/modules/Windbos.rst index b93f34df..1a1e3731 100644 --- a/docs/modules/Windbos.rst +++ b/docs/modules/Windbos.rst @@ -1,45 +1,34 @@ .. _Windbos: Windbos -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_windbos.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Windbos + :members: -Creating an Instance -=================================== +Windbos is a wrapper for the SSC compute module `cmod_windbos.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Windbos model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Windbos - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Windbos.Windbos :members: WindBos Group -====================================================== +-------------- .. autoclass:: PySAM.Windbos.Windbos.WindBos :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Windbos.Windbos.Outputs :members: diff --git a/docs/modules/Windcsm.rst b/docs/modules/Windcsm.rst index e6e51361..3e8c70a8 100644 --- a/docs/modules/Windcsm.rst +++ b/docs/modules/Windcsm.rst @@ -1,45 +1,34 @@ .. _Windcsm: Windcsm -*********************************** +======== -Wrapper for SAM Simulation Core model: `cmod_windcsm.cpp `_ - -Input Consistency Warning -================================== - -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: - - -Provided for each of these inputs is a list of other inputs that are potentially interdependent. +.. automodule:: PySAM.Windcsm + :members: -Creating an Instance -=================================== +Windcsm is a wrapper for the SSC compute module `cmod_windcsm.cpp `_ -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. +Interdependent Variables +-------------------------- -**Windcsm model description** +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. -.. automodule:: PySAM.Windcsm - :members: +- None Functions -=================================== +----------- .. autoclass:: PySAM.Windcsm.Windcsm :members: WindCsm Group -====================================================== +-------------- .. autoclass:: PySAM.Windcsm.Windcsm.WindCsm :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Windcsm.Windcsm.Outputs :members: diff --git a/docs/modules/Windpower.rst b/docs/modules/Windpower.rst index bee2c50c..2bfa4a87 100644 --- a/docs/modules/Windpower.rst +++ b/docs/modules/Windpower.rst @@ -1,86 +1,84 @@ .. _Windpower: Windpower -*********************************** +========== -Wrapper for SAM Simulation Core model: `cmod_windpower.cpp `_ +.. automodule:: PySAM.Windpower + :members: + +Windpower is a wrapper for the SSC compute module `cmod_windpower.cpp `_ -Input Consistency Warning -================================== +Interdependent Variables +-------------------------- -As described in :ref:`Possible Problems `, some input parameters are interdependent but the equations -that enforce consistency are not available in this PySAM module. Therefore, -the onus is on the PySAM user to check that interdependencies are correctly handled. The variables which may require -additional logic include: +The variables listed below are interdependent with other variables. If you change the value of one of these variables, you may need to change values of other variables. The SAM user interface manages these interdependent variables, but in PySAM, it is up to you change the value of all interdependent variables so they are consistent. See :doc:`../interdependent-variables` for examples and details. - system_capacity + - wake_int_loss + - wind_farm_wake_model + - wind_farm_xCoordinates + - wind_farm_yCoordinates + - wind_resource_model_choice - - wind_turbine_hub_ht - - wind_turbine_max_cp - - wind_turbine_powercurve_powerout - - wind_turbine_powercurve_windspeeds - - wind_turbine_rotor_diameter -Provided for each of these inputs is a list of other inputs that are potentially interdependent. + - wind_turbine_hub_ht -Creating an Instance -=================================== + - wind_turbine_max_cp -Refer to the :ref:`Initializing a Model ` page for details on the different ways to create an instance of a PySAM class. + - wind_turbine_powercurve_powerout -**Windpower model description** + - wind_turbine_powercurve_windspeeds -.. automodule:: PySAM.Windpower - :members: + - wind_turbine_rotor_diameter Functions -=================================== +----------- .. autoclass:: PySAM.Windpower.Windpower :members: Resource Group -====================================================== +--------------- .. autoclass:: PySAM.Windpower.Windpower.Resource :members: Turbine Group -====================================================== +-------------- .. autoclass:: PySAM.Windpower.Windpower.Turbine :members: Farm Group -====================================================== +----------- .. autoclass:: PySAM.Windpower.Windpower.Farm :members: Losses Group -====================================================== +------------- .. autoclass:: PySAM.Windpower.Windpower.Losses :members: Uncertainty Group -====================================================== +------------------ .. autoclass:: PySAM.Windpower.Windpower.Uncertainty :members: AdjustmentFactors Group -====================================================== +------------------------ .. autoclass:: PySAM.Windpower.Windpower.AdjustmentFactors :members: Outputs Group -====================================================== +-------------- .. autoclass:: PySAM.Windpower.Windpower.Outputs :members: diff --git a/docs/version_changes/3.0.2.rst b/docs/version_changes/3.0.2.rst new file mode 100644 index 00000000..b4764c67 --- /dev/null +++ b/docs/version_changes/3.0.2.rst @@ -0,0 +1,81 @@ +.. 3.0.2: + +Version 3.0.2 +=============================================== + +This page compares the PySAM Modules' input variables and the defaults for these input variables +between the current release and the last release. + +This helps track which variables and defaults have changed between releases to make it easier to notify users during version upgrade. + +Below are lists for each PySAM Module: + 1. New Default configurations + 2. Removed Default configurations + 3. Modified Variables: New variables, Removed variables and Type-changed variables + 4. Modified Default Values + +Battery +************************************************ + +:doc:`modules/Battery` Modified Input Variables: + + New variables: + + - mp_ancserv1_revenue_single + - mp_ancserv2_revenue_single + - mp_ancserv3_revenue_single + - mp_ancserv4_revenue_single + - mp_enable_ancserv1_percent_gen + - mp_enable_ancserv2_percent_gen + - mp_enable_ancserv3_percent_gen + - mp_enable_ancserv4_percent_gen + - mp_enable_market_percent_gen + - mp_energy_market_revenue_single + - ppa_escalation + + +LinearFresnelDsgIph +************************************************ + +:doc:`modules/LinearFresnelDsgIph` Modified Input Variables: + + New variables: + + - deltaT_subcooled + - use_quality_or_subcooled + + Removed variables: + + - T_hot + + +Merchantplant +************************************************ + +:doc:`modules/Merchantplant` Modified Input Variables: + + New variables: + + - gen_without_battery + + +Pvsamv1 +************************************************ + +:doc:`modules/Pvsamv1` Modified Input Variables: + + New variables: + + - mp_ancserv1_revenue_single + - mp_ancserv2_revenue_single + - mp_ancserv3_revenue_single + - mp_ancserv4_revenue_single + - mp_enable_ancserv1_percent_gen + - mp_enable_ancserv2_percent_gen + - mp_enable_ancserv3_percent_gen + - mp_enable_ancserv4_percent_gen + - mp_enable_market_percent_gen + - mp_energy_market_revenue_single + - ppa_escalation + + diff --git a/docs/versions.rst b/docs/versions.rst index 421cff31..289fda45 100644 --- a/docs/versions.rst +++ b/docs/versions.rst @@ -11,5 +11,6 @@ This helps track which variables and defaults have changed between releases to m .. toctree:: :maxdepth: 2 + version_changes/3.0.2.rst version_changes/3.0.1.rst version_changes/3.0.0.rst diff --git a/files/version.py b/files/version.py index b7a55314..da4039bc 100644 --- a/files/version.py +++ b/files/version.py @@ -1 +1 @@ -__version__ = '3.0.1' +__version__ = '3.0.2' diff --git a/files/version_differ.py b/files/version_differ.py index ea27fa58..9a5458c1 100644 --- a/files/version_differ.py +++ b/files/version_differ.py @@ -7,7 +7,7 @@ import os import json import tarfile -from files.version import __version__ +from version import __version__ if old_version.__version__ == __version__: raise RuntimeError("Script needs to be run with old release installed and new release's ssc lib under files") @@ -294,7 +294,7 @@ def get_var_dict(): with open(os.path.join(pysam_dir, "docs", "version_changes", __version__ + ".rst"), "w") as f: f.write(f'.. {__version__}:\n\n') - f.write(f'Changes to Modules with Version {__version__}\n') + f.write(f'Version {__version__}\n') f.write('===============================================\n\n') f.write(f'{doc_str}\n\n') for cmod, changes in doc_dict.items(): diff --git a/modules/Annualoutput.c b/modules/Annualoutput.c index 6ad765c6..9ca2efee 100644 --- a/modules/Annualoutput.c +++ b/modules/Annualoutput.c @@ -69,11 +69,11 @@ AnnualOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef AnnualOutput_methods[] = { {"assign", (PyCFunction)AnnualOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AnnualOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)AnnualOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -151,22 +151,22 @@ AnnualOutput_set_system_use_lifetime_output(VarGroupObject *self, PyObject *valu static PyGetSetDef AnnualOutput_getset[] = { {"analysis_period", (getter)AnnualOutput_get_analysis_period,(setter)AnnualOutput_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"energy_availability", (getter)AnnualOutput_get_energy_availability,(setter)AnnualOutput_set_energy_availability, - PyDoc_STR("*sequence*: Annual energy availability [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy availability [%]\n\n**Required:**\nTrue"), NULL}, {"energy_curtailment", (getter)AnnualOutput_get_energy_curtailment,(setter)AnnualOutput_set_energy_curtailment, - PyDoc_STR("*sequence[sequence]*: First year energy curtailment\n\n*Info*: (0..1)\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: First year energy curtailment\n\n**Info:**\n(0..1)\n\n**Required:**\nTrue"), NULL}, {"energy_degradation", (getter)AnnualOutput_get_energy_degradation,(setter)AnnualOutput_set_energy_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nTrue"), NULL}, {"system_hourly_energy", (getter)AnnualOutput_get_system_hourly_energy,(setter)AnnualOutput_set_system_hourly_energy, - PyDoc_STR("*sequence*: Hourly energy produced by the system [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Hourly energy produced by the system [kW]\n\n**Required:**\nTrue"), NULL}, {"system_use_lifetime_output", (getter)AnnualOutput_get_system_use_lifetime_output,(setter)AnnualOutput_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -281,11 +281,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -660,12 +660,11 @@ static PyMethodDef AnnualoutputModule_methods[] = { {"new", Annualoutput_new, METH_VARARGS, PyDoc_STR("new() -> Annualoutput")}, {"default", Annualoutput_default, METH_VARARGS, - PyDoc_STR("default(config) -> Annualoutput\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Annualoutput\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Annualoutput_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Annualoutput\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Annualoutput\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Annualoutput_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Annualoutput\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Annualoutput\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Battery.c b/modules/Battery.c index 834f2d65..56a06a30 100644 --- a/modules/Battery.c +++ b/modules/Battery.c @@ -69,11 +69,11 @@ Simulation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Simulation_methods[] = { {"assign", (PyCFunction)Simulation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Simulation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Simulation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Simulation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Simulation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Simulation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Simulation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -206,11 +206,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -252,13 +252,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Info*: The number of years in the simulation\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Info:**\nThe number of years in the simulation\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"inflation_rate", (getter)Lifetime_get_inflation_rate,(setter)Lifetime_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n*Options*: 0=SingleYearRepeated,1=RunEveryYear\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n**Options:**\n0=SingleYearRepeated,1=RunEveryYear\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -373,11 +373,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -731,88 +731,88 @@ BatterySystem_set_om_replacement_cost1(VarGroupObject *self, PyObject *value, vo static PyGetSetDef BatterySystem_getset[] = { {"batt_ac_dc_efficiency", (getter)BatterySystem_get_batt_ac_dc_efficiency,(setter)BatterySystem_set_batt_ac_dc_efficiency, - PyDoc_STR("*float*: Inverter AC to battery DC efficiency\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter AC to battery DC efficiency\n\nThe value of the following variables depends on ``batt_ac_dc_efficiency``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_ac_or_dc", (getter)BatterySystem_get_batt_ac_or_dc,(setter)BatterySystem_set_batt_ac_or_dc, - PyDoc_STR("*float*: Battery interconnection (AC or DC)\n\n*Options*: 0=DC_Connected,1=AC_Connected\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Battery interconnection (AC or DC)\n\n**Options:**\n0=DC_Connected,1=AC_Connected\n\nThe value of the following variables depends on ``batt_ac_or_dc``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery computed bank capacity [kWh]\n\n*Changes to this variable may require updating the values of the following*: \n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_mass\n\t - batt_surface_area\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery computed bank capacity [kWh]\n\nThe value of the following variables depends on ``batt_computed_bank_capacity``:\n\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_mass\n\t - batt_surface_area\n\n\nThe value of ``batt_computed_bank_capacity`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_computed_series", (getter)BatterySystem_get_batt_computed_series,(setter)BatterySystem_set_batt_computed_series, - PyDoc_STR("*float*: Battery number of cells in series\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery number of cells in series\n\nThe value of ``batt_computed_series`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_computed_strings", (getter)BatterySystem_get_batt_computed_strings,(setter)BatterySystem_set_batt_computed_strings, - PyDoc_STR("*float*: Battery number of strings of cells\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery number of strings of cells\n\nThe value of the following variables depends on ``batt_computed_strings``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\n\nThe value of ``batt_computed_strings`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_current_charge_max", (getter)BatterySystem_get_batt_current_charge_max,(setter)BatterySystem_set_batt_current_charge_max, - PyDoc_STR("*float*: Battery maximum charge current [A]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum charge current [A]\n\nThe value of ``batt_current_charge_max`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_current_choice", (getter)BatterySystem_get_batt_current_choice,(setter)BatterySystem_set_batt_current_choice, - PyDoc_STR("*float*: Limit cells by current or power\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Limit cells by current or power\n\nThe value of the following variables depends on ``batt_current_choice``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_current_discharge_max", (getter)BatterySystem_get_batt_current_discharge_max,(setter)BatterySystem_set_batt_current_discharge_max, - PyDoc_STR("*float*: Battery maximum discharge current [A]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum discharge current [A]\n\nThe value of ``batt_current_discharge_max`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_dc_ac_efficiency", (getter)BatterySystem_get_batt_dc_ac_efficiency,(setter)BatterySystem_set_batt_dc_ac_efficiency, - PyDoc_STR("*float*: Battery DC to AC efficiency\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Battery DC to AC efficiency\n\nThe value of the following variables depends on ``batt_dc_ac_efficiency``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_dc_dc_efficiency", (getter)BatterySystem_get_batt_dc_dc_efficiency,(setter)BatterySystem_set_batt_dc_dc_efficiency, - PyDoc_STR("*float*: System DC to battery DC efficiency\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: System DC to battery DC efficiency\n\nThe value of the following variables depends on ``batt_dc_dc_efficiency``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_inverter_efficiency_cutoff", (getter)BatterySystem_get_batt_inverter_efficiency_cutoff,(setter)BatterySystem_set_batt_inverter_efficiency_cutoff, PyDoc_STR("*float*: Inverter efficiency at which to cut battery charge or discharge off [%]"), NULL}, {"batt_loss_choice", (getter)BatterySystem_get_batt_loss_choice,(setter)BatterySystem_set_batt_loss_choice, - PyDoc_STR("*float*: Loss power input option [0/1]\n\n*Options*: 0=Monthly,1=TimeSeries\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loss power input option [0/1]\n\n**Options:**\n0=Monthly,1=TimeSeries\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses", (getter)BatterySystem_get_batt_losses,(setter)BatterySystem_set_batt_losses, - PyDoc_STR("*sequence*: Battery system losses at each timestep (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses at each timestep (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_charging", (getter)BatterySystem_get_batt_losses_charging,(setter)BatterySystem_set_batt_losses_charging, - PyDoc_STR("*sequence*: Battery system losses when charging (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when charging (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_discharging", (getter)BatterySystem_get_batt_losses_discharging,(setter)BatterySystem_set_batt_losses_discharging, - PyDoc_STR("*sequence*: Battery system losses when discharging (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when discharging (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_idle", (getter)BatterySystem_get_batt_losses_idle,(setter)BatterySystem_set_batt_losses_idle, - PyDoc_STR("*sequence*: Battery system losses when idle (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when idle (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_mass", (getter)BatterySystem_get_batt_mass,(setter)BatterySystem_set_batt_mass, - PyDoc_STR("*float*: Battery mass [kg]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery mass [kg]\n\nThe value of ``batt_mass`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_meter_position", (getter)BatterySystem_get_batt_meter_position,(setter)BatterySystem_set_batt_meter_position, - PyDoc_STR("*float*: Position of battery relative to electric meter\n\n*Options*: 0=BehindTheMeter,1=FrontOfMeter"), + PyDoc_STR("*float*: Position of battery relative to electric meter\n\n**Options:**\n0=BehindTheMeter,1=FrontOfMeter"), NULL}, {"batt_power_charge_max_kwac", (getter)BatterySystem_get_batt_power_charge_max_kwac,(setter)BatterySystem_set_batt_power_charge_max_kwac, - PyDoc_STR("*float*: Battery maximum charge power (AC) [kWac]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum charge power (AC) [kWac]\n\nThe value of ``batt_power_charge_max_kwac`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_power_charge_max_kwdc", (getter)BatterySystem_get_batt_power_charge_max_kwdc,(setter)BatterySystem_set_batt_power_charge_max_kwdc, - PyDoc_STR("*float*: Battery maximum charge power (DC) [kWdc]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum charge power (DC) [kWdc]\n\nThe value of ``batt_power_charge_max_kwdc`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_power_discharge_max_kwac", (getter)BatterySystem_get_batt_power_discharge_max_kwac,(setter)BatterySystem_set_batt_power_discharge_max_kwac, - PyDoc_STR("*float*: Battery maximum discharge power (AC) [kWac]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum discharge power (AC) [kWac]\n\nThe value of ``batt_power_discharge_max_kwac`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_power_discharge_max_kwdc", (getter)BatterySystem_get_batt_power_discharge_max_kwdc,(setter)BatterySystem_set_batt_power_discharge_max_kwdc, - PyDoc_STR("*float*: Battery maximum discharge power (DC) [kWdc]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery maximum discharge power (DC) [kWdc]\n\nThe value of ``batt_power_discharge_max_kwdc`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_replacement_capacity", (getter)BatterySystem_get_batt_replacement_capacity,(setter)BatterySystem_set_batt_replacement_capacity, PyDoc_STR("*float*: Capacity degradation at which to replace battery [%]"), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period\n\n*Required*: True if batt_replacement_option=2"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period\n\n**Required:**\nRequired if batt_replacement_option=2"), NULL}, {"batt_surface_area", (getter)BatterySystem_get_batt_surface_area,(setter)BatterySystem_set_batt_surface_area, - PyDoc_STR("*float*: Battery surface area [m^2]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Battery surface area [m^2]\n\nThe value of ``batt_surface_area`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost1", (getter)BatterySystem_get_om_replacement_cost1,(setter)BatterySystem_set_om_replacement_cost1, PyDoc_STR("*sequence*: Cost to replace battery per kWh [$/kWh]"), @@ -930,11 +930,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -976,10 +976,10 @@ SystemOutput_set_gen(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemOutput_getset[] = { {"annual_energy", (getter)SystemOutput_get_annual_energy,(setter)SystemOutput_set_annual_energy, - PyDoc_STR("*float*: Annual Energy [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Annual Energy [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"capacity_factor", (getter)SystemOutput_get_capacity_factor,(setter)SystemOutput_set_capacity_factor, - PyDoc_STR("*float*: Capacity factor [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Capacity factor [%]"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, PyDoc_STR("*sequence*: System power generated [kW]"), @@ -1097,11 +1097,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1182,19 +1182,19 @@ static PyGetSetDef Load_getset[] = { PyDoc_STR("*sequence*: Critical electricity load (year 1) [kW]"), NULL}, {"crit_load_escalation", (getter)Load_get_crit_load_escalation,(setter)Load_set_crit_load_escalation, - PyDoc_STR("*sequence*: Annual critical load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual critical load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_outage", (getter)Load_get_grid_outage,(setter)Load_set_grid_outage, - PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n*Options*: 0=GridAvailable,1=GridUnavailable,Length=load"), + PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n**Options:**\n0=GridAvailable,1=GridUnavailable,Length=load"), NULL}, {"load", (getter)Load_get_load,(setter)Load_set_load, - PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n*Changes to this variable may require updating the values of the following*: \n\t - batt_room_temperature_celsius\n"), + PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\nThe value of the following variables depends on ``load``:\n\n\t - batt_room_temperature_celsius\n"), NULL}, {"load_escalation", (getter)Load_get_load_escalation,(setter)Load_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - batt_load_ac_forecast_escalation\n"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``load_escalation``:\n\n\t - batt_load_ac_forecast_escalation\n"), NULL}, {"run_resiliency_calcs", (getter)Load_get_run_resiliency_calcs,(setter)Load_set_run_resiliency_calcs, - PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n*Options*: 0=DisableCalcs,1=EnableCalcs\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n**Options:**\n0=DisableCalcs,1=EnableCalcs\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1309,11 +1309,11 @@ BatteryCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatteryCell_methods[] = { {"assign", (PyCFunction)BatteryCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatteryCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatteryCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatteryCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatteryCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatteryCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatteryCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1739,13 +1739,13 @@ BatteryCell_set_cap_vs_temp(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef BatteryCell_getset[] = { {"LeadAcid_q10_computed", (getter)BatteryCell_get_LeadAcid_q10_computed,(setter)BatteryCell_set_LeadAcid_q10_computed, - PyDoc_STR("*float*: Capacity at 10-hour discharge rate [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Capacity at 10-hour discharge rate [Ah]\n\nThe value of ``LeadAcid_q10_computed`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"LeadAcid_q20_computed", (getter)BatteryCell_get_LeadAcid_q20_computed,(setter)BatteryCell_set_LeadAcid_q20_computed, - PyDoc_STR("*float*: Capacity at 20-hour discharge rate [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Capacity at 20-hour discharge rate [Ah]\n\nThe value of ``LeadAcid_q20_computed`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"LeadAcid_qn_computed", (getter)BatteryCell_get_LeadAcid_qn_computed,(setter)BatteryCell_set_LeadAcid_qn_computed, - PyDoc_STR("*float*: Capacity at discharge rate for n-hour rate [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Capacity at discharge rate for n-hour rate [Ah]\n\nThe value of ``LeadAcid_qn_computed`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_strings\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"LeadAcid_tn", (getter)BatteryCell_get_LeadAcid_tn,(setter)BatteryCell_set_LeadAcid_tn, PyDoc_STR("*float*: Time to discharge [h]"), @@ -1757,19 +1757,19 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Battery specific heat capacity [J/KgK]"), NULL}, {"batt_Qexp", (getter)BatteryCell_get_batt_Qexp,(setter)BatteryCell_set_batt_Qexp, - PyDoc_STR("*float*: Cell capacity at end of exponential zone [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Cell capacity at end of exponential zone [Ah]\n\nThe value of ``batt_Qexp`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_Qfull", (getter)BatteryCell_get_batt_Qfull,(setter)BatteryCell_set_batt_Qfull, - PyDoc_STR("*float*: Fully charged cell capacity [Ah]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Fully charged cell capacity [Ah]\n\nThe value of the following variables depends on ``batt_Qfull``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_Qfull_flow", (getter)BatteryCell_get_batt_Qfull_flow,(setter)BatteryCell_set_batt_Qfull_flow, - PyDoc_STR("*float*: Fully charged flow battery capacity [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Fully charged flow battery capacity [Ah]\n\nThe value of ``batt_Qfull_flow`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_Qnom", (getter)BatteryCell_get_batt_Qnom,(setter)BatteryCell_set_batt_Qnom, - PyDoc_STR("*float*: Cell capacity at end of nominal zone [Ah]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), + PyDoc_STR("*float*: Cell capacity at end of nominal zone [Ah]\n\nThe value of ``batt_Qnom`` depends on the following variables:\n\n\t - batt_Qfull\n\t - batt_Vnom_default\n\t - batt_ac_dc_efficiency\n\t - batt_ac_or_dc\n\t - batt_chem\n\t - batt_computed_bank_capacity\n\t - batt_current_choice\n\t - batt_dc_ac_efficiency\n\t - batt_dc_dc_efficiency\n"), NULL}, {"batt_Vcut", (getter)BatteryCell_get_batt_Vcut,(setter)BatteryCell_set_batt_Vcut, - PyDoc_STR("*float*: Cutoff voltage for battery rated capacity [V]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Cutoff voltage for battery rated capacity [V]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_Vexp", (getter)BatteryCell_get_batt_Vexp,(setter)BatteryCell_set_batt_Vexp, PyDoc_STR("*float*: Cell voltage at end of exponential zone [V]"), @@ -1781,28 +1781,28 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Cell voltage at end of nominal zone [V]"), NULL}, {"batt_Vnom_default", (getter)BatteryCell_get_batt_Vnom_default,(setter)BatteryCell_set_batt_Vnom_default, - PyDoc_STR("*float*: Default nominal cell voltage [V]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Default nominal cell voltage [V]\n\nThe value of the following variables depends on ``batt_Vnom_default``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_calendar_a", (getter)BatteryCell_get_batt_calendar_a,(setter)BatteryCell_set_batt_calendar_a, - PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_b", (getter)BatteryCell_get_batt_calendar_b,(setter)BatteryCell_set_batt_calendar_b, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_c", (getter)BatteryCell_get_batt_calendar_c,(setter)BatteryCell_set_batt_calendar_c, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_choice", (getter)BatteryCell_get_batt_calendar_choice,(setter)BatteryCell_set_batt_calendar_choice, - PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n*Options*: 0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable\n\n*Required*: True if en_batt=1&batt_life_model=0"), + PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n**Options:**\n0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0"), NULL}, {"batt_calendar_lifetime_matrix", (getter)BatteryCell_get_batt_calendar_lifetime_matrix,(setter)BatteryCell_set_batt_calendar_lifetime_matrix, - PyDoc_STR("*sequence[sequence]*: Days vs capacity\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=2"), + PyDoc_STR("*sequence[sequence]*: Days vs capacity\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=2"), NULL}, {"batt_calendar_q0", (getter)BatteryCell_get_batt_calendar_q0,(setter)BatteryCell_set_batt_calendar_q0, - PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_chem", (getter)BatteryCell_get_batt_chem,(setter)BatteryCell_set_batt_chem, - PyDoc_STR("*float*: Battery chemistry\n\n*Options*: 0=LeadAcid,1=LiIon\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Battery chemistry\n\n**Options:**\n0=LeadAcid,1=LiIon\n\nThe value of the following variables depends on ``batt_chem``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"batt_h_to_ambient", (getter)BatteryCell_get_batt_h_to_ambient,(setter)BatteryCell_set_batt_h_to_ambient, PyDoc_STR("*float*: Heat transfer between battery and environment [W/m2K]"), @@ -1811,10 +1811,10 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Initial state-of-charge [%]"), NULL}, {"batt_life_model", (getter)BatteryCell_get_batt_life_model,(setter)BatteryCell_set_batt_life_model, - PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n*Options*: 0=calendar/cycle,1=NMC,2=LMO/LTO\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n**Options:**\n0=calendar/cycle,1=NMC,2=LMO/LTO\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_lifetime_matrix", (getter)BatteryCell_get_batt_lifetime_matrix,(setter)BatteryCell_set_batt_lifetime_matrix, - PyDoc_STR("*sequence[sequence]*: Cycles vs capacity at different depths-of-discharge\n\n*Required*: True if en_batt=1&batt_life_model=0"), + PyDoc_STR("*sequence[sequence]*: Cycles vs capacity at different depths-of-discharge\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0"), NULL}, {"batt_maximum_SOC", (getter)BatteryCell_get_batt_maximum_SOC,(setter)BatteryCell_set_batt_maximum_SOC, PyDoc_STR("*float*: Maximum allowed state-of-charge [%]"), @@ -1832,10 +1832,10 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Internal resistance [Ohm]"), NULL}, {"batt_room_temperature_celsius", (getter)BatteryCell_get_batt_room_temperature_celsius,(setter)BatteryCell_set_batt_room_temperature_celsius, - PyDoc_STR("*sequence*: Temperature of storage room [C]\n\n*Options*: length=1 for fixed, # of weatherfile records otherwise\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - grid_curtailment\n"), + PyDoc_STR("*sequence*: Temperature of storage room [C]\n\n**Options:**\nlength=1 for fixed, # of weatherfile records otherwise\n\nThe value of ``batt_room_temperature_celsius`` depends on the following variables:\n\n\t - grid_curtailment\n"), NULL}, {"batt_voltage_choice", (getter)BatteryCell_get_batt_voltage_choice,(setter)BatteryCell_set_batt_voltage_choice, - PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n*Options*: 0=UseVoltageModel,1=InputVoltageTable\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n**Options:**\n0=UseVoltageModel,1=InputVoltageTable\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_voltage_matrix", (getter)BatteryCell_get_batt_voltage_matrix,(setter)BatteryCell_set_batt_voltage_matrix, PyDoc_STR("*sequence[sequence]*: Battery voltage vs. depth-of-discharge"), @@ -1956,11 +1956,11 @@ Inverter_export(VarGroupObject *self, PyObject *args) static PyMethodDef Inverter_methods[] = { {"assign", (PyCFunction)Inverter_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Inverter_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Inverter_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Inverter_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Inverter_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Inverter_vals = { var: val, ...}``")}, {"export", (PyCFunction)Inverter_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2086,25 +2086,25 @@ Inverter_set_inverter_model(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef Inverter_getset[] = { {"inv_cec_cg_eff_cec", (getter)Inverter_get_inv_cec_cg_eff_cec,(setter)Inverter_set_inv_cec_cg_eff_cec, - PyDoc_STR("*float*: Inverter Coefficient Generator CEC Efficiency [%]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter Coefficient Generator CEC Efficiency [%]\n\nThe value of the following variables depends on ``inv_cec_cg_eff_cec``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"inv_cec_cg_paco", (getter)Inverter_get_inv_cec_cg_paco,(setter)Inverter_set_inv_cec_cg_paco, PyDoc_STR("*float*: Inverter Coefficient Generator Max AC Power [Wac]"), NULL}, {"inv_ds_eff", (getter)Inverter_get_inv_ds_eff,(setter)Inverter_set_inv_ds_eff, - PyDoc_STR("*float*: Inverter Datasheet Efficiency [%]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter Datasheet Efficiency [%]\n\nThe value of the following variables depends on ``inv_ds_eff``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"inv_ds_paco", (getter)Inverter_get_inv_ds_paco,(setter)Inverter_set_inv_ds_paco, PyDoc_STR("*float*: Inverter Datasheet Maximum AC Power [Wac]"), NULL}, {"inv_pd_eff", (getter)Inverter_get_inv_pd_eff,(setter)Inverter_set_inv_pd_eff, - PyDoc_STR("*float*: Inverter Partload Efficiency [%]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter Partload Efficiency [%]\n\nThe value of the following variables depends on ``inv_pd_eff``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"inv_pd_paco", (getter)Inverter_get_inv_pd_paco,(setter)Inverter_set_inv_pd_paco, PyDoc_STR("*float*: Inverter Partload Maximum AC Power [Wac]"), NULL}, {"inv_snl_eff_cec", (getter)Inverter_get_inv_snl_eff_cec,(setter)Inverter_set_inv_snl_eff_cec, - PyDoc_STR("*float*: Inverter Sandia CEC Efficiency [%]\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter Sandia CEC Efficiency [%]\n\nThe value of the following variables depends on ``inv_snl_eff_cec``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {"inv_snl_paco", (getter)Inverter_get_inv_snl_paco,(setter)Inverter_set_inv_snl_paco, PyDoc_STR("*float*: Inverter Sandia Maximum AC Power [Wac]"), @@ -2113,7 +2113,7 @@ static PyGetSetDef Inverter_getset[] = { PyDoc_STR("*float*: Number of inverters"), NULL}, {"inverter_model", (getter)Inverter_get_inverter_model,(setter)Inverter_set_inverter_model, - PyDoc_STR("*float*: Inverter model specifier\n\n*Options*: 0=cec,1=datasheet,2=partload,3=coefficientgenerator,4=generic\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 4\n\n*Changes to this variable may require updating the values of the following*: \n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), + PyDoc_STR("*float*: Inverter model specifier\n\n**Options:**\n0=cec,1=datasheet,2=partload,3=coefficientgenerator,4=generic\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 4 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``inverter_model``:\n\n\t - LeadAcid_q10_computed\n\t - LeadAcid_q20_computed\n\t - LeadAcid_qn_computed\n\t - batt_Qexp\n\t - batt_Qfull_flow\n\t - batt_Qnom\n\t - batt_computed_bank_capacity\n\t - batt_computed_series\n\t - batt_computed_strings\n\t - batt_current_charge_max\n\t - batt_current_discharge_max\n\t - batt_mass\n\t - batt_power_charge_max_kwac\n\t - batt_power_charge_max_kwdc\n\t - batt_power_discharge_max_kwac\n\t - batt_power_discharge_max_kwdc\n\t - batt_surface_area\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2228,11 +2228,11 @@ Losses_export(VarGroupObject *self, PyObject *args) static PyMethodDef Losses_methods[] = { {"assign", (PyCFunction)Losses_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Losses_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Losses_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Losses_vals = { var: val, ...}``")}, {"export", (PyCFunction)Losses_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2365,11 +2365,11 @@ BatteryDispatch_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatteryDispatch_methods[] = { {"assign", (PyCFunction)BatteryDispatch_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatteryDispatch_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatteryDispatch_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatteryDispatch_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatteryDispatch_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatteryDispatch_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatteryDispatch_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2927,13 +2927,13 @@ BatteryDispatch_set_dispatch_manual_sched_weekend(VarGroupObject *self, PyObject static PyGetSetDef BatteryDispatch_getset[] = { {"batt_custom_dispatch", (getter)BatteryDispatch_get_batt_custom_dispatch,(setter)BatteryDispatch_set_batt_custom_dispatch, - PyDoc_STR("*sequence*: Custom battery power for every time step [kW]\n\n*Info*: kWAC if AC-connected, else kWDC\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=2"), + PyDoc_STR("*sequence*: Custom battery power for every time step [kW]\n\n**Info:**\nkWAC if AC-connected, else kWDC\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=2"), NULL}, {"batt_cycle_cost", (getter)BatteryDispatch_get_batt_cycle_cost,(setter)BatteryDispatch_set_batt_cycle_cost, - PyDoc_STR("*sequence*: Input battery cycle degradaton penalty per year [$/cycle-kWh]\n\n*Info*: length 1 or analysis_period, length 1 will be extended using inflation\n\n*Required*: True if batt_cycle_cost_choice=1"), + PyDoc_STR("*sequence*: Input battery cycle degradaton penalty per year [$/cycle-kWh]\n\n**Info:**\nlength 1 or analysis_period, length 1 will be extended using inflation\n\n**Required:**\nRequired if batt_cycle_cost_choice=1"), NULL}, {"batt_cycle_cost_choice", (getter)BatteryDispatch_get_batt_cycle_cost_choice,(setter)BatteryDispatch_set_batt_cycle_cost_choice, - PyDoc_STR("*float*: Use SAM cost model for degradaton penalty or input custom via batt_cycle_cost [0/1]\n\n*Options*: 0=UseCostModel,1=InputCost\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use SAM cost model for degradaton penalty or input custom via batt_cycle_cost [0/1]\n\n**Options:**\n0=UseCostModel,1=InputCost\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_dispatch_auto_btm_can_discharge_to_grid", (getter)BatteryDispatch_get_batt_dispatch_auto_btm_can_discharge_to_grid,(setter)BatteryDispatch_set_batt_dispatch_auto_btm_can_discharge_to_grid, PyDoc_STR("*float*: Behind the meter battery can discharge to grid? [0/1]"), @@ -2951,118 +2951,118 @@ static PyGetSetDef BatteryDispatch_getset[] = { PyDoc_STR("*float*: Grid charging allowed for automated dispatch? [0/1]"), NULL}, {"batt_dispatch_charge_only_system_exceeds_load", (getter)BatteryDispatch_get_batt_dispatch_charge_only_system_exceeds_load,(setter)BatteryDispatch_set_batt_dispatch_charge_only_system_exceeds_load, - PyDoc_STR("*float*: Battery can charge from system only when system output exceeds load [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), + PyDoc_STR("*float*: Battery can charge from system only when system output exceeds load [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), NULL}, {"batt_dispatch_choice", (getter)BatteryDispatch_get_batt_dispatch_choice,(setter)BatteryDispatch_set_batt_dispatch_choice, - PyDoc_STR("*float*: Battery dispatch algorithm [0/1/2/3/4]\n\n*Options*: If behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=PriceSignalForecast if front of meter: 0=AutomatedEconomic,1=PV_Smoothing,2=InputBatteryPower,3=ManualDispatch\n\n*Required*: True if en_batt=1"), + PyDoc_STR("*float*: Battery dispatch algorithm [0/1/2/3/4]\n\n**Options:**\nIf behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=PriceSignalForecast if front of meter: 0=AutomatedEconomic,1=PV_Smoothing,2=InputBatteryPower,3=ManualDispatch\n\n**Required:**\nRequired if en_batt=1"), NULL}, {"batt_dispatch_discharge_only_load_exceeds_system", (getter)BatteryDispatch_get_batt_dispatch_discharge_only_load_exceeds_system,(setter)BatteryDispatch_set_batt_dispatch_discharge_only_load_exceeds_system, - PyDoc_STR("*float*: Battery can discharge battery only when load exceeds system output [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), + PyDoc_STR("*float*: Battery can discharge battery only when load exceeds system output [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), NULL}, {"batt_dispatch_load_forecast_choice", (getter)BatteryDispatch_get_batt_dispatch_load_forecast_choice,(setter)BatteryDispatch_set_batt_dispatch_load_forecast_choice, - PyDoc_STR("*float*: Load forecast choice for automatic dispatch [0/1/2]\n\n*Options*: 0=LookAhead,1=LookBehind,2=InputForecast\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - batt_load_ac_forecast\n\t - batt_load_ac_forecast_escalation\n"), + PyDoc_STR("*float*: Load forecast choice for automatic dispatch [0/1/2]\n\n**Options:**\n0=LookAhead,1=LookBehind,2=InputForecast\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``batt_dispatch_load_forecast_choice``:\n\n\t - batt_load_ac_forecast\n\t - batt_load_ac_forecast_escalation\n"), NULL}, {"batt_dispatch_pvs_ac_lb", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_lb,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_lb, - PyDoc_STR("*float*: AC lower bound [fraction of nameplate]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: AC lower bound [fraction of nameplate]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_lb_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_lb_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_lb_enable, - PyDoc_STR("*float*: Enable AC lower bound [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable AC lower bound [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_ub", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_ub,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_ub, - PyDoc_STR("*float*: AC upper bound [fraction of nameplate]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: AC upper bound [fraction of nameplate]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_ub_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_ub_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_ub_enable, - PyDoc_STR("*float*: Enable AC upper bound [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable AC upper bound [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_curtail_as_control", (getter)BatteryDispatch_get_batt_dispatch_pvs_curtail_as_control,(setter)BatteryDispatch_set_batt_dispatch_pvs_curtail_as_control, - PyDoc_STR("*float*: Correct up-ramp violations [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Correct up-ramp violations [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_curtail_if_violation", (getter)BatteryDispatch_get_batt_dispatch_pvs_curtail_if_violation,(setter)BatteryDispatch_set_batt_dispatch_pvs_curtail_if_violation, - PyDoc_STR("*float*: Curtail violations [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Curtail violations [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_forecast_shift_periods", (getter)BatteryDispatch_get_batt_dispatch_pvs_forecast_shift_periods,(setter)BatteryDispatch_set_batt_dispatch_pvs_forecast_shift_periods, - PyDoc_STR("*float*: Forecasting window [periods of ramp intervals]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Forecasting window [periods of ramp intervals]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_kf", (getter)BatteryDispatch_get_batt_dispatch_pvs_kf,(setter)BatteryDispatch_set_batt_dispatch_pvs_kf, - PyDoc_STR("*float*: Forecast accumulation error multiplier (kf)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Forecast accumulation error multiplier (kf)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ki", (getter)BatteryDispatch_get_batt_dispatch_pvs_ki,(setter)BatteryDispatch_set_batt_dispatch_pvs_ki, - PyDoc_STR("*float*: Return to rest SOC multiplier (ki)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Return to rest SOC multiplier (ki)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_kp", (getter)BatteryDispatch_get_batt_dispatch_pvs_kp,(setter)BatteryDispatch_set_batt_dispatch_pvs_kp, - PyDoc_STR("*float*: Track PV power multiplier (kp)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Track PV power multiplier (kp)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_max_ramp", (getter)BatteryDispatch_get_batt_dispatch_pvs_max_ramp,(setter)BatteryDispatch_set_batt_dispatch_pvs_max_ramp, - PyDoc_STR("*float*: Maximum ramp rate [% of nameplate per ramp interval]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Maximum ramp rate [% of nameplate per ramp interval]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_nameplate_ac", (getter)BatteryDispatch_get_batt_dispatch_pvs_nameplate_ac,(setter)BatteryDispatch_set_batt_dispatch_pvs_nameplate_ac, - PyDoc_STR("*float*: Nameplate for pv smoothing [kWac]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Nameplate for pv smoothing [kWac]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_short_forecast_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_short_forecast_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_short_forecast_enable, - PyDoc_STR("*float*: Enable short term power forecast [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable short term power forecast [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_soc_rest", (getter)BatteryDispatch_get_batt_dispatch_pvs_soc_rest,(setter)BatteryDispatch_set_batt_dispatch_pvs_soc_rest, - PyDoc_STR("*float*: Battery resting SOC [%]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Battery resting SOC [%]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_timestep_multiplier", (getter)BatteryDispatch_get_batt_dispatch_pvs_timestep_multiplier,(setter)BatteryDispatch_set_batt_dispatch_pvs_timestep_multiplier, - PyDoc_STR("*float*: Ramp timestep multiplier\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Ramp timestep multiplier\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_update_frequency_hours", (getter)BatteryDispatch_get_batt_dispatch_update_frequency_hours,(setter)BatteryDispatch_set_batt_dispatch_update_frequency_hours, PyDoc_STR("*float*: Frequency to update the look-ahead dispatch [hours]"), NULL}, {"batt_dispatch_wf_forecast_choice", (getter)BatteryDispatch_get_batt_dispatch_wf_forecast_choice,(setter)BatteryDispatch_set_batt_dispatch_wf_forecast_choice, - PyDoc_STR("*float*: Weather forecast choice for automatic dispatch [0/1/2]\n\n*Options*: 0=LookAhead,1=LookBehind,2=InputForecast\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Weather forecast choice for automatic dispatch [0/1/2]\n\n**Options:**\n0=LookAhead,1=LookBehind,2=InputForecast\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_load_ac_forecast", (getter)BatteryDispatch_get_batt_load_ac_forecast,(setter)BatteryDispatch_set_batt_load_ac_forecast, - PyDoc_STR("*sequence*: Load ac power forecast [kW]\n\n*Info*: Length either 8760 or 8760 * steps per hour\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_dispatch_load_forecast_choice\n"), + PyDoc_STR("*sequence*: Load ac power forecast [kW]\n\n**Info:**\nLength either 8760 or 8760 * steps per hour\n\nThe value of ``batt_load_ac_forecast`` depends on the following variables:\n\n\t - batt_dispatch_load_forecast_choice\n"), NULL}, {"batt_load_ac_forecast_escalation", (getter)BatteryDispatch_get_batt_load_ac_forecast_escalation,(setter)BatteryDispatch_set_batt_load_ac_forecast_escalation, - PyDoc_STR("*sequence*: Annual load escalation for ac power forecast [kW]\n\n*Options*: length <= analysis_period\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - batt_dispatch_load_forecast_choice\n\t - load_escalation\n"), + PyDoc_STR("*sequence*: Annual load escalation for ac power forecast [kW]\n\n**Options:**\nlength <= analysis_period\n\nThe value of ``batt_load_ac_forecast_escalation`` depends on the following variables:\n\n\t - batt_dispatch_load_forecast_choice\n\t - load_escalation\n"), NULL}, {"batt_look_ahead_hours", (getter)BatteryDispatch_get_batt_look_ahead_hours,(setter)BatteryDispatch_set_batt_look_ahead_hours, PyDoc_STR("*float*: Hours to look ahead in automated dispatch [hours]"), NULL}, {"batt_pv_ac_forecast", (getter)BatteryDispatch_get_batt_pv_ac_forecast,(setter)BatteryDispatch_set_batt_pv_ac_forecast, - PyDoc_STR("*sequence*: PV ac power forecast [kW]\n\n*Info*: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), + PyDoc_STR("*sequence*: PV ac power forecast [kW]\n\n**Info:**\nLength either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), NULL}, {"batt_pv_clipping_forecast", (getter)BatteryDispatch_get_batt_pv_clipping_forecast,(setter)BatteryDispatch_set_batt_pv_clipping_forecast, - PyDoc_STR("*sequence*: PV clipping forecast [kW]\n\n*Info*: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), + PyDoc_STR("*sequence*: PV clipping forecast [kW]\n\n**Info:**\nLength either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), NULL}, {"batt_target_choice", (getter)BatteryDispatch_get_batt_target_choice,(setter)BatteryDispatch_set_batt_target_choice, - PyDoc_STR("*float*: Target power input option [0/1]\n\n*Options*: 0=InputMonthlyTarget,1=InputFullTimeSeries\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Target power input option [0/1]\n\n**Options:**\n0=InputMonthlyTarget,1=InputFullTimeSeries\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"batt_target_power", (getter)BatteryDispatch_get_batt_target_power,(setter)BatteryDispatch_set_batt_target_power, - PyDoc_STR("*sequence*: Grid target power for every time step [kW]\n\n*Required*: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*sequence*: Grid target power for every time step [kW]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"batt_target_power_monthly", (getter)BatteryDispatch_get_batt_target_power_monthly,(setter)BatteryDispatch_set_batt_target_power_monthly, - PyDoc_STR("*sequence*: Grid target power on monthly basis [kW]\n\n*Required*: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*sequence*: Grid target power on monthly basis [kW]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"dispatch_manual_btm_discharge_to_grid", (getter)BatteryDispatch_get_dispatch_manual_btm_discharge_to_grid,(setter)BatteryDispatch_set_dispatch_manual_btm_discharge_to_grid, - PyDoc_STR("*sequence*: Periods 1-6 behind the meter discharging to grid allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3&batt_meter_position=0"), + PyDoc_STR("*sequence*: Periods 1-6 behind the meter discharging to grid allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3&batt_meter_position=0"), NULL}, {"dispatch_manual_charge", (getter)BatteryDispatch_get_dispatch_manual_charge,(setter)BatteryDispatch_set_dispatch_manual_charge, - PyDoc_STR("*sequence*: Periods 1-6 charging from system allowed?\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 charging from system allowed?\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_discharge", (getter)BatteryDispatch_get_dispatch_manual_discharge,(setter)BatteryDispatch_set_dispatch_manual_discharge, - PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - dispatch_manual_percent_discharge\n"), + PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3\n\nThe value of the following variables depends on ``dispatch_manual_discharge``:\n\n\t - dispatch_manual_percent_discharge\n"), NULL}, {"dispatch_manual_fuelcellcharge", (getter)BatteryDispatch_get_dispatch_manual_fuelcellcharge,(setter)BatteryDispatch_set_dispatch_manual_fuelcellcharge, PyDoc_STR("*sequence*: Periods 1-6 charging from fuel cell allowed?"), NULL}, {"dispatch_manual_gridcharge", (getter)BatteryDispatch_get_dispatch_manual_gridcharge,(setter)BatteryDispatch_set_dispatch_manual_gridcharge, - PyDoc_STR("*sequence*: Periods 1-6 grid charging allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - dispatch_manual_percent_gridcharge\n"), + PyDoc_STR("*sequence*: Periods 1-6 grid charging allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3\n\nThe value of the following variables depends on ``dispatch_manual_gridcharge``:\n\n\t - dispatch_manual_percent_gridcharge\n"), NULL}, {"dispatch_manual_percent_discharge", (getter)BatteryDispatch_get_dispatch_manual_percent_discharge,(setter)BatteryDispatch_set_dispatch_manual_percent_discharge, - PyDoc_STR("*sequence*: Periods 1-6 discharge percent [%]\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - dispatch_manual_discharge\n"), + PyDoc_STR("*sequence*: Periods 1-6 discharge percent [%]\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3\n\nThe value of ``dispatch_manual_percent_discharge`` depends on the following variables:\n\n\t - dispatch_manual_discharge\n"), NULL}, {"dispatch_manual_percent_gridcharge", (getter)BatteryDispatch_get_dispatch_manual_percent_gridcharge,(setter)BatteryDispatch_set_dispatch_manual_percent_gridcharge, - PyDoc_STR("*sequence*: Periods 1-6 gridcharge percent [%]\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - dispatch_manual_gridcharge\n"), + PyDoc_STR("*sequence*: Periods 1-6 gridcharge percent [%]\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3\n\nThe value of ``dispatch_manual_percent_gridcharge`` depends on the following variables:\n\n\t - dispatch_manual_gridcharge\n"), NULL}, {"dispatch_manual_sched", (getter)BatteryDispatch_get_dispatch_manual_sched,(setter)BatteryDispatch_set_dispatch_manual_sched, - PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekday\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekday\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_sched_weekend", (getter)BatteryDispatch_get_dispatch_manual_sched_weekend,(setter)BatteryDispatch_set_dispatch_manual_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekend\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekend\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {NULL} /* Sentinel */ }; @@ -3177,11 +3177,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3211,10 +3211,10 @@ SystemCosts_set_om_replacement_cost_escal(VarGroupObject *self, PyObject *value, static PyGetSetDef SystemCosts_getset[] = { {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3329,11 +3329,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3466,11 +3466,11 @@ PriceSignal_export(VarGroupObject *self, PyObject *args) static PyMethodDef PriceSignal_methods[] = { {"assign", (PyCFunction)PriceSignal_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PriceSignal_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PriceSignal_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PriceSignal_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PriceSignal_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PriceSignal_vals = { var: val, ...}``")}, {"export", (PyCFunction)PriceSignal_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3654,6 +3654,18 @@ PriceSignal_set_mp_energy_market_revenue(VarGroupObject *self, PyObject *value, return PySAM_matrix_setter(value, SAM_Battery_PriceSignal_mp_energy_market_revenue_mset, self->data_ptr); } +static PyObject * +PriceSignal_get_ppa_escalation(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_PriceSignal_ppa_escalation_nget, self->data_ptr); +} + +static int +PriceSignal_set_ppa_escalation(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_PriceSignal_ppa_escalation_nset, self->data_ptr); +} + static PyObject * PriceSignal_get_ppa_multiplier_model(VarGroupObject *self, void *closure) { @@ -3680,55 +3692,58 @@ PriceSignal_set_ppa_price_input(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef PriceSignal_getset[] = { {"dispatch_factors_ts", (getter)PriceSignal_get_dispatch_factors_ts,(setter)PriceSignal_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor time step\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1&ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor time step\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1&ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)PriceSignal_get_dispatch_sched_weekday,(setter)PriceSignal_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)PriceSignal_get_dispatch_sched_weekend,(setter)PriceSignal_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"dispatch_tod_factors", (getter)PriceSignal_get_dispatch_tod_factors,(setter)PriceSignal_set_dispatch_tod_factors, - PyDoc_STR("*sequence*: TOD factors for periods 1-9\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence*: TOD factors for periods 1-9\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"forecast_price_signal_model", (getter)PriceSignal_get_forecast_price_signal_model,(setter)PriceSignal_set_forecast_price_signal_model, - PyDoc_STR("*float*: Forecast price signal model selected [0/1]\n\n*Options*: 0=PPA based,1=Merchant Plant\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Forecast price signal model selected [0/1]\n\n**Options:**\n0=PPA based,1=Merchant Plant\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mp_ancserv1_revenue", (getter)PriceSignal_get_mp_ancserv1_revenue,(setter)PriceSignal_set_mp_ancserv1_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv2_revenue", (getter)PriceSignal_get_mp_ancserv2_revenue,(setter)PriceSignal_set_mp_ancserv2_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv3_revenue", (getter)PriceSignal_get_mp_ancserv3_revenue,(setter)PriceSignal_set_mp_ancserv3_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv4_revenue", (getter)PriceSignal_get_mp_ancserv4_revenue,(setter)PriceSignal_set_mp_ancserv4_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv1", (getter)PriceSignal_get_mp_enable_ancserv1,(setter)PriceSignal_set_mp_enable_ancserv1, - PyDoc_STR("*float*: Enable ancillary services 1 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 1 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv2", (getter)PriceSignal_get_mp_enable_ancserv2,(setter)PriceSignal_set_mp_enable_ancserv2, - PyDoc_STR("*float*: Enable ancillary services 2 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 2 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv3", (getter)PriceSignal_get_mp_enable_ancserv3,(setter)PriceSignal_set_mp_enable_ancserv3, - PyDoc_STR("*float*: Enable ancillary services 3 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 3 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv4", (getter)PriceSignal_get_mp_enable_ancserv4,(setter)PriceSignal_set_mp_enable_ancserv4, - PyDoc_STR("*float*: Enable ancillary services 4 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 4 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_energy_market_revenue", (getter)PriceSignal_get_mp_enable_energy_market_revenue,(setter)PriceSignal_set_mp_enable_energy_market_revenue, - PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n*Options*: 0=false,1=true\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n**Options:**\n0=false,1=true\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_energy_market_revenue", (getter)PriceSignal_get_mp_energy_market_revenue,(setter)PriceSignal_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + NULL}, +{"ppa_escalation", (getter)PriceSignal_get_ppa_escalation,(setter)PriceSignal_set_ppa_escalation, + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {"ppa_multiplier_model", (getter)PriceSignal_get_ppa_multiplier_model,(setter)PriceSignal_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {"ppa_price_input", (getter)PriceSignal_get_ppa_price_input,(setter)PriceSignal_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA Price Input\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), + PyDoc_STR("*sequence*: PPA Price Input [$/kWh]\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3780,6 +3795,278 @@ static PyTypeObject PriceSignal_Type = { }; +/* + * Revenue Group + */ + +static PyTypeObject Revenue_Type; + +static PyObject * +Revenue_new(SAM_Battery data_ptr) +{ + PyObject* new_obj = Revenue_Type.tp_alloc(&Revenue_Type,0); + + VarGroupObject* Revenue_obj = (VarGroupObject*)new_obj; + + Revenue_obj->data_ptr = (SAM_table)data_ptr; + + return new_obj; +} + +/* Revenue methods */ + +static PyObject * +Revenue_assign(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_assign_from_dict(self->data_ptr, dict, "Battery", "Revenue")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Revenue_replace(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + PyTypeObject* tp = &Revenue_Type; + + if (!PySAM_replace_from_dict(tp, self->data_ptr, dict, "Battery", "Revenue")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Revenue_export(VarGroupObject *self, PyObject *args) +{ + PyTypeObject* tp = &Revenue_Type; + PyObject* dict = PySAM_export_to_dict((PyObject *) self, tp); + return dict; +} + +static PyMethodDef Revenue_methods[] = { + {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, + {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, + {"export", (PyCFunction)Revenue_export, METH_VARARGS, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +Revenue_get_mp_ancserv1_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Battery_Revenue_mp_ancserv1_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv1_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Battery_Revenue_mp_ancserv1_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv2_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Battery_Revenue_mp_ancserv2_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv2_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Battery_Revenue_mp_ancserv2_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv3_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Battery_Revenue_mp_ancserv3_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv3_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Battery_Revenue_mp_ancserv3_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv4_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Battery_Revenue_mp_ancserv4_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv4_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Battery_Revenue_mp_ancserv4_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv1_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Revenue_mp_enable_ancserv1_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv1_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_Revenue_mp_enable_ancserv1_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv2_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Revenue_mp_enable_ancserv2_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv2_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_Revenue_mp_enable_ancserv2_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv3_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Revenue_mp_enable_ancserv3_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv3_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_Revenue_mp_enable_ancserv3_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv4_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Revenue_mp_enable_ancserv4_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv4_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_Revenue_mp_enable_ancserv4_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_market_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Revenue_mp_enable_market_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_market_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Battery_Revenue_mp_enable_market_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_energy_market_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Battery_Revenue_mp_energy_market_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_energy_market_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Battery_Revenue_mp_energy_market_revenue_single_mset, self->data_ptr); +} + +static PyGetSetDef Revenue_getset[] = { +{"mp_ancserv1_revenue_single", (getter)Revenue_get_mp_ancserv1_revenue_single,(setter)Revenue_set_mp_ancserv1_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv1_percent_gen=1"), + NULL}, +{"mp_ancserv2_revenue_single", (getter)Revenue_get_mp_ancserv2_revenue_single,(setter)Revenue_set_mp_ancserv2_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv2_percent_gen=1"), + NULL}, +{"mp_ancserv3_revenue_single", (getter)Revenue_get_mp_ancserv3_revenue_single,(setter)Revenue_set_mp_ancserv3_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv3_percent_gen=1"), + NULL}, +{"mp_ancserv4_revenue_single", (getter)Revenue_get_mp_ancserv4_revenue_single,(setter)Revenue_set_mp_ancserv4_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv4_percent_gen=1"), + NULL}, +{"mp_enable_ancserv1_percent_gen", (getter)Revenue_get_mp_enable_ancserv1_percent_gen,(setter)Revenue_set_mp_enable_ancserv1_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 1 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv2_percent_gen", (getter)Revenue_get_mp_enable_ancserv2_percent_gen,(setter)Revenue_set_mp_enable_ancserv2_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 2 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv3_percent_gen", (getter)Revenue_get_mp_enable_ancserv3_percent_gen,(setter)Revenue_set_mp_enable_ancserv3_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 3 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv4_percent_gen", (getter)Revenue_get_mp_enable_ancserv4_percent_gen,(setter)Revenue_set_mp_enable_ancserv4_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 4 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_market_percent_gen", (getter)Revenue_get_mp_enable_market_percent_gen,(setter)Revenue_set_mp_enable_market_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for market revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_energy_market_revenue_single", (getter)Revenue_get_mp_energy_market_revenue_single,(setter)Revenue_set_mp_energy_market_revenue_single, + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 1 [Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_market_percent_gen=1"), + NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject Revenue_Type = { + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyVarObject_HEAD_INIT(NULL, 0) + "Battery.Revenue", /*tp_name*/ + sizeof(VarGroupObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + (getattrfunc)0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_reserved*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistofnset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + Revenue_methods, /*tp_methods*/ + 0, /*tp_members*/ + Revenue_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictofnset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + + /* * ElectricityRates Group */ @@ -3843,11 +4130,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4177,76 +4464,76 @@ ElectricityRates_set_ur_yearzero_usage_peaks(VarGroupObject *self, PyObject *val static PyGetSetDef ElectricityRates_getset[] = { {"rate_escalation", (getter)ElectricityRates_get_rate_escalation,(setter)ElectricityRates_set_rate_escalation, - PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_annual_min_charge", (getter)ElectricityRates_get_ur_annual_min_charge,(setter)ElectricityRates_set_ur_annual_min_charge, - PyDoc_STR("*float*: Annual minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Annual minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_billing_demand_lookback_percentages", (getter)ElectricityRates_get_ur_billing_demand_lookback_percentages,(setter)ElectricityRates_set_ur_billing_demand_lookback_percentages, - PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n*Info*: 12x2\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n**Info:**\n12x2\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_lookback_period", (getter)ElectricityRates_get_ur_billing_demand_lookback_period,(setter)ElectricityRates_set_ur_billing_demand_lookback_period, - PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_minimum", (getter)ElectricityRates_get_ur_billing_demand_minimum,(setter)ElectricityRates_set_ur_billing_demand_minimum, - PyDoc_STR("*float*: Minimum billing demand\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Minimum billing demand\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_billing_demand_periods", (getter)ElectricityRates_get_ur_dc_billing_demand_periods,(setter)ElectricityRates_set_ur_dc_billing_demand_periods, - PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_enable", (getter)ElectricityRates_get_ur_dc_enable,(setter)ElectricityRates_set_ur_dc_enable, - PyDoc_STR("*float*: Enable demand charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable demand charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_flat_mat", (getter)ElectricityRates_get_ur_dc_flat_mat,(setter)ElectricityRates_set_ur_dc_flat_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekday", (getter)ElectricityRates_get_ur_dc_sched_weekday,(setter)ElectricityRates_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sched_weekend", (getter)ElectricityRates_get_ur_dc_sched_weekend,(setter)ElectricityRates_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_tou_mat", (getter)ElectricityRates_get_ur_dc_tou_mat,(setter)ElectricityRates_set_ur_dc_tou_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_ec_sched_weekday", (getter)ElectricityRates_get_ur_ec_sched_weekday,(setter)ElectricityRates_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_sched_weekend", (getter)ElectricityRates_get_ur_ec_sched_weekend,(setter)ElectricityRates_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_tou_mat", (getter)ElectricityRates_get_ur_ec_tou_mat,(setter)ElectricityRates_set_ur_ec_tou_mat, PyDoc_STR("*sequence[sequence]*: Energy rates table"), NULL}, {"ur_en_ts_buy_rate", (getter)ElectricityRates_get_ur_en_ts_buy_rate,(setter)ElectricityRates_set_ur_en_ts_buy_rate, - PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_en_ts_sell_rate", (getter)ElectricityRates_get_ur_en_ts_sell_rate,(setter)ElectricityRates_set_ur_en_ts_sell_rate, - PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_enable_billing_demand", (getter)ElectricityRates_get_ur_enable_billing_demand,(setter)ElectricityRates_set_ur_enable_billing_demand, - PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n*Options*: 0=disable,1=enable\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n**Options:**\n0=disable,1=enable\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_metering_option", (getter)ElectricityRates_get_ur_metering_option,(setter)ElectricityRates_set_ur_metering_option, - PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n*Info*: Net metering monthly excess\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n**Info:**\nNet metering monthly excess\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)ElectricityRates_get_ur_monthly_fixed_charge,(setter)ElectricityRates_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_min_charge", (getter)ElectricityRates_get_ur_monthly_min_charge,(setter)ElectricityRates_set_ur_monthly_min_charge, - PyDoc_STR("*float*: Monthly minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_month", (getter)ElectricityRates_get_ur_nm_credit_month,(setter)ElectricityRates_set_ur_nm_credit_month, - PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=11\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=11\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_rollover", (getter)ElectricityRates_get_ur_nm_credit_rollover,(setter)ElectricityRates_set_ur_nm_credit_rollover, - PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)ElectricityRates_get_ur_nm_yearend_sell_rate,(setter)ElectricityRates_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_sell_eq_buy", (getter)ElectricityRates_get_ur_sell_eq_buy,(setter)ElectricityRates_set_ur_sell_eq_buy, - PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n*Info*: Optional override\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n**Info:**\nOptional override\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ts_buy_rate", (getter)ElectricityRates_get_ur_ts_buy_rate,(setter)ElectricityRates_set_ur_ts_buy_rate, PyDoc_STR("*sequence*: Time step buy rates [0/1]"), @@ -4255,7 +4542,7 @@ static PyGetSetDef ElectricityRates_getset[] = { PyDoc_STR("*sequence*: Time step sell rates [0/1]"), NULL}, {"ur_yearzero_usage_peaks", (getter)ElectricityRates_get_ur_yearzero_usage_peaks,(setter)ElectricityRates_set_ur_yearzero_usage_peaks, - PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n*Info*: 12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n**Info:**\n12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {NULL} /* Sentinel */ }; @@ -4370,11 +4657,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4416,10 +4703,10 @@ GridLimits_set_grid_interconnection_limit_kwac(VarGroupObject *self, PyObject *v static PyGetSetDef GridLimits_getset[] = { {"enable_interconnection_limit", (getter)GridLimits_get_enable_interconnection_limit,(setter)GridLimits_set_enable_interconnection_limit, - PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n*Info*: Enable a grid interconnection limit"), + PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n**Info:**\nEnable a grid interconnection limit"), NULL}, {"grid_curtailment", (getter)GridLimits_get_grid_curtailment,(setter)GridLimits_set_grid_curtailment, - PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n*Required*: False\n\n*Changes to this variable may require updating the values of the following*: \n\t - batt_room_temperature_celsius\n"), + PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required.\n\nThe value of the following variables depends on ``grid_curtailment``:\n\n\t - batt_room_temperature_celsius\n"), NULL}, {"grid_interconnection_limit_kwac", (getter)GridLimits_get_grid_interconnection_limit_kwac,(setter)GridLimits_set_grid_interconnection_limit_kwac, PyDoc_STR("*float*: Grid interconnection limit [kWac]"), @@ -4537,11 +4824,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4911,6 +5198,12 @@ Outputs_get_batt_voltage_cell(VarGroupObject *self, void *closure) return PySAM_array_getter(SAM_Battery_Outputs_batt_voltage_cell_aget, self->data_ptr); } +static PyObject * +Outputs_get_capacity_factor_sales(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Battery_Outputs_capacity_factor_sales_nget, self->data_ptr); +} + static PyObject * Outputs_get_cdf_of_surviving(VarGroupObject *self, void *closure) { @@ -5305,6 +5598,9 @@ static PyGetSetDef Outputs_getset[] = { {"batt_voltage_cell", (getter)Outputs_get_batt_voltage_cell,(setter)0, PyDoc_STR("*sequence*: Battery cell voltage [V]"), NULL}, +{"capacity_factor_sales", (getter)Outputs_get_capacity_factor_sales,(setter)0, + PyDoc_STR("*float*: Capacity factor based on AC electricity to grid [%]"), + NULL}, {"cdf_of_surviving", (getter)Outputs_get_cdf_of_surviving,(setter)0, PyDoc_STR("*sequence*: Hours of autonomy during grid outage cumulative probabilities"), NULL}, @@ -5336,7 +5632,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Electricity loss due to curtailment, interconnection, or outage [kW]"), NULL}, {"market_sell_rate_series_yr1", (getter)Outputs_get_market_sell_rate_series_yr1,(setter)0, - PyDoc_STR("*sequence*: Power price for battery dispatch (year 1) [$/MWh]"), + PyDoc_STR("*sequence*: Power price for battery dispatch [$/MWh]"), NULL}, {"monthly_batt_to_grid", (getter)Outputs_get_monthly_batt_to_grid,(setter)0, PyDoc_STR("*sequence*: Energy to grid from battery [kWh]"), @@ -5521,6 +5817,10 @@ newBatteryObject(void* data_ptr) PyDict_SetItemString(attr_dict, "PriceSignal", PriceSignal_obj); Py_DECREF(PriceSignal_obj); + PyObject* Revenue_obj = Revenue_new(self->data_ptr); + PyDict_SetItemString(attr_dict, "Revenue", Revenue_obj); + Py_DECREF(Revenue_obj); + PyObject* ElectricityRates_obj = ElectricityRates_new(self->data_ptr); PyDict_SetItemString(attr_dict, "ElectricityRates", ElectricityRates_obj); Py_DECREF(ElectricityRates_obj); @@ -5787,12 +6087,11 @@ static PyMethodDef BatteryModule_methods[] = { {"new", Battery_new, METH_VARARGS, PyDoc_STR("new() -> Battery")}, {"default", Battery_default, METH_VARARGS, - PyDoc_STR("default(config) -> Battery\n\nUse default attributes\n" - "`config` options:\n\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"\n- \"GenericBatteryAllEquityPartnershipFlip\"\n- \"GenericBatteryCommercial\"\n- \"GenericBatteryHostDeveloper\"\n- \"GenericBatteryLeveragedPartnershipFlip\"\n- \"GenericBatteryMerchantPlant\"\n- \"GenericBatteryResidential\"\n- \"GenericBatterySaleLeaseback\"\n- \"GenericBatterySingleOwner\"\n- \"GenericBatteryThirdParty\"\n- \"StandaloneBatteryAllEquityPartnershipFlip\"\n- \"StandaloneBatteryCommercial\"\n- \"StandaloneBatteryHostDeveloper\"\n- \"StandaloneBatteryLeveragedPartnershipFlip\"\n- \"StandaloneBatteryMerchantPlant\"\n- \"StandaloneBatteryResidential\"\n- \"StandaloneBatterySaleLeaseback\"\n- \"StandaloneBatterySingleOwner\"\n- \"StandaloneBatteryThirdParty\"")}, + PyDoc_STR("default(config) -> Battery\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n - *\"GenericBatteryAllEquityPartnershipFlip\"*\n\n - *\"GenericBatteryCommercial\"*\n\n - *\"GenericBatteryHostDeveloper\"*\n\n - *\"GenericBatteryLeveragedPartnershipFlip\"*\n\n - *\"GenericBatteryMerchantPlant\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericBatterySaleLeaseback\"*\n\n - *\"GenericBatterySingleOwner\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"StandaloneBatteryAllEquityPartnershipFlip\"*\n\n - *\"StandaloneBatteryCommercial\"*\n\n - *\"StandaloneBatteryHostDeveloper\"*\n\n - *\"StandaloneBatteryLeveragedPartnershipFlip\"*\n\n - *\"StandaloneBatteryMerchantPlant\"*\n\n - *\"StandaloneBatteryResidential\"*\n\n - *\"StandaloneBatterySaleLeaseback\"*\n\n - *\"StandaloneBatterySingleOwner\"*\n\n - *\"StandaloneBatteryThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Battery_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Battery\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Battery\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Battery_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Battery\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Battery\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; @@ -5895,6 +6194,13 @@ BatteryModule_exec(PyObject *m) (PyObject*)&PriceSignal_Type); Py_DECREF(&PriceSignal_Type); + /// Add the Revenue type object to Battery_Type + if (PyType_Ready(&Revenue_Type) < 0) { goto fail; } + PyDict_SetItemString(Battery_Type.tp_dict, + "Revenue", + (PyObject*)&Revenue_Type); + Py_DECREF(&Revenue_Type); + /// Add the ElectricityRates type object to Battery_Type if (PyType_Ready(&ElectricityRates_Type) < 0) { goto fail; } PyDict_SetItemString(Battery_Type.tp_dict, diff --git a/modules/BatteryStateful.c b/modules/BatteryStateful.c index d882ad44..9ee5e3c5 100644 --- a/modules/BatteryStateful.c +++ b/modules/BatteryStateful.c @@ -69,11 +69,11 @@ Controls_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controls_methods[] = { {"assign", (PyCFunction)Controls_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controls_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controls_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controls_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controls_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controls_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controls_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Controls_set_input_power(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Controls_getset[] = { {"control_mode", (getter)Controls_get_control_mode,(setter)Controls_set_control_mode, - PyDoc_STR("*float*: Control using current (0) or power (1) [0/1]\n\n*Required*: True"), + PyDoc_STR("*float*: Control using current (0) or power (1) [0/1]\n\n**Required:**\nTrue"), NULL}, {"dt_hr", (getter)Controls_get_dt_hr,(setter)Controls_set_dt_hr, - PyDoc_STR("*float*: Time step in hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time step in hours [hr]\n\n**Required:**\nTrue"), NULL}, {"input_current", (getter)Controls_get_input_current,(setter)Controls_set_input_current, - PyDoc_STR("*float*: Current at which to run battery [A]\n\n*Required*: True if control_mode=0"), + PyDoc_STR("*float*: Current at which to run battery [A]\n\n**Required:**\nRequired if control_mode=0"), NULL}, {"input_power", (getter)Controls_get_input_power,(setter)Controls_set_input_power, - PyDoc_STR("*float*: Power at which to run battery [kW]\n\n*Required*: True if control_mode=1"), + PyDoc_STR("*float*: Power at which to run battery [kW]\n\n**Required:**\nRequired if control_mode=1"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ ParamsCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef ParamsCell_methods[] = { {"assign", (PyCFunction)ParamsCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ParamsCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ParamsCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ParamsCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ParamsCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ParamsCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)ParamsCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -609,91 +609,91 @@ ParamsCell_set_voltage_matrix(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef ParamsCell_getset[] = { {"C_rate", (getter)ParamsCell_get_C_rate,(setter)ParamsCell_set_C_rate, - PyDoc_STR("*float*: Rate at which voltage vs. capacity curve input\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Rate at which voltage vs. capacity curve input\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Qexp", (getter)ParamsCell_get_Qexp,(setter)ParamsCell_set_Qexp, - PyDoc_STR("*float*: Cell capacity at end of exponential zone [Ah]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Cell capacity at end of exponential zone [Ah]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Qfull", (getter)ParamsCell_get_Qfull,(setter)ParamsCell_set_Qfull, - PyDoc_STR("*float*: Fully charged cell capacity [Ah]\n\n*Required*: True"), + PyDoc_STR("*float*: Fully charged cell capacity [Ah]\n\n**Required:**\nTrue"), NULL}, {"Qfull_flow", (getter)ParamsCell_get_Qfull_flow,(setter)ParamsCell_set_Qfull_flow, - PyDoc_STR("*float*: Fully charged flow battery capacity [Ah]\n\n*Required*: True if voltage_choice=0&chem=3"), + PyDoc_STR("*float*: Fully charged flow battery capacity [Ah]\n\n**Required:**\nRequired if voltage_choice=0&chem=3"), NULL}, {"Qnom", (getter)ParamsCell_get_Qnom,(setter)ParamsCell_set_Qnom, - PyDoc_STR("*float*: Cell capacity at end of nominal zone [Ah]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Cell capacity at end of nominal zone [Ah]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Vcut", (getter)ParamsCell_get_Vcut,(setter)ParamsCell_set_Vcut, - PyDoc_STR("*float*: Cell cutoff voltage [V]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Cell cutoff voltage [V]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Vexp", (getter)ParamsCell_get_Vexp,(setter)ParamsCell_set_Vexp, - PyDoc_STR("*float*: Cell voltage at end of exponential zone [V]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Cell voltage at end of exponential zone [V]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Vfull", (getter)ParamsCell_get_Vfull,(setter)ParamsCell_set_Vfull, - PyDoc_STR("*float*: Fully charged cell voltage [V]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Fully charged cell voltage [V]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Vnom", (getter)ParamsCell_get_Vnom,(setter)ParamsCell_set_Vnom, - PyDoc_STR("*float*: Cell voltage at end of nominal zone [V]\n\n*Required*: True if voltage_choice=0&chem~2"), + PyDoc_STR("*float*: Cell voltage at end of nominal zone [V]\n\n**Required:**\nRequired if voltage_choice=0&chem~2"), NULL}, {"Vnom_default", (getter)ParamsCell_get_Vnom_default,(setter)ParamsCell_set_Vnom_default, - PyDoc_STR("*float*: Default nominal cell voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Default nominal cell voltage [V]\n\n**Required:**\nTrue"), NULL}, {"calendar_a", (getter)ParamsCell_get_calendar_a,(setter)ParamsCell_set_calendar_a, - PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n*Required*: True if life_model=0&calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n**Required:**\nRequired if life_model=0&calendar_choice=1"), NULL}, {"calendar_b", (getter)ParamsCell_get_calendar_b,(setter)ParamsCell_set_calendar_b, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if life_model=0&calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if life_model=0&calendar_choice=1"), NULL}, {"calendar_c", (getter)ParamsCell_get_calendar_c,(setter)ParamsCell_set_calendar_c, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if life_model=0&calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if life_model=0&calendar_choice=1"), NULL}, {"calendar_choice", (getter)ParamsCell_get_calendar_choice,(setter)ParamsCell_set_calendar_choice, - PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n*Options*: 0=None,1=LithiumIonModel,2=InputLossTable\n\n*Required*: True if life_model=0"), + PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n**Options:**\n0=None,1=LithiumIonModel,2=InputLossTable\n\n**Required:**\nRequired if life_model=0"), NULL}, {"calendar_matrix", (getter)ParamsCell_get_calendar_matrix,(setter)ParamsCell_set_calendar_matrix, - PyDoc_STR("*sequence[sequence]*: Table with Day # and Capacity % columns [[[#, %]]]\n\n*Required*: True if life_model=0&calendar_choice=2"), + PyDoc_STR("*sequence[sequence]*: Table with Day # and Capacity % columns [[[#, %]]]\n\n**Required:**\nRequired if life_model=0&calendar_choice=2"), NULL}, {"calendar_q0", (getter)ParamsCell_get_calendar_q0,(setter)ParamsCell_set_calendar_q0, - PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n*Required*: True if life_model=0&calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n**Required:**\nRequired if life_model=0&calendar_choice=1"), NULL}, {"chem", (getter)ParamsCell_get_chem,(setter)ParamsCell_set_chem, - PyDoc_STR("*float*: Lead Acid (0), Li Ion (1), Vanadium Redox (2), Iron Flow (3) [0/1/2/3]\n\n*Required*: True"), + PyDoc_STR("*float*: Lead Acid (0), Li Ion (1), Vanadium Redox (2), Iron Flow (3) [0/1/2/3]\n\n**Required:**\nTrue"), NULL}, {"cycling_matrix", (getter)ParamsCell_get_cycling_matrix,(setter)ParamsCell_set_cycling_matrix, - PyDoc_STR("*sequence[sequence]*: Table with DOD %, Cycle #, and Capacity % columns [[[%, #, %]]]\n\n*Required*: True if life_model=0"), + PyDoc_STR("*sequence[sequence]*: Table with DOD %, Cycle #, and Capacity % columns [[[%, #, %]]]\n\n**Required:**\nRequired if life_model=0"), NULL}, {"initial_SOC", (getter)ParamsCell_get_initial_SOC,(setter)ParamsCell_set_initial_SOC, - PyDoc_STR("*float*: Initial state-of-charge [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial state-of-charge [%]\n\n**Required:**\nTrue"), NULL}, {"leadacid_q10", (getter)ParamsCell_get_leadacid_q10,(setter)ParamsCell_set_leadacid_q10, - PyDoc_STR("*float*: Capacity at 10-hour discharge rate [Ah]\n\n*Required*: True if chem=0"), + PyDoc_STR("*float*: Capacity at 10-hour discharge rate [Ah]\n\n**Required:**\nRequired if chem=0"), NULL}, {"leadacid_q20", (getter)ParamsCell_get_leadacid_q20,(setter)ParamsCell_set_leadacid_q20, - PyDoc_STR("*float*: Capacity at 20-hour discharge rate [Ah]\n\n*Required*: True if chem=0"), + PyDoc_STR("*float*: Capacity at 20-hour discharge rate [Ah]\n\n**Required:**\nRequired if chem=0"), NULL}, {"leadacid_qn", (getter)ParamsCell_get_leadacid_qn,(setter)ParamsCell_set_leadacid_qn, - PyDoc_STR("*float*: Capacity at discharge rate for n-hour rate [Ah]\n\n*Required*: True if chem=0"), + PyDoc_STR("*float*: Capacity at discharge rate for n-hour rate [Ah]\n\n**Required:**\nRequired if chem=0"), NULL}, {"leadacid_tn", (getter)ParamsCell_get_leadacid_tn,(setter)ParamsCell_set_leadacid_tn, - PyDoc_STR("*float*: Hours to discharge for qn rate [h]\n\n*Required*: True if chem=0"), + PyDoc_STR("*float*: Hours to discharge for qn rate [h]\n\n**Required:**\nRequired if chem=0"), NULL}, {"life_model", (getter)ParamsCell_get_life_model,(setter)ParamsCell_set_life_model, - PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n*Options*: 0=calendar/cycle,1=NMC,2=LMO/LTO\n\n*Required*: True"), + PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n**Options:**\n0=calendar/cycle,1=NMC,2=LMO/LTO\n\n**Required:**\nTrue"), NULL}, {"maximum_SOC", (getter)ParamsCell_get_maximum_SOC,(setter)ParamsCell_set_maximum_SOC, - PyDoc_STR("*float*: Maximum allowed state-of-charge [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum allowed state-of-charge [%]\n\n**Required:**\nTrue"), NULL}, {"minimum_SOC", (getter)ParamsCell_get_minimum_SOC,(setter)ParamsCell_set_minimum_SOC, - PyDoc_STR("*float*: Minimum allowed state-of-charge [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowed state-of-charge [%]\n\n**Required:**\nTrue"), NULL}, {"resistance", (getter)ParamsCell_get_resistance,(setter)ParamsCell_set_resistance, - PyDoc_STR("*float*: Internal resistance [Ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Internal resistance [Ohm]\n\n**Required:**\nTrue"), NULL}, {"voltage_choice", (getter)ParamsCell_get_voltage_choice,(setter)ParamsCell_set_voltage_choice, - PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n*Options*: 0=Model,1=Table\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n**Options:**\n0=Model,1=Table\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"voltage_matrix", (getter)ParamsCell_get_voltage_matrix,(setter)ParamsCell_set_voltage_matrix, - PyDoc_STR("*sequence[sequence]*: Table with depth-of-discharge % and Voltage as columns [[[%, V]]]\n\n*Required*: True if voltage_choice=1"), + PyDoc_STR("*sequence[sequence]*: Table with depth-of-discharge % and Voltage as columns [[[%, V]]]\n\n**Required:**\nRequired if voltage_choice=1"), NULL}, {NULL} /* Sentinel */ }; @@ -808,11 +808,11 @@ ParamsPack_export(VarGroupObject *self, PyObject *args) static PyMethodDef ParamsPack_methods[] = { {"assign", (PyCFunction)ParamsPack_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ParamsPack_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ParamsPack_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ParamsPack_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ParamsPack_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ParamsPack_vals = { var: val, ...}``")}, {"export", (PyCFunction)ParamsPack_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1010,52 +1010,52 @@ ParamsPack_set_surface_area(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef ParamsPack_getset[] = { {"Cp", (getter)ParamsPack_get_Cp,(setter)ParamsPack_set_Cp, - PyDoc_STR("*float*: Battery specific heat capacity [J/KgK]\n\n*Required*: True"), + PyDoc_STR("*float*: Battery specific heat capacity [J/KgK]\n\n**Required:**\nTrue"), NULL}, {"T_room_init", (getter)ParamsPack_get_T_room_init,(setter)ParamsPack_set_T_room_init, - PyDoc_STR("*float*: Temperature of storage room [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temperature of storage room [C]\n\n**Required:**\nTrue"), NULL}, {"cap_vs_temp", (getter)ParamsPack_get_cap_vs_temp,(setter)ParamsPack_set_cap_vs_temp, - PyDoc_STR("*sequence[sequence]*: Table with Temperature and Capacity % as columns [[[C,%]]]\n\n*Required*: True if life_model=0"), + PyDoc_STR("*sequence[sequence]*: Table with Temperature and Capacity % as columns [[[C,%]]]\n\n**Required:**\nRequired if life_model=0"), NULL}, {"h", (getter)ParamsPack_get_h,(setter)ParamsPack_set_h, - PyDoc_STR("*float*: Heat transfer between battery and environment [W/m2K]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat transfer between battery and environment [W/m2K]\n\n**Required:**\nTrue"), NULL}, {"loss_choice", (getter)ParamsPack_get_loss_choice,(setter)ParamsPack_set_loss_choice, - PyDoc_STR("*float*: Loss power input option [0/1]\n\n*Options*: 0=Monthly,1=TimeSeries\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loss power input option [0/1]\n\n**Options:**\n0=Monthly,1=TimeSeries\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mass", (getter)ParamsPack_get_mass,(setter)ParamsPack_set_mass, - PyDoc_STR("*float*: Battery mass [kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Battery mass [kg]\n\n**Required:**\nTrue"), NULL}, {"monthly_charge_loss", (getter)ParamsPack_get_monthly_charge_loss,(setter)ParamsPack_set_monthly_charge_loss, - PyDoc_STR("*sequence*: Battery system losses when charging [[kW]]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when charging [[kW]]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"monthly_discharge_loss", (getter)ParamsPack_get_monthly_discharge_loss,(setter)ParamsPack_set_monthly_discharge_loss, - PyDoc_STR("*sequence*: Battery system losses when discharging [[kW]]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when discharging [[kW]]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"monthly_idle_loss", (getter)ParamsPack_get_monthly_idle_loss,(setter)ParamsPack_set_monthly_idle_loss, - PyDoc_STR("*sequence*: Battery system losses when idle [[kW]]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when idle [[kW]]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"nominal_energy", (getter)ParamsPack_get_nominal_energy,(setter)ParamsPack_set_nominal_energy, - PyDoc_STR("*float*: Nominal installed energy [kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Nominal installed energy [kWh]\n\n**Required:**\nTrue"), NULL}, {"nominal_voltage", (getter)ParamsPack_get_nominal_voltage,(setter)ParamsPack_set_nominal_voltage, - PyDoc_STR("*float*: Nominal DC voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Nominal DC voltage [V]\n\n**Required:**\nTrue"), NULL}, {"replacement_capacity", (getter)ParamsPack_get_replacement_capacity,(setter)ParamsPack_set_replacement_capacity, - PyDoc_STR("*float*: Capacity degradation at which to replace battery [%]\n\n*Required*: True if replacement_option=1"), + PyDoc_STR("*float*: Capacity degradation at which to replace battery [%]\n\n**Required:**\nRequired if replacement_option=1"), NULL}, {"replacement_option", (getter)ParamsPack_get_replacement_option,(setter)ParamsPack_set_replacement_option, - PyDoc_STR("*float*: Replacements: none (0), by capacity (1), or schedule (2) [0=none,1=capacity limit,2=yearly schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Replacements: none (0), by capacity (1), or schedule (2) [0=none,1=capacity limit,2=yearly schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"replacement_schedule_percent", (getter)ParamsPack_get_replacement_schedule_percent,(setter)ParamsPack_set_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [[%/year]]\n\n*Options*: length <= analysis_period\n\n*Required*: True if replacement_option=2"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [[%/year]]\n\n**Options:**\nlength <= analysis_period\n\n**Required:**\nRequired if replacement_option=2"), NULL}, {"schedule_loss", (getter)ParamsPack_get_schedule_loss,(setter)ParamsPack_set_schedule_loss, - PyDoc_STR("*sequence*: Battery system losses at each timestep [[kW]]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses at each timestep [[kW]]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"surface_area", (getter)ParamsPack_get_surface_area,(setter)ParamsPack_set_surface_area, - PyDoc_STR("*float*: Battery surface area [m^2]\n\n*Required*: True"), + PyDoc_STR("*float*: Battery surface area [m^2]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1170,11 +1170,11 @@ StatePack_export(VarGroupObject *self, PyObject *args) static PyMethodDef StatePack_methods[] = { {"assign", (PyCFunction)StatePack_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``StatePack_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``StatePack_vals = { var: val, ...}``")}, {"replace", (PyCFunction)StatePack_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``StatePack_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``StatePack_vals = { var: val, ...}``")}, {"export", (PyCFunction)StatePack_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1547,11 +1547,11 @@ StateCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef StateCell_methods[] = { {"assign", (PyCFunction)StateCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``StateCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``StateCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)StateCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``StateCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``StateCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)StateCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2169,16 +2169,16 @@ StateCell_set_temp_dt(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef StateCell_getset[] = { {"DOD_max", (getter)StateCell_get_DOD_max,(setter)StateCell_set_DOD_max, - PyDoc_STR("*float*: Max DOD of battery for current day [%]\n\n*Info*: Cycles for Life Model"), + PyDoc_STR("*float*: Max DOD of battery for current day [%]\n\n**Info:**\nCycles for Life Model"), NULL}, {"DOD_min", (getter)StateCell_get_DOD_min,(setter)StateCell_set_DOD_min, - PyDoc_STR("*float*: Min DOD of battery for current day [%]\n\n*Info*: Cycles for Life Model"), + PyDoc_STR("*float*: Min DOD of battery for current day [%]\n\n**Info:**\nCycles for Life Model"), NULL}, {"EFC", (getter)StateCell_get_EFC,(setter)StateCell_set_EFC, - PyDoc_STR("*float*: Total Equivalent Full Cycles [1]\n\n*Info*: LMO/LTO Life Model"), + PyDoc_STR("*float*: Total Equivalent Full Cycles [1]\n\n**Info:**\nLMO/LTO Life Model"), NULL}, {"EFC_dt", (getter)StateCell_get_EFC_dt,(setter)StateCell_set_EFC_dt, - PyDoc_STR("*float*: Equivalent Full Cycles cumulated for current day [1]\n\n*Info*: LMO/LTO Life Model"), + PyDoc_STR("*float*: Equivalent Full Cycles cumulated for current day [1]\n\n**Info:**\nLMO/LTO Life Model"), NULL}, {"I_loss", (getter)StateCell_get_I_loss,(setter)StateCell_set_I_loss, PyDoc_STR("*float*: Lifetime and thermal losses [A]"), @@ -2193,19 +2193,19 @@ static PyGetSetDef StateCell_getset[] = { PyDoc_STR("*float*: Average cycle cycle_range [%]"), NULL}, {"b1_dt", (getter)StateCell_get_b1_dt,(setter)StateCell_set_b1_dt, - PyDoc_STR("*float*: b1 coefficient cumulated for current day [day^-0.5]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: b1 coefficient cumulated for current day [day^-0.5]\n\n**Info:**\nNMC Life Model"), NULL}, {"b2_dt", (getter)StateCell_get_b2_dt,(setter)StateCell_set_b2_dt, - PyDoc_STR("*float*: b2 coefficient cumulated for current day [1/cycle]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: b2 coefficient cumulated for current day [1/cycle]\n\n**Info:**\nNMC Life Model"), NULL}, {"b3_dt", (getter)StateCell_get_b3_dt,(setter)StateCell_set_b3_dt, - PyDoc_STR("*float*: b3 coefficient cumulated for current day [1]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: b3 coefficient cumulated for current day [1]\n\n**Info:**\nNMC Life Model"), NULL}, {"c0_dt", (getter)StateCell_get_c0_dt,(setter)StateCell_set_c0_dt, - PyDoc_STR("*float*: c0 coefficient cumulated for current day [Ah]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: c0 coefficient cumulated for current day [Ah]\n\n**Info:**\nNMC Life Model"), NULL}, {"c2_dt", (getter)StateCell_get_c2_dt,(setter)StateCell_set_c2_dt, - PyDoc_STR("*float*: c2 coefficient cumulated for current day [1/cycle]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: c2 coefficient cumulated for current day [1/cycle]\n\n**Info:**\nNMC Life Model"), NULL}, {"cell_current", (getter)StateCell_get_cell_current,(setter)StateCell_set_cell_current, PyDoc_STR("*float*: Cell current [A]"), @@ -2220,16 +2220,16 @@ static PyGetSetDef StateCell_getset[] = { PyDoc_STR("*float*: Charge (0), Idle (1), Discharge (2) [0/1/2]"), NULL}, {"cum_dt", (getter)StateCell_get_cum_dt,(setter)StateCell_set_cum_dt, - PyDoc_STR("*float*: Elapsed time for current day [day]\n\n*Info*: Cycles for Life Model"), + PyDoc_STR("*float*: Elapsed time for current day [day]\n\n**Info:**\nCycles for Life Model"), NULL}, {"cycle_DOD", (getter)StateCell_get_cycle_DOD,(setter)StateCell_set_cycle_DOD, PyDoc_STR("*float*: cycle_DOD of last cycle [%]"), NULL}, {"cycle_DOD_max", (getter)StateCell_get_cycle_DOD_max,(setter)StateCell_set_cycle_DOD_max, - PyDoc_STR("*sequence*: Max DODs of cycles concluded in current day [%]\n\n*Info*: Cycles for Life Model"), + PyDoc_STR("*sequence*: Max DODs of cycles concluded in current day [%]\n\n**Info:**\nCycles for Life Model"), NULL}, {"cycle_counts", (getter)StateCell_get_cycle_counts,(setter)StateCell_set_cycle_counts, - PyDoc_STR("*sequence[sequence]*: Counts of cycles by DOD [[%, cycles]]\n\n*Options*: If life_model=0, counts all cycles in simulation; else, cycles per day"), + PyDoc_STR("*sequence[sequence]*: Counts of cycles by DOD [[%, cycles]]\n\n**Options:**\nIf life_model=0, counts all cycles in simulation; else, cycles per day"), NULL}, {"cycle_range", (getter)StateCell_get_cycle_range,(setter)StateCell_set_cycle_range, PyDoc_STR("*float*: Range of last cycle [%]"), @@ -2238,25 +2238,25 @@ static PyGetSetDef StateCell_getset[] = { PyDoc_STR("*float*: Day age of battery [day]"), NULL}, {"dq_relative_cal", (getter)StateCell_get_dq_relative_cal,(setter)StateCell_set_dq_relative_cal, - PyDoc_STR("*float*: Cumulative capacity change from calendar degradation [%]\n\n*Info*: LMO/LTO Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from calendar degradation [%]\n\n**Info:**\nLMO/LTO Life Model"), NULL}, {"dq_relative_calendar_old", (getter)StateCell_get_dq_relative_calendar_old,(setter)StateCell_set_dq_relative_calendar_old, PyDoc_STR("*float*: Change in capacity of last time step [%]"), NULL}, {"dq_relative_cyc", (getter)StateCell_get_dq_relative_cyc,(setter)StateCell_set_dq_relative_cyc, - PyDoc_STR("*float*: Cumulative capacity change from cycling degradation [%]\n\n*Info*: LMO/LTO Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from cycling degradation [%]\n\n**Info:**\nLMO/LTO Life Model"), NULL}, {"dq_relative_li1", (getter)StateCell_get_dq_relative_li1,(setter)StateCell_set_dq_relative_li1, - PyDoc_STR("*float*: Cumulative capacity change from time-dependent Li loss [1]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from time-dependent Li loss [1]\n\n**Info:**\nNMC Life Model"), NULL}, {"dq_relative_li2", (getter)StateCell_get_dq_relative_li2,(setter)StateCell_set_dq_relative_li2, - PyDoc_STR("*float*: Cumulative capacity change from cycle-dependent Li loss [1]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from cycle-dependent Li loss [1]\n\n**Info:**\nNMC Life Model"), NULL}, {"dq_relative_li3", (getter)StateCell_get_dq_relative_li3,(setter)StateCell_set_dq_relative_li3, - PyDoc_STR("*float*: Cumulative capacity change from BOL Li loss [1]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from BOL Li loss [1]\n\n**Info:**\nNMC Life Model"), NULL}, {"dq_relative_neg", (getter)StateCell_get_dq_relative_neg,(setter)StateCell_set_dq_relative_neg, - PyDoc_STR("*float*: Cumulative capacity change from negative electrode [1]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Cumulative capacity change from negative electrode [1]\n\n**Info:**\nNMC Life Model"), NULL}, {"n_cycles", (getter)StateCell_get_n_cycles,(setter)StateCell_set_n_cycles, PyDoc_STR("*float*: Number of cycles"), @@ -2286,10 +2286,10 @@ static PyGetSetDef StateCell_getset[] = { PyDoc_STR("*float*: Relative capacity due to cycling effects [%]"), NULL}, {"q_relative_li", (getter)StateCell_get_q_relative_li,(setter)StateCell_set_q_relative_li, - PyDoc_STR("*float*: Relative capacity due to loss of lithium inventory [%]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Relative capacity due to loss of lithium inventory [%]\n\n**Info:**\nNMC Life Model"), NULL}, {"q_relative_neg", (getter)StateCell_get_q_relative_neg,(setter)StateCell_set_q_relative_neg, - PyDoc_STR("*float*: Relative capacity due to loss of anode material [%]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Relative capacity due to loss of anode material [%]\n\n**Info:**\nNMC Life Model"), NULL}, {"q_relative_thermal", (getter)StateCell_get_q_relative_thermal,(setter)StateCell_set_q_relative_thermal, PyDoc_STR("*float*: Relative capacity due to thermal effects [%]"), @@ -2316,10 +2316,10 @@ static PyGetSetDef StateCell_getset[] = { PyDoc_STR("*sequence*: Rainflow peaks of cycle_DOD [[%]]"), NULL}, {"temp_avg", (getter)StateCell_get_temp_avg,(setter)StateCell_set_temp_avg, - PyDoc_STR("*float*: Average temperature for current day [K]\n\n*Info*: LMO/LTO Life Model"), + PyDoc_STR("*float*: Average temperature for current day [K]\n\n**Info:**\nLMO/LTO Life Model"), NULL}, {"temp_dt", (getter)StateCell_get_temp_dt,(setter)StateCell_set_temp_dt, - PyDoc_STR("*float*: Temperature cumulated for current day [K]\n\n*Info*: NMC Life Model"), + PyDoc_STR("*float*: Temperature cumulated for current day [K]\n\n**Info:**\nNMC Life Model"), NULL}, {NULL} /* Sentinel */ }; @@ -2680,12 +2680,11 @@ static PyMethodDef BatteryStatefulModule_methods[] = { {"new", BatteryStateful_new, METH_VARARGS, PyDoc_STR("new() -> BatteryStateful")}, {"default", BatteryStateful_default, METH_VARARGS, - PyDoc_STR("default(config) -> BatteryStateful\n\nUse default attributes\n" - "`config` options:\n\n- \"LFPGraphite\"\n- \"LMOLTO\"\n- \"LeadAcid\"\n- \"NMCGraphite\"")}, + PyDoc_STR("default(config) -> BatteryStateful\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"LFPGraphite\"*\n\n - *\"LMOLTO\"*\n\n - *\"LeadAcid\"*\n\n - *\"NMCGraphite\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", BatteryStateful_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> BatteryStateful\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> BatteryStateful\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", BatteryStateful_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> BatteryStateful\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> BatteryStateful\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Battwatts.c b/modules/Battwatts.c index 06a10e80..adc9299e 100644 --- a/modules/Battwatts.c +++ b/modules/Battwatts.c @@ -69,11 +69,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Info*: The number of years in the simulation\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Info:**\nThe number of years in the simulation\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Enable lifetime simulation [0/1]\n\n*Options*: 0=SingleYearRepeated,1=RunEveryYear\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable lifetime simulation [0/1]\n\n**Options:**\n0=SingleYearRepeated,1=RunEveryYear\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ Battery_export(VarGroupObject *self, PyObject *args) static PyMethodDef Battery_methods[] = { {"assign", (PyCFunction)Battery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Battery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Battery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Battery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Battery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Battery_vals = { var: val, ...}``")}, {"export", (PyCFunction)Battery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -378,25 +378,25 @@ static PyGetSetDef Battery_getset[] = { PyDoc_STR("*sequence*: AC inverter power [W]"), NULL}, {"batt_custom_dispatch", (getter)Battery_get_batt_custom_dispatch,(setter)Battery_set_batt_custom_dispatch, - PyDoc_STR("*sequence*: Battery Dispatch [kW]\n\n*Required*: True if batt_simple_dispatch=2"), + PyDoc_STR("*sequence*: Battery Dispatch [kW]\n\n**Required:**\nRequired if batt_simple_dispatch=2"), NULL}, {"batt_simple_chemistry", (getter)Battery_get_batt_simple_chemistry,(setter)Battery_set_batt_simple_chemistry, - PyDoc_STR("*float*: Battery Chemistry [0=LeadAcid,1=Li-ion/2]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery Chemistry [0=LeadAcid,1=Li-ion/2]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_simple_dispatch", (getter)Battery_get_batt_simple_dispatch,(setter)Battery_set_batt_simple_dispatch, - PyDoc_STR("*float*: Battery Dispatch [0=PeakShavingLookAhead,1=PeakShavingLookBehind,2=Custom]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery Dispatch [0=PeakShavingLookAhead,1=PeakShavingLookBehind,2=Custom]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_simple_enable", (getter)Battery_get_batt_simple_enable,(setter)Battery_set_batt_simple_enable, - PyDoc_STR("*float*: Enable Battery [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Battery [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_simple_kw", (getter)Battery_get_batt_simple_kw,(setter)Battery_set_batt_simple_kw, - PyDoc_STR("*float*: Battery Power [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery Power [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_simple_kwh", (getter)Battery_get_batt_simple_kwh,(setter)Battery_set_batt_simple_kwh, - PyDoc_STR("*float*: Battery Capacity [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery Capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_simple_meter_position", (getter)Battery_get_batt_simple_meter_position,(setter)Battery_set_batt_simple_meter_position, - PyDoc_STR("*float*: Battery Meter Position [0=BehindTheMeter,1=FrontOfMeter]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery Meter Position [0=BehindTheMeter,1=FrontOfMeter]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"crit_load", (getter)Battery_get_crit_load,(setter)Battery_set_crit_load, PyDoc_STR("*sequence*: Critical electricity load (year 1) [kW]"), @@ -405,7 +405,7 @@ static PyGetSetDef Battery_getset[] = { PyDoc_STR("*sequence*: DC array power [W]"), NULL}, {"inverter_efficiency", (getter)Battery_get_inverter_efficiency,(setter)Battery_set_inverter_efficiency, - PyDoc_STR("*float*: Inverter Efficiency [%]\n\n*Constraints*: MIN=0,MAX=100"), + PyDoc_STR("*float*: Inverter Efficiency [%]\n\n**Constraints:**\nMIN=0,MAX=100"), NULL}, {"load", (getter)Battery_get_load,(setter)Battery_set_load, PyDoc_STR("*sequence*: Electricity load (year 1) [kW]"), @@ -523,11 +523,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -569,13 +569,13 @@ Load_set_run_resiliency_calcs(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef Load_getset[] = { {"grid_outage", (getter)Load_get_grid_outage,(setter)Load_set_grid_outage, - PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n*Options*: 0=GridAvailable,1=GridUnavailable,Length=load"), + PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n**Options:**\n0=GridAvailable,1=GridUnavailable,Length=load"), NULL}, {"load_escalation", (getter)Load_get_load_escalation,(setter)Load_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"run_resiliency_calcs", (getter)Load_get_run_resiliency_calcs,(setter)Load_set_run_resiliency_calcs, - PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n*Options*: 0=DisableCalcs,1=EnableCalcs\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n**Options:**\n0=DisableCalcs,1=EnableCalcs\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -690,11 +690,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -736,10 +736,10 @@ GridLimits_set_grid_interconnection_limit_kwac(VarGroupObject *self, PyObject *v static PyGetSetDef GridLimits_getset[] = { {"enable_interconnection_limit", (getter)GridLimits_get_enable_interconnection_limit,(setter)GridLimits_set_enable_interconnection_limit, - PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n*Info*: Enable a grid interconnection limit"), + PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n**Info:**\nEnable a grid interconnection limit"), NULL}, {"grid_curtailment", (getter)GridLimits_get_grid_curtailment,(setter)GridLimits_set_grid_curtailment, - PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"grid_interconnection_limit_kwac", (getter)GridLimits_get_grid_interconnection_limit_kwac,(setter)GridLimits_set_grid_interconnection_limit_kwac, PyDoc_STR("*float*: Grid interconnection limit [kWac]"), @@ -857,11 +857,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1674,7 +1674,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Electricity loss due to curtailment, interconnection, or outage [kW]"), NULL}, {"market_sell_rate_series_yr1", (getter)Outputs_get_market_sell_rate_series_yr1,(setter)0, - PyDoc_STR("*sequence*: Power price for battery dispatch (year 1) [$/MWh]"), + PyDoc_STR("*sequence*: Power price for battery dispatch [$/MWh]"), NULL}, {"monthly_batt_to_grid", (getter)Outputs_get_monthly_batt_to_grid,(setter)0, PyDoc_STR("*sequence*: Energy to grid from battery [kWh]"), @@ -2085,12 +2085,11 @@ static PyMethodDef BattwattsModule_methods[] = { {"new", Battwatts_new, METH_VARARGS, PyDoc_STR("new() -> Battwatts")}, {"default", Battwatts_default, METH_VARARGS, - PyDoc_STR("default(config) -> Battwatts\n\nUse default attributes\n" - "`config` options:\n\n- \"PVWattsBatteryCommercial\"\n- \"PVWattsBatteryHostDeveloper\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsBatteryThirdParty\"")}, + PyDoc_STR("default(config) -> Battwatts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"PVWattsBatteryCommercial\"*\n\n - *\"PVWattsBatteryHostDeveloper\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Battwatts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Battwatts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Battwatts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Battwatts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Battwatts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Battwatts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Belpe.c b/modules/Belpe.c index 7759d65b..6515ebb4 100644 --- a/modules/Belpe.c +++ b/modules/Belpe.c @@ -69,11 +69,11 @@ LoadProfileEstimator_export(VarGroupObject *self, PyObject *args) static PyMethodDef LoadProfileEstimator_methods[] = { {"assign", (PyCFunction)LoadProfileEstimator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LoadProfileEstimator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LoadProfileEstimator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LoadProfileEstimator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LoadProfileEstimator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LoadProfileEstimator_vals = { var: val, ...}``")}, {"export", (PyCFunction)LoadProfileEstimator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -355,73 +355,73 @@ LoadProfileEstimator_set_solar_resource_file(VarGroupObject *self, PyObject *val static PyGetSetDef LoadProfileEstimator_getset[] = { {"Monthly_util", (getter)LoadProfileEstimator_get_Monthly_util,(setter)LoadProfileEstimator_set_Monthly_util, - PyDoc_STR("*sequence*: Monthly consumption from utility bill [kWh]\n\n*Constraints*: LENGTH=12\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*sequence*: Monthly consumption from utility bill [kWh]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"Occ_Schedule", (getter)LoadProfileEstimator_get_Occ_Schedule,(setter)LoadProfileEstimator_set_Occ_Schedule, - PyDoc_STR("*sequence*: Hourly occupant schedule [frac/hr]\n\n*Constraints*: LENGTH=24\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*sequence*: Hourly occupant schedule [frac/hr]\n\n**Constraints:**\nLENGTH=24\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"Occupants", (getter)LoadProfileEstimator_get_Occupants,(setter)LoadProfileEstimator_set_Occupants, - PyDoc_STR("*float*: Occupants [#]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Occupants [#]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"Retrofits", (getter)LoadProfileEstimator_get_Retrofits,(setter)LoadProfileEstimator_set_Retrofits, - PyDoc_STR("*float*: Energy retrofitted [0/1]\n\n*Options*: 0=No, 1=Yes\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Energy retrofitted [0/1]\n\n**Options:**\n0=No, 1=Yes\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"Stories", (getter)LoadProfileEstimator_get_Stories,(setter)LoadProfileEstimator_set_Stories, - PyDoc_STR("*float*: Number of stories [#]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Number of stories [#]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"TCool", (getter)LoadProfileEstimator_get_TCool,(setter)LoadProfileEstimator_set_TCool, - PyDoc_STR("*float*: Cooling setpoint [degF]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Cooling setpoint [degF]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"TCoolSB", (getter)LoadProfileEstimator_get_TCoolSB,(setter)LoadProfileEstimator_set_TCoolSB, - PyDoc_STR("*float*: Cooling setpoint setback [degF]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Cooling setpoint setback [degF]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"THeat", (getter)LoadProfileEstimator_get_THeat,(setter)LoadProfileEstimator_set_THeat, - PyDoc_STR("*float*: Heating setpoint [degF]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Heating setpoint [degF]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"THeatSB", (getter)LoadProfileEstimator_get_THeatSB,(setter)LoadProfileEstimator_set_THeatSB, - PyDoc_STR("*float*: Heating setpoint setback [degf]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Heating setpoint setback [degf]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"T_Sched", (getter)LoadProfileEstimator_get_T_Sched,(setter)LoadProfileEstimator_set_T_Sched, - PyDoc_STR("*sequence*: Temperature schedule [0/1]\n\n*Constraints*: LENGTH=24\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*sequence*: Temperature schedule [0/1]\n\n**Constraints:**\nLENGTH=24\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"YrBuilt", (getter)LoadProfileEstimator_get_YrBuilt,(setter)LoadProfileEstimator_set_YrBuilt, - PyDoc_STR("*float*: Year built [yr]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Year built [yr]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_belpe", (getter)LoadProfileEstimator_get_en_belpe,(setter)LoadProfileEstimator_set_en_belpe, - PyDoc_STR("*float*: Enable building load calculator [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True"), + PyDoc_STR("*float*: Enable building load calculator [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nTrue"), NULL}, {"en_cool", (getter)LoadProfileEstimator_get_en_cool,(setter)LoadProfileEstimator_set_en_cool, - PyDoc_STR("*float*: Enable electric cool [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric cool [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_dish", (getter)LoadProfileEstimator_get_en_dish,(setter)LoadProfileEstimator_set_en_dish, - PyDoc_STR("*float*: Enable electric dishwasher [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric dishwasher [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_dry", (getter)LoadProfileEstimator_get_en_dry,(setter)LoadProfileEstimator_set_en_dry, - PyDoc_STR("*float*: Enable electric dryer [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric dryer [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_fridge", (getter)LoadProfileEstimator_get_en_fridge,(setter)LoadProfileEstimator_set_en_fridge, - PyDoc_STR("*float*: Enable electric fridge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric fridge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_heat", (getter)LoadProfileEstimator_get_en_heat,(setter)LoadProfileEstimator_set_en_heat, - PyDoc_STR("*float*: Enable electric heat [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric heat [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_mels", (getter)LoadProfileEstimator_get_en_mels,(setter)LoadProfileEstimator_set_en_mels, - PyDoc_STR("*float*: Enable misc electric loads [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable misc electric loads [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_range", (getter)LoadProfileEstimator_get_en_range,(setter)LoadProfileEstimator_set_en_range, - PyDoc_STR("*float*: Enable electric range [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric range [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"en_wash", (getter)LoadProfileEstimator_get_en_wash,(setter)LoadProfileEstimator_set_en_wash, - PyDoc_STR("*float*: Enable electric washer [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Enable electric washer [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"floor_area", (getter)LoadProfileEstimator_get_floor_area,(setter)LoadProfileEstimator_set_floor_area, - PyDoc_STR("*float*: Building floor area [m2]\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*float*: Building floor area [m2]\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {"load", (getter)LoadProfileEstimator_get_load,(setter)LoadProfileEstimator_set_load, - PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n*Required*: True if en_belpe=0"), + PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n**Required:**\nRequired if en_belpe=0"), NULL}, {"solar_resource_file", (getter)LoadProfileEstimator_get_solar_resource_file,(setter)LoadProfileEstimator_set_solar_resource_file, - PyDoc_STR("*str*: Weather Data file [n/a]\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True if en_belpe=1"), + PyDoc_STR("*str*: Weather Data file [n/a]\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nRequired if en_belpe=1"), NULL}, {NULL} /* Sentinel */ }; @@ -744,12 +744,11 @@ static PyMethodDef BelpeModule_methods[] = { {"new", Belpe_new, METH_VARARGS, PyDoc_STR("new() -> Belpe")}, {"default", Belpe_default, METH_VARARGS, - PyDoc_STR("default(config) -> Belpe\n\nUse default attributes\n" - "`config` options:\n\n- \"FlatPlatePVResidential\"\n- \"FlatPlatePVThirdParty\"\n- \"GenericBatteryResidential\"\n- \"GenericBatteryThirdParty\"\n- \"PVBatteryResidential\"\n- \"PVBatteryThirdParty\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsBatteryThirdParty\"\n- \"PVWattsResidential\"\n- \"PVWattsThirdParty\"\n- \"SolarWaterHeatingResidential\"\n- \"StandaloneBatteryResidential\"\n- \"StandaloneBatteryThirdParty\"")}, + PyDoc_STR("default(config) -> Belpe\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FlatPlatePVResidential\"*\n\n - *\"FlatPlatePVThirdParty\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"PVBatteryResidential\"*\n\n - *\"PVBatteryThirdParty\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n - *\"PVWattsResidential\"*\n\n - *\"PVWattsThirdParty\"*\n\n - *\"SolarWaterHeatingResidential\"*\n\n - *\"StandaloneBatteryResidential\"*\n\n - *\"StandaloneBatteryThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Belpe_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Belpe\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Belpe\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Belpe_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Belpe\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Belpe\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Biomass.c b/modules/Biomass.c index 7b0d30cd..b28841e5 100644 --- a/modules/Biomass.c +++ b/modules/Biomass.c @@ -69,11 +69,11 @@ Biopower_export(VarGroupObject *self, PyObject *args) static PyMethodDef Biopower_methods[] = { {"assign", (PyCFunction)Biopower_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Biopower_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Biopower_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Biopower_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Biopower_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Biopower_vals = { var: val, ...}``")}, {"export", (PyCFunction)Biopower_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1255,298 +1255,298 @@ Biopower_set_system_capacity(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef Biopower_getset[] = { {"biopwr_emissions_avoided_cred", (getter)Biopower_get_biopwr_emissions_avoided_cred,(setter)Biopower_set_biopwr_emissions_avoided_cred, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_collection_fuel", (getter)Biopower_get_biopwr_emissions_collection_fuel,(setter)Biopower_set_biopwr_emissions_collection_fuel, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_grid_intensity", (getter)Biopower_get_biopwr_emissions_grid_intensity,(setter)Biopower_set_biopwr_emissions_grid_intensity, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_pre_chipopt", (getter)Biopower_get_biopwr_emissions_pre_chipopt,(setter)Biopower_set_biopwr_emissions_pre_chipopt, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_pre_grindopt", (getter)Biopower_get_biopwr_emissions_pre_grindopt,(setter)Biopower_set_biopwr_emissions_pre_grindopt, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_pre_pelletopt", (getter)Biopower_get_biopwr_emissions_pre_pelletopt,(setter)Biopower_set_biopwr_emissions_pre_pelletopt, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_fuel", (getter)Biopower_get_biopwr_emissions_transport_fuel,(setter)Biopower_set_biopwr_emissions_transport_fuel, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_legs", (getter)Biopower_get_biopwr_emissions_transport_legs,(setter)Biopower_set_biopwr_emissions_transport_legs, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_long", (getter)Biopower_get_biopwr_emissions_transport_long,(setter)Biopower_set_biopwr_emissions_transport_long, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_longmiles", (getter)Biopower_get_biopwr_emissions_transport_longmiles,(setter)Biopower_set_biopwr_emissions_transport_longmiles, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_longopt", (getter)Biopower_get_biopwr_emissions_transport_longopt,(setter)Biopower_set_biopwr_emissions_transport_longopt, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_emissions_transport_predist", (getter)Biopower_get_biopwr_emissions_transport_predist,(setter)Biopower_set_biopwr_emissions_transport_predist, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_additional_opt", (getter)Biopower_get_biopwr_feedstock_additional_opt,(setter)Biopower_set_biopwr_feedstock_additional_opt, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_bagasse_frac", (getter)Biopower_get_biopwr_feedstock_bagasse_frac,(setter)Biopower_set_biopwr_feedstock_bagasse_frac, - PyDoc_STR("*float*: Bagasse feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Bagasse feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_bagasse_moisture", (getter)Biopower_get_biopwr_feedstock_bagasse_moisture,(setter)Biopower_set_biopwr_feedstock_bagasse_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_barley_frac", (getter)Biopower_get_biopwr_feedstock_barley_frac,(setter)Biopower_set_biopwr_feedstock_barley_frac, - PyDoc_STR("*float*: Barley feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Barley feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_barley_moisture", (getter)Biopower_get_biopwr_feedstock_barley_moisture,(setter)Biopower_set_biopwr_feedstock_barley_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_bit_frac", (getter)Biopower_get_biopwr_feedstock_bit_frac,(setter)Biopower_set_biopwr_feedstock_bit_frac, - PyDoc_STR("*float*: Bituminos coal feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Bituminos coal feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_bit_moisture", (getter)Biopower_get_biopwr_feedstock_bit_moisture,(setter)Biopower_set_biopwr_feedstock_bit_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_collection_radius", (getter)Biopower_get_biopwr_feedstock_collection_radius,(setter)Biopower_set_biopwr_feedstock_collection_radius, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_c", (getter)Biopower_get_biopwr_feedstock_feedstock1_c,(setter)Biopower_set_biopwr_feedstock_feedstock1_c, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_frac", (getter)Biopower_get_biopwr_feedstock_feedstock1_frac,(setter)Biopower_set_biopwr_feedstock_feedstock1_frac, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_h", (getter)Biopower_get_biopwr_feedstock_feedstock1_h,(setter)Biopower_set_biopwr_feedstock_feedstock1_h, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_hhv", (getter)Biopower_get_biopwr_feedstock_feedstock1_hhv,(setter)Biopower_set_biopwr_feedstock_feedstock1_hhv, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_moisture", (getter)Biopower_get_biopwr_feedstock_feedstock1_moisture,(setter)Biopower_set_biopwr_feedstock_feedstock1_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock1_resource", (getter)Biopower_get_biopwr_feedstock_feedstock1_resource,(setter)Biopower_set_biopwr_feedstock_feedstock1_resource, - PyDoc_STR("*float*: Opt feedstock 1 (dt/yr)\n\n*Required*: True"), + PyDoc_STR("*float*: Opt feedstock 1 (dt/yr)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_c", (getter)Biopower_get_biopwr_feedstock_feedstock2_c,(setter)Biopower_set_biopwr_feedstock_feedstock2_c, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_frac", (getter)Biopower_get_biopwr_feedstock_feedstock2_frac,(setter)Biopower_set_biopwr_feedstock_feedstock2_frac, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_h", (getter)Biopower_get_biopwr_feedstock_feedstock2_h,(setter)Biopower_set_biopwr_feedstock_feedstock2_h, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_hhv", (getter)Biopower_get_biopwr_feedstock_feedstock2_hhv,(setter)Biopower_set_biopwr_feedstock_feedstock2_hhv, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_moisture", (getter)Biopower_get_biopwr_feedstock_feedstock2_moisture,(setter)Biopower_set_biopwr_feedstock_feedstock2_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_feedstock2_resource", (getter)Biopower_get_biopwr_feedstock_feedstock2_resource,(setter)Biopower_set_biopwr_feedstock_feedstock2_resource, - PyDoc_STR("*float*: Opt feedstock 2 (dt/yr)\n\n*Required*: True"), + PyDoc_STR("*float*: Opt feedstock 2 (dt/yr)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_forest_frac", (getter)Biopower_get_biopwr_feedstock_forest_frac,(setter)Biopower_set_biopwr_feedstock_forest_frac, - PyDoc_STR("*float*: Forest residue feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Forest residue feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_forest_moisture", (getter)Biopower_get_biopwr_feedstock_forest_moisture,(setter)Biopower_set_biopwr_feedstock_forest_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_herb_c", (getter)Biopower_get_biopwr_feedstock_herb_c,(setter)Biopower_set_biopwr_feedstock_herb_c, - PyDoc_STR("*float*: Carbon fraction in herbaceous energy crop\n\n*Required*: True"), + PyDoc_STR("*float*: Carbon fraction in herbaceous energy crop\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_herb_frac", (getter)Biopower_get_biopwr_feedstock_herb_frac,(setter)Biopower_set_biopwr_feedstock_herb_frac, - PyDoc_STR("*float*: Herbaceous energy crop feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Herbaceous energy crop feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_herb_moisture", (getter)Biopower_get_biopwr_feedstock_herb_moisture,(setter)Biopower_set_biopwr_feedstock_herb_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_lig_frac", (getter)Biopower_get_biopwr_feedstock_lig_frac,(setter)Biopower_set_biopwr_feedstock_lig_frac, - PyDoc_STR("*float*: Lignite coal feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Lignite coal feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_lig_moisture", (getter)Biopower_get_biopwr_feedstock_lig_moisture,(setter)Biopower_set_biopwr_feedstock_lig_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_mill_c", (getter)Biopower_get_biopwr_feedstock_mill_c,(setter)Biopower_set_biopwr_feedstock_mill_c, - PyDoc_STR("*float*: Carbon fraction in mill residue\n\n*Required*: True"), + PyDoc_STR("*float*: Carbon fraction in mill residue\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_mill_frac", (getter)Biopower_get_biopwr_feedstock_mill_frac,(setter)Biopower_set_biopwr_feedstock_mill_frac, - PyDoc_STR("*float*: Mill residue feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Mill residue feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_mill_moisture", (getter)Biopower_get_biopwr_feedstock_mill_moisture,(setter)Biopower_set_biopwr_feedstock_mill_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_rice_frac", (getter)Biopower_get_biopwr_feedstock_rice_frac,(setter)Biopower_set_biopwr_feedstock_rice_frac, - PyDoc_STR("*float*: Rice straw feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Rice straw feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_rice_moisture", (getter)Biopower_get_biopwr_feedstock_rice_moisture,(setter)Biopower_set_biopwr_feedstock_rice_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_stover_frac", (getter)Biopower_get_biopwr_feedstock_stover_frac,(setter)Biopower_set_biopwr_feedstock_stover_frac, - PyDoc_STR("*float*: Stover feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Stover feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_stover_moisture", (getter)Biopower_get_biopwr_feedstock_stover_moisture,(setter)Biopower_set_biopwr_feedstock_stover_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_subbit_frac", (getter)Biopower_get_biopwr_feedstock_subbit_frac,(setter)Biopower_set_biopwr_feedstock_subbit_frac, - PyDoc_STR("*float*: Sub-bituminous coal feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-bituminous coal feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_subbit_moisture", (getter)Biopower_get_biopwr_feedstock_subbit_moisture,(setter)Biopower_set_biopwr_feedstock_subbit_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total", (getter)Biopower_get_biopwr_feedstock_total,(setter)Biopower_set_biopwr_feedstock_total, - PyDoc_STR("*float*: Total fuel resource (dt/yr)\n\n*Required*: True"), + PyDoc_STR("*float*: Total fuel resource (dt/yr)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_biomass", (getter)Biopower_get_biopwr_feedstock_total_biomass,(setter)Biopower_set_biopwr_feedstock_total_biomass, - PyDoc_STR("*float*: Total biomass resource (dt/yr)\n\n*Required*: True"), + PyDoc_STR("*float*: Total biomass resource (dt/yr)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_biomass_c", (getter)Biopower_get_biopwr_feedstock_total_biomass_c,(setter)Biopower_set_biopwr_feedstock_total_biomass_c, - PyDoc_STR("*float*: Biomass fraction carbon\n\n*Required*: True"), + PyDoc_STR("*float*: Biomass fraction carbon\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_c", (getter)Biopower_get_biopwr_feedstock_total_c,(setter)Biopower_set_biopwr_feedstock_total_c, - PyDoc_STR("*float*: Mass fraction carbon\n\n*Required*: True"), + PyDoc_STR("*float*: Mass fraction carbon\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_coal", (getter)Biopower_get_biopwr_feedstock_total_coal,(setter)Biopower_set_biopwr_feedstock_total_coal, - PyDoc_STR("*float*: Total coal resource (dt/yr)\n\n*Required*: True"), + PyDoc_STR("*float*: Total coal resource (dt/yr)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_h", (getter)Biopower_get_biopwr_feedstock_total_h,(setter)Biopower_set_biopwr_feedstock_total_h, - PyDoc_STR("*float*: Mass fraction hydrogen\n\n*Required*: True"), + PyDoc_STR("*float*: Mass fraction hydrogen\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_hhv", (getter)Biopower_get_biopwr_feedstock_total_hhv,(setter)Biopower_set_biopwr_feedstock_total_hhv, - PyDoc_STR("*float*: Dry feedstock HHV (Btu/lb)\n\n*Required*: True"), + PyDoc_STR("*float*: Dry feedstock HHV (Btu/lb)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_lhv", (getter)Biopower_get_biopwr_feedstock_total_lhv,(setter)Biopower_set_biopwr_feedstock_total_lhv, - PyDoc_STR("*float*: Dry feedstock LHV (Btu/lb)\n\n*Required*: True"), + PyDoc_STR("*float*: Dry feedstock LHV (Btu/lb)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_total_moisture", (getter)Biopower_get_biopwr_feedstock_total_moisture,(setter)Biopower_set_biopwr_feedstock_total_moisture, - PyDoc_STR("*float*: Overall Moisture Content (dry %)\n\n*Required*: True"), + PyDoc_STR("*float*: Overall Moisture Content (dry %)\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_urban_c", (getter)Biopower_get_biopwr_feedstock_urban_c,(setter)Biopower_set_biopwr_feedstock_urban_c, - PyDoc_STR("*float*: Carbon fraction in urban residue\n\n*Required*: True"), + PyDoc_STR("*float*: Carbon fraction in urban residue\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_urban_frac", (getter)Biopower_get_biopwr_feedstock_urban_frac,(setter)Biopower_set_biopwr_feedstock_urban_frac, - PyDoc_STR("*float*: Urban wood residue feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Urban wood residue feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_urban_moisture", (getter)Biopower_get_biopwr_feedstock_urban_moisture,(setter)Biopower_set_biopwr_feedstock_urban_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_wheat_frac", (getter)Biopower_get_biopwr_feedstock_wheat_frac,(setter)Biopower_set_biopwr_feedstock_wheat_frac, - PyDoc_STR("*float*: Wheat straw feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Wheat straw feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_wheat_moisture", (getter)Biopower_get_biopwr_feedstock_wheat_moisture,(setter)Biopower_set_biopwr_feedstock_wheat_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_woody_c", (getter)Biopower_get_biopwr_feedstock_woody_c,(setter)Biopower_set_biopwr_feedstock_woody_c, - PyDoc_STR("*float*: Carbon fraction in woody energy crop\n\n*Required*: True"), + PyDoc_STR("*float*: Carbon fraction in woody energy crop\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_woody_frac", (getter)Biopower_get_biopwr_feedstock_woody_frac,(setter)Biopower_set_biopwr_feedstock_woody_frac, - PyDoc_STR("*float*: Woody energy crop feedstock fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Woody energy crop feedstock fraction\n\n**Required:**\nTrue"), NULL}, {"biopwr_feedstock_woody_moisture", (getter)Biopower_get_biopwr_feedstock_woody_moisture,(setter)Biopower_set_biopwr_feedstock_woody_moisture, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_air_feed", (getter)Biopower_get_biopwr_plant_boiler_air_feed,(setter)Biopower_set_biopwr_plant_boiler_air_feed, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_cap_per_boiler", (getter)Biopower_get_biopwr_plant_boiler_cap_per_boiler,(setter)Biopower_set_biopwr_plant_boiler_cap_per_boiler, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_flue_temp", (getter)Biopower_get_biopwr_plant_boiler_flue_temp,(setter)Biopower_set_biopwr_plant_boiler_flue_temp, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_num", (getter)Biopower_get_biopwr_plant_boiler_num,(setter)Biopower_set_biopwr_plant_boiler_num, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_over_design", (getter)Biopower_get_biopwr_plant_boiler_over_design,(setter)Biopower_set_biopwr_plant_boiler_over_design, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_steam_enthalpy", (getter)Biopower_get_biopwr_plant_boiler_steam_enthalpy,(setter)Biopower_set_biopwr_plant_boiler_steam_enthalpy, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_boiler_steam_pressure", (getter)Biopower_get_biopwr_plant_boiler_steam_pressure,(setter)Biopower_set_biopwr_plant_boiler_steam_pressure, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_combustor_type", (getter)Biopower_get_biopwr_plant_combustor_type,(setter)Biopower_set_biopwr_plant_combustor_type, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_cycle_design_temp", (getter)Biopower_get_biopwr_plant_cycle_design_temp,(setter)Biopower_set_biopwr_plant_cycle_design_temp, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_disp_power", (getter)Biopower_get_biopwr_plant_disp_power,(setter)Biopower_set_biopwr_plant_disp_power, - PyDoc_STR("*sequence*\n\n*Constraints*: LENGTH=9\n\n*Required*: True"), + PyDoc_STR("*sequence*\n\n**Constraints:**\nLENGTH=9\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_drying_method", (getter)Biopower_get_biopwr_plant_drying_method,(setter)Biopower_set_biopwr_plant_drying_method, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_drying_spec", (getter)Biopower_get_biopwr_plant_drying_spec,(setter)Biopower_set_biopwr_plant_drying_spec, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_max_over_design", (getter)Biopower_get_biopwr_plant_max_over_design,(setter)Biopower_set_biopwr_plant_max_over_design, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_min_load", (getter)Biopower_get_biopwr_plant_min_load,(setter)Biopower_set_biopwr_plant_min_load, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_nameplate", (getter)Biopower_get_biopwr_plant_nameplate,(setter)Biopower_set_biopwr_plant_nameplate, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_par_percent", (getter)Biopower_get_biopwr_plant_par_percent,(setter)Biopower_set_biopwr_plant_par_percent, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_pl_eff_f0", (getter)Biopower_get_biopwr_plant_pl_eff_f0,(setter)Biopower_set_biopwr_plant_pl_eff_f0, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_pl_eff_f1", (getter)Biopower_get_biopwr_plant_pl_eff_f1,(setter)Biopower_set_biopwr_plant_pl_eff_f1, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_pl_eff_f2", (getter)Biopower_get_biopwr_plant_pl_eff_f2,(setter)Biopower_set_biopwr_plant_pl_eff_f2, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_pl_eff_f3", (getter)Biopower_get_biopwr_plant_pl_eff_f3,(setter)Biopower_set_biopwr_plant_pl_eff_f3, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_pl_eff_f4", (getter)Biopower_get_biopwr_plant_pl_eff_f4,(setter)Biopower_set_biopwr_plant_pl_eff_f4, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_ramp_rate", (getter)Biopower_get_biopwr_plant_ramp_rate,(setter)Biopower_set_biopwr_plant_ramp_rate, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_rated_eff", (getter)Biopower_get_biopwr_plant_rated_eff,(setter)Biopower_set_biopwr_plant_rated_eff, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_corr_mode", (getter)Biopower_get_biopwr_plant_temp_corr_mode,(setter)Biopower_set_biopwr_plant_temp_corr_mode, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_eff_f0", (getter)Biopower_get_biopwr_plant_temp_eff_f0,(setter)Biopower_set_biopwr_plant_temp_eff_f0, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_eff_f1", (getter)Biopower_get_biopwr_plant_temp_eff_f1,(setter)Biopower_set_biopwr_plant_temp_eff_f1, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_eff_f2", (getter)Biopower_get_biopwr_plant_temp_eff_f2,(setter)Biopower_set_biopwr_plant_temp_eff_f2, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_eff_f3", (getter)Biopower_get_biopwr_plant_temp_eff_f3,(setter)Biopower_set_biopwr_plant_temp_eff_f3, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_temp_eff_f4", (getter)Biopower_get_biopwr_plant_temp_eff_f4,(setter)Biopower_set_biopwr_plant_temp_eff_f4, - PyDoc_STR("*float*\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_tou_grid", (getter)Biopower_get_biopwr_plant_tou_grid,(setter)Biopower_set_biopwr_plant_tou_grid, - PyDoc_STR("*str*\n\n*Required*: True"), + PyDoc_STR("*str*\n\n**Required:**\nTrue"), NULL}, {"biopwr_plant_tou_option", (getter)Biopower_get_biopwr_plant_tou_option,(setter)Biopower_set_biopwr_plant_tou_option, - PyDoc_STR("*float*\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Biopower_get_file_name,(setter)Biopower_set_file_name, - PyDoc_STR("*str*: Local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)Biopower_get_system_capacity,(setter)Biopower_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1661,11 +1661,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2730,12 +2730,11 @@ static PyMethodDef BiomassModule_methods[] = { {"new", Biomass_new, METH_VARARGS, PyDoc_STR("new() -> Biomass")}, {"default", Biomass_default, METH_VARARGS, - PyDoc_STR("default(config) -> Biomass\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerAllEquityPartnershipFlip\"\n- \"BiopowerLCOECalculator\"\n- \"BiopowerLeveragedPartnershipFlip\"\n- \"BiopowerMerchantPlant\"\n- \"BiopowerNone\"\n- \"BiopowerSaleLeaseback\"\n- \"BiopowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Biomass\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerAllEquityPartnershipFlip\"*\n\n - *\"BiopowerLCOECalculator\"*\n\n - *\"BiopowerLeveragedPartnershipFlip\"*\n\n - *\"BiopowerMerchantPlant\"*\n\n - *\"BiopowerNone\"*\n\n - *\"BiopowerSaleLeaseback\"*\n\n - *\"BiopowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Biomass_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Biomass\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Biomass\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Biomass_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Biomass\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Biomass\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Cashloan.c b/modules/Cashloan.c index e454bf89..7487e4d2 100644 --- a/modules/Cashloan.c +++ b/modules/Cashloan.c @@ -69,11 +69,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -283,55 +283,55 @@ FinancialParameters_set_system_heat_rate(VarGroupObject *self, PyObject *value, static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_fraction", (getter)FinancialParameters_get_debt_fraction,(setter)FinancialParameters_set_debt_fraction, - PyDoc_STR("*float*: Debt percentage [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt percentage [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_rate", (getter)FinancialParameters_get_loan_rate,(setter)FinancialParameters_set_loan_rate, - PyDoc_STR("*float*: Loan rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_term", (getter)FinancialParameters_get_loan_term,(setter)FinancialParameters_set_loan_term, - PyDoc_STR("*float*: Loan term [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan term [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"market", (getter)FinancialParameters_get_market,(setter)FinancialParameters_set_market, - PyDoc_STR("*float*: Residential or Commercial Market [0/1]\n\n*Options*: 0=residential,1=comm.\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Residential or Commercial Market [0/1]\n\n**Options:**\n0=residential,1=comm.\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"mortgage", (getter)FinancialParameters_get_mortgage,(setter)FinancialParameters_set_mortgage, - PyDoc_STR("*float*: Use mortgage style loan (res. only) [0/1]\n\n*Options*: 0=standard loan,1=mortgage\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use mortgage style loan (res. only) [0/1]\n\n**Options:**\n0=standard loan,1=mortgage\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Salvage value percentage [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Salvage value percentage [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -446,11 +446,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -840,100 +840,100 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Total installed cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Total installed cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1048,11 +1048,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1094,13 +1094,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1215,11 +1215,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1297,22 +1297,22 @@ Depreciation_set_depr_sta_type(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Depreciation_getset[] = { {"depr_fed_custom", (getter)Depreciation_get_depr_fed_custom,(setter)Depreciation_set_depr_fed_custom, - PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n*Required*: True if depr_fed_type=3"), + PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n**Required:**\nRequired if depr_fed_type=3"), NULL}, {"depr_fed_sl_years", (getter)Depreciation_get_depr_fed_sl_years,(setter)Depreciation_set_depr_fed_sl_years, - PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_fed_type=2"), + PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_fed_type=2"), NULL}, {"depr_fed_type", (getter)Depreciation_get_depr_fed_type,(setter)Depreciation_set_depr_fed_type, - PyDoc_STR("*float*: Federal depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_sta_custom", (getter)Depreciation_get_depr_sta_custom,(setter)Depreciation_set_depr_sta_custom, - PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n*Required*: True if depr_sta_type=3"), + PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n**Required:**\nRequired if depr_sta_type=3"), NULL}, {"depr_sta_sl_years", (getter)Depreciation_get_depr_sta_sl_years,(setter)Depreciation_set_depr_sta_sl_years, - PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_sta_type=2"), + PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_sta_type=2"), NULL}, {"depr_sta_type", (getter)Depreciation_get_depr_sta_type,(setter)Depreciation_set_depr_sta_type, - PyDoc_STR("*float*: State depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1427,11 +1427,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1677,64 +1677,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1849,11 +1849,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2915,268 +2915,268 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3291,11 +3291,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3388,22 +3388,22 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3518,11 +3518,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3600,19 +3600,19 @@ FuelCell_set_fuelcell_replacement_schedule(VarGroupObject *self, PyObject *value static PyGetSetDef FuelCell_getset[] = { {"en_fuelcell", (getter)FuelCell_get_en_fuelcell,(setter)FuelCell_set_en_fuelcell, - PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_computed_bank_capacity", (getter)FuelCell_get_fuelcell_computed_bank_capacity,(setter)FuelCell_set_fuelcell_computed_bank_capacity, - PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_per_kWh", (getter)FuelCell_get_fuelcell_per_kWh,(setter)FuelCell_set_fuelcell_per_kWh, - PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_replacement", (getter)FuelCell_get_fuelcell_replacement,(setter)FuelCell_set_fuelcell_replacement, PyDoc_STR("*sequence*: Fuel cell replacements per year [number/year]"), NULL}, {"fuelcell_replacement_option", (getter)FuelCell_get_fuelcell_replacement_option,(setter)FuelCell_set_fuelcell_replacement_option, - PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2"), + PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2"), NULL}, {"fuelcell_replacement_schedule", (getter)FuelCell_get_fuelcell_replacement_schedule,(setter)FuelCell_set_fuelcell_replacement_schedule, PyDoc_STR("*sequence*: Fuel cell replacements per year (user specified) [number/year]"), @@ -3730,11 +3730,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3824,25 +3824,25 @@ ChargesByMonth_set_utility_bill_w_sys(VarGroupObject *self, PyObject *value, voi static PyGetSetDef ChargesByMonth_getset[] = { {"charge_w_sys_dc_tou_ym", (getter)ChargesByMonth_get_charge_w_sys_dc_tou_ym,(setter)ChargesByMonth_set_charge_w_sys_dc_tou_ym, - PyDoc_STR("*sequence[sequence]*: Demand charge with system (TOU) [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Demand charge with system (TOU) [$]\n\n**Required:**\nTrue"), NULL}, {"charge_w_sys_ec_ym", (getter)ChargesByMonth_get_charge_w_sys_ec_ym,(setter)ChargesByMonth_set_charge_w_sys_ec_ym, PyDoc_STR("*sequence[sequence]*: Energy charge with system [$]"), NULL}, {"charge_w_sys_fixed_ym", (getter)ChargesByMonth_get_charge_w_sys_fixed_ym,(setter)ChargesByMonth_set_charge_w_sys_fixed_ym, - PyDoc_STR("*sequence[sequence]*: Fixed monthly charge with system [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fixed monthly charge with system [$]\n\n**Required:**\nTrue"), NULL}, {"net_billing_credits_ym", (getter)ChargesByMonth_get_net_billing_credits_ym,(setter)ChargesByMonth_set_net_billing_credits_ym, - PyDoc_STR("*sequence[sequence]*: Net billing credit [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Net billing credit [$]\n\n**Required:**\nTrue"), NULL}, {"nm_dollars_applied_ym", (getter)ChargesByMonth_get_nm_dollars_applied_ym,(setter)ChargesByMonth_set_nm_dollars_applied_ym, - PyDoc_STR("*sequence[sequence]*: Net metering credit [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Net metering credit [$]\n\n**Required:**\nTrue"), NULL}, {"true_up_credits_ym", (getter)ChargesByMonth_get_true_up_credits_ym,(setter)ChargesByMonth_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"utility_bill_w_sys", (getter)ChargesByMonth_get_utility_bill_w_sys,(setter)ChargesByMonth_set_utility_bill_w_sys, - PyDoc_STR("*sequence*: Electricity bill for system [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Electricity bill for system [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3957,11 +3957,11 @@ Battery_export(VarGroupObject *self, PyObject *args) static PyMethodDef Battery_methods[] = { {"assign", (PyCFunction)Battery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Battery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Battery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Battery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Battery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Battery_vals = { var: val, ...}``")}, {"export", (PyCFunction)Battery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4018,13 +4018,13 @@ static PyGetSetDef Battery_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"monthly_batt_to_grid", (getter)Battery_get_monthly_batt_to_grid,(setter)Battery_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)Battery_get_monthly_grid_to_batt,(setter)Battery_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)Battery_get_monthly_grid_to_load,(setter)Battery_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -4139,11 +4139,11 @@ TimeSeries_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSeries_methods[] = { {"assign", (PyCFunction)TimeSeries_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSeries_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSeries_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4185,13 +4185,13 @@ TimeSeries_set_year1_hourly_ec_with_system(VarGroupObject *self, PyObject *value static PyGetSetDef TimeSeries_getset[] = { {"year1_hourly_dc_with_system", (getter)TimeSeries_get_year1_hourly_dc_with_system,(setter)TimeSeries_set_year1_hourly_dc_with_system, - PyDoc_STR("*sequence*: Demand charge with system (year 1 hourly) [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Demand charge with system (year 1 hourly) [$]\n\n**Required:**\nTrue"), NULL}, {"year1_hourly_e_fromgrid", (getter)TimeSeries_get_year1_hourly_e_fromgrid,(setter)TimeSeries_set_year1_hourly_e_fromgrid, - PyDoc_STR("*sequence*: Electricity from grid (year 1 hourly) [kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Electricity from grid (year 1 hourly) [kWh]\n\n**Required:**\nTrue"), NULL}, {"year1_hourly_ec_with_system", (getter)TimeSeries_get_year1_hourly_ec_with_system,(setter)TimeSeries_set_year1_hourly_ec_with_system, - PyDoc_STR("*sequence*: Energy charge with system (year 1 hourly) [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy charge with system (year 1 hourly) [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4306,11 +4306,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4376,16 +4376,16 @@ SystemOutput_set_gen_purchases(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef SystemOutput_getset[] = { {"annual_energy_value", (getter)SystemOutput_get_annual_energy_value,(setter)SystemOutput_set_annual_energy_value, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {"annual_themal_value", (getter)SystemOutput_get_annual_themal_value,(setter)SystemOutput_set_annual_themal_value, PyDoc_STR("*sequence*: Energy value [$]"), NULL}, {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual degradation [%]\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), @@ -4503,11 +4503,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4525,7 +4525,7 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4640,11 +4640,11 @@ ThirdPartyOwnership_export(VarGroupObject *self, PyObject *args) static PyMethodDef ThirdPartyOwnership_methods[] = { {"assign", (PyCFunction)ThirdPartyOwnership_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ThirdPartyOwnership_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ThirdPartyOwnership_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ThirdPartyOwnership_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ThirdPartyOwnership_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ThirdPartyOwnership_vals = { var: val, ...}``")}, {"export", (PyCFunction)ThirdPartyOwnership_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4674,10 +4674,10 @@ ThirdPartyOwnership_set_elec_cost_without_system(VarGroupObject *self, PyObject static PyGetSetDef ThirdPartyOwnership_getset[] = { {"elec_cost_with_system", (getter)ThirdPartyOwnership_get_elec_cost_with_system,(setter)ThirdPartyOwnership_set_elec_cost_with_system, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {"elec_cost_without_system", (getter)ThirdPartyOwnership_get_elec_cost_without_system,(setter)ThirdPartyOwnership_set_elec_cost_without_system, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4792,11 +4792,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5006,7 +5006,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -5018,28 +5018,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -5154,11 +5154,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6073,7 +6073,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Net salvage value [$]"), NULL}, {"cf_nte", (getter)Outputs_get_cf_nte,(setter)0, - PyDoc_STR("*sequence*: Not to exceed (NTE) [cents/kWh]"), + PyDoc_STR("*sequence*: NTE Not to exceed [cents/kWh]"), NULL}, {"cf_om_batt_capacity_expense", (getter)Outputs_get_cf_om_batt_capacity_expense,(setter)0, PyDoc_STR("*sequence*: Annual cost for battery capacity based maintenance [$]"), @@ -6247,40 +6247,40 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Nominal LCOE [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Real LCOE [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lnte_nom", (getter)Outputs_get_lnte_nom,(setter)0, - PyDoc_STR("*float*: Nominal LNTE [cents/kWh]"), + PyDoc_STR("*float*: NTE Not to exceed nominal [cents/kWh]"), NULL}, {"lnte_real", (getter)Outputs_get_lnte_real,(setter)0, - PyDoc_STR("*float*: Real LNTE [cents/kWh]"), + PyDoc_STR("*float*: NTE Not to exceed real [cents/kWh]"), NULL}, {"loan_amount", (getter)Outputs_get_loan_amount,(setter)0, PyDoc_STR("*float*: Debt [$]"), NULL}, {"npv", (getter)Outputs_get_npv,(setter)0, - PyDoc_STR("*float*: Net present value [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"npv_annual_costs_lcos", (getter)Outputs_get_npv_annual_costs_lcos,(setter)0, PyDoc_STR("*float*: Present value of annual storage costs [$]"), @@ -6310,10 +6310,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Total installed cost [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC)"), + PyDoc_STR("*float*: WACC Weighted average cost of capital"), NULL}, {"year1_nte", (getter)Outputs_get_year1_nte,(setter)0, - PyDoc_STR("*float*: Year 1 NTE [cents/kWh]"), + PyDoc_STR("*float*: NTE Not to exceed Year 1 [cents/kWh]"), NULL}, {NULL} /* Sentinel */ }; @@ -6696,12 +6696,11 @@ static PyMethodDef CashloanModule_methods[] = { {"new", Cashloan_new, METH_VARARGS, PyDoc_STR("new() -> Cashloan")}, {"default", Cashloan_default, METH_VARARGS, - PyDoc_STR("default(config) -> Cashloan\n\nUse default attributes\n" - "`config` options:\n\n- \"DSLFCommercial\"\n- \"EmpiricalTroughCommercial\"\n- \"FlatPlatePVCommercial\"\n- \"FlatPlatePVResidential\"\n- \"FuelCellCommercial\"\n- \"GenericBatteryCommercial\"\n- \"GenericBatteryResidential\"\n- \"GenericCSPSystemCommercial\"\n- \"GenericSystemCommercial\"\n- \"GenericSystemResidential\"\n- \"MSLFCommercial\"\n- \"PVBatteryCommercial\"\n- \"PVBatteryResidential\"\n- \"PVWattsBatteryCommercial\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsCommercial\"\n- \"PVWattsResidential\"\n- \"SolarWaterHeatingCommercial\"\n- \"SolarWaterHeatingResidential\"\n- \"StandaloneBatteryCommercial\"\n- \"StandaloneBatteryResidential\"\n- \"WindPowerCommercial\"\n- \"WindPowerResidential\"")}, + PyDoc_STR("default(config) -> Cashloan\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"DSLFCommercial\"*\n\n - *\"EmpiricalTroughCommercial\"*\n\n - *\"FlatPlatePVCommercial\"*\n\n - *\"FlatPlatePVResidential\"*\n\n - *\"FuelCellCommercial\"*\n\n - *\"GenericBatteryCommercial\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericCSPSystemCommercial\"*\n\n - *\"GenericSystemCommercial\"*\n\n - *\"GenericSystemResidential\"*\n\n - *\"MSLFCommercial\"*\n\n - *\"PVBatteryCommercial\"*\n\n - *\"PVBatteryResidential\"*\n\n - *\"PVWattsBatteryCommercial\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsCommercial\"*\n\n - *\"PVWattsResidential\"*\n\n - *\"SolarWaterHeatingCommercial\"*\n\n - *\"SolarWaterHeatingResidential\"*\n\n - *\"StandaloneBatteryCommercial\"*\n\n - *\"StandaloneBatteryResidential\"*\n\n - *\"WindPowerCommercial\"*\n\n - *\"WindPowerResidential\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Cashloan_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Cashloan\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Cashloan\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Cashloan_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Cashloan\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Cashloan\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/CbConstructionFinancing.c b/modules/CbConstructionFinancing.c index 87fec499..8cd35e20 100644 --- a/modules/CbConstructionFinancing.c +++ b/modules/CbConstructionFinancing.c @@ -69,11 +69,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Total installed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Total installed cost [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -456,64 +456,64 @@ FinancialParameters_set_const_per_upfront_rate5(VarGroupObject *self, PyObject * static PyGetSetDef FinancialParameters_getset[] = { {"const_per_interest_rate1", (getter)FinancialParameters_get_const_per_interest_rate1,(setter)FinancialParameters_set_const_per_interest_rate1, - PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate2", (getter)FinancialParameters_get_const_per_interest_rate2,(setter)FinancialParameters_set_const_per_interest_rate2, - PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate3", (getter)FinancialParameters_get_const_per_interest_rate3,(setter)FinancialParameters_set_const_per_interest_rate3, - PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate4", (getter)FinancialParameters_get_const_per_interest_rate4,(setter)FinancialParameters_set_const_per_interest_rate4, - PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate5", (getter)FinancialParameters_get_const_per_interest_rate5,(setter)FinancialParameters_set_const_per_interest_rate5, - PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_months1", (getter)FinancialParameters_get_const_per_months1,(setter)FinancialParameters_set_const_per_months1, - PyDoc_STR("*float*: Months prior to operation, loan 1\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 1\n\n**Required:**\nTrue"), NULL}, {"const_per_months2", (getter)FinancialParameters_get_const_per_months2,(setter)FinancialParameters_set_const_per_months2, - PyDoc_STR("*float*: Months prior to operation, loan 2\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 2\n\n**Required:**\nTrue"), NULL}, {"const_per_months3", (getter)FinancialParameters_get_const_per_months3,(setter)FinancialParameters_set_const_per_months3, - PyDoc_STR("*float*: Months prior to operation, loan 3\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 3\n\n**Required:**\nTrue"), NULL}, {"const_per_months4", (getter)FinancialParameters_get_const_per_months4,(setter)FinancialParameters_set_const_per_months4, - PyDoc_STR("*float*: Months prior to operation, loan 4\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 4\n\n**Required:**\nTrue"), NULL}, {"const_per_months5", (getter)FinancialParameters_get_const_per_months5,(setter)FinancialParameters_set_const_per_months5, - PyDoc_STR("*float*: Months prior to operation, loan 5\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 5\n\n**Required:**\nTrue"), NULL}, {"const_per_percent1", (getter)FinancialParameters_get_const_per_percent1,(setter)FinancialParameters_set_const_per_percent1, - PyDoc_STR("*float*: Percent of tot. installed cost, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of tot. installed cost, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent2", (getter)FinancialParameters_get_const_per_percent2,(setter)FinancialParameters_set_const_per_percent2, - PyDoc_STR("*float*: Percent of tot. installed cost, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of tot. installed cost, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent3", (getter)FinancialParameters_get_const_per_percent3,(setter)FinancialParameters_set_const_per_percent3, - PyDoc_STR("*float*: Percent of tot. installed cost, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of tot. installed cost, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent4", (getter)FinancialParameters_get_const_per_percent4,(setter)FinancialParameters_set_const_per_percent4, - PyDoc_STR("*float*: Percent of tot. installed cost, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of tot. installed cost, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent5", (getter)FinancialParameters_get_const_per_percent5,(setter)FinancialParameters_set_const_per_percent5, - PyDoc_STR("*float*: Percent of tot. installed cost, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of tot. installed cost, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate1", (getter)FinancialParameters_get_const_per_upfront_rate1,(setter)FinancialParameters_set_const_per_upfront_rate1, - PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate2", (getter)FinancialParameters_get_const_per_upfront_rate2,(setter)FinancialParameters_set_const_per_upfront_rate2, - PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate3", (getter)FinancialParameters_get_const_per_upfront_rate3,(setter)FinancialParameters_set_const_per_upfront_rate3, - PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate4", (getter)FinancialParameters_get_const_per_upfront_rate4,(setter)FinancialParameters_set_const_per_upfront_rate4, - PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate5", (getter)FinancialParameters_get_const_per_upfront_rate5,(setter)FinancialParameters_set_const_per_upfront_rate5, - PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -628,11 +628,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1137,12 +1137,11 @@ static PyMethodDef CbConstructionFinancingModule_methods[] = { {"new", CbConstructionFinancing_new, METH_VARARGS, PyDoc_STR("new() -> CbConstructionFinancing")}, {"default", CbConstructionFinancing_default, METH_VARARGS, - PyDoc_STR("default(config) -> CbConstructionFinancing\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> CbConstructionFinancing\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", CbConstructionFinancing_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> CbConstructionFinancing\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> CbConstructionFinancing\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", CbConstructionFinancing_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> CbConstructionFinancing\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> CbConstructionFinancing\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/CbEmpiricalHceHeatLoss.c b/modules/CbEmpiricalHceHeatLoss.c index 542d28b1..3356cb34 100644 --- a/modules/CbEmpiricalHceHeatLoss.c +++ b/modules/CbEmpiricalHceHeatLoss.c @@ -69,11 +69,11 @@ Hce_export(VarGroupObject *self, PyObject *args) static PyMethodDef Hce_methods[] = { {"assign", (PyCFunction)Hce_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Hce_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Hce_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Hce_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Hce_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Hce_vals = { var: val, ...}``")}, {"export", (PyCFunction)Hce_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -259,49 +259,49 @@ Hce_set_ui_reference_wind_speed(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef Hce_getset[] = { {"HCEFrac", (getter)Hce_get_HCEFrac,(setter)Hce_set_HCEFrac, - PyDoc_STR("*sequence*: Fraction of field that is this type of HCE\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fraction of field that is this type of HCE\n\n**Required:**\nTrue"), NULL}, {"HCE_A0", (getter)Hce_get_HCE_A0,(setter)Hce_set_HCE_A0, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A1", (getter)Hce_get_HCE_A1,(setter)Hce_set_HCE_A1, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A2", (getter)Hce_get_HCE_A2,(setter)Hce_set_HCE_A2, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A3", (getter)Hce_get_HCE_A3,(setter)Hce_set_HCE_A3, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A4", (getter)Hce_get_HCE_A4,(setter)Hce_set_HCE_A4, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A5", (getter)Hce_get_HCE_A5,(setter)Hce_set_HCE_A5, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A6", (getter)Hce_get_HCE_A6,(setter)Hce_set_HCE_A6, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"PerfFac", (getter)Hce_get_PerfFac,(setter)Hce_set_PerfFac, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"RefMirrAper", (getter)Hce_get_RefMirrAper,(setter)Hce_set_RefMirrAper, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"SfInTempD", (getter)Hce_get_SfInTempD,(setter)Hce_set_SfInTempD, - PyDoc_STR("*float*: Solar Field Inlet Temp at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar Field Inlet Temp at design [C]\n\n**Required:**\nTrue"), NULL}, {"SfOutTempD", (getter)Hce_get_SfOutTempD,(setter)Hce_set_SfOutTempD, - PyDoc_STR("*float*: Solar Field Outlet Temp at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar Field Outlet Temp at design [C]\n\n**Required:**\nTrue"), NULL}, {"ui_reference_ambient_temperature", (getter)Hce_get_ui_reference_ambient_temperature,(setter)Hce_set_ui_reference_ambient_temperature, - PyDoc_STR("*float*: Ambient temp at design heat loss [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temp at design heat loss [C]\n\n**Required:**\nTrue"), NULL}, {"ui_reference_direct_normal_irradiance", (getter)Hce_get_ui_reference_direct_normal_irradiance,(setter)Hce_set_ui_reference_direct_normal_irradiance, - PyDoc_STR("*float*: DNI at design [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: DNI at design [W/m2]\n\n**Required:**\nTrue"), NULL}, {"ui_reference_wind_speed", (getter)Hce_get_ui_reference_wind_speed,(setter)Hce_set_ui_reference_wind_speed, - PyDoc_STR("*float*: Wind speed for design heat loss [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Wind speed for design heat loss [m/s]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -416,11 +416,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -777,12 +777,11 @@ static PyMethodDef CbEmpiricalHceHeatLossModule_methods[] = { {"new", CbEmpiricalHceHeatLoss_new, METH_VARARGS, PyDoc_STR("new() -> CbEmpiricalHceHeatLoss")}, {"default", CbEmpiricalHceHeatLoss_default, METH_VARARGS, - PyDoc_STR("default(config) -> CbEmpiricalHceHeatLoss\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> CbEmpiricalHceHeatLoss\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", CbEmpiricalHceHeatLoss_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> CbEmpiricalHceHeatLoss\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> CbEmpiricalHceHeatLoss\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", CbEmpiricalHceHeatLoss_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> CbEmpiricalHceHeatLoss\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> CbEmpiricalHceHeatLoss\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/CbMsptSystemCosts.c b/modules/CbMsptSystemCosts.c index b645c33d..8da4c07e 100644 --- a/modules/CbMsptSystemCosts.c +++ b/modules/CbMsptSystemCosts.c @@ -69,11 +69,11 @@ Heliostat_export(VarGroupObject *self, PyObject *args) static PyMethodDef Heliostat_methods[] = { {"assign", (PyCFunction)Heliostat_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Heliostat_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Heliostat_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Heliostat_vals = { var: val, ...}``")}, {"export", (PyCFunction)Heliostat_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ Heliostat_set_A_sf(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Heliostat_getset[] = { {"A_sf", (getter)Heliostat_get_A_sf,(setter)Heliostat_set_A_sf, - PyDoc_STR("*float*: Total reflective solar field area [m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Total reflective solar field area [m2]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -504,76 +504,76 @@ SystemCosts_set_tower_fixed_cost(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemCosts_getset[] = { {"bop_spec_cost", (getter)SystemCosts_get_bop_spec_cost,(setter)SystemCosts_set_bop_spec_cost, - PyDoc_STR("*float*: BOP specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: BOP specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"contingency_rate", (getter)SystemCosts_get_contingency_rate,(setter)SystemCosts_set_contingency_rate, - PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_fixed", (getter)SystemCosts_get_csp_pt_cost_epc_fixed,(setter)SystemCosts_set_csp_pt_cost_epc_fixed, - PyDoc_STR("*float*: EPC fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC fixed [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_per_acre", (getter)SystemCosts_get_csp_pt_cost_epc_per_acre,(setter)SystemCosts_set_csp_pt_cost_epc_per_acre, - PyDoc_STR("*float*: EPC cost per acre [$/acre]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost per acre [$/acre]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_per_watt", (getter)SystemCosts_get_csp_pt_cost_epc_per_watt,(setter)SystemCosts_set_csp_pt_cost_epc_per_watt, - PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_percent", (getter)SystemCosts_get_csp_pt_cost_epc_percent,(setter)SystemCosts_set_csp_pt_cost_epc_percent, - PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_fixed_sf", (getter)SystemCosts_get_csp_pt_cost_fixed_sf,(setter)SystemCosts_set_csp_pt_cost_fixed_sf, - PyDoc_STR("*float*: Heliostat field cost fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat field cost fixed [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_fixed", (getter)SystemCosts_get_csp_pt_cost_plm_fixed,(setter)SystemCosts_set_csp_pt_cost_plm_fixed, - PyDoc_STR("*float*: PLM fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM fixed [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_per_acre", (getter)SystemCosts_get_csp_pt_cost_plm_per_acre,(setter)SystemCosts_set_csp_pt_cost_plm_per_acre, - PyDoc_STR("*float*: PLM cost per acre [$/acre]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM cost per acre [$/acre]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_per_watt", (getter)SystemCosts_get_csp_pt_cost_plm_per_watt,(setter)SystemCosts_set_csp_pt_cost_plm_per_watt, - PyDoc_STR("*float*: PLM cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_percent", (getter)SystemCosts_get_csp_pt_cost_plm_percent,(setter)SystemCosts_set_csp_pt_cost_plm_percent, - PyDoc_STR("*float*: PLM cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_power_block_per_kwe", (getter)SystemCosts_get_csp_pt_cost_power_block_per_kwe,(setter)SystemCosts_set_csp_pt_cost_power_block_per_kwe, - PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_total_land_area", (getter)SystemCosts_get_csp_pt_cost_total_land_area,(setter)SystemCosts_set_csp_pt_cost_total_land_area, - PyDoc_STR("*float*: Total land area [acre]\n\n*Required*: True"), + PyDoc_STR("*float*: Total land area [acre]\n\n**Required:**\nTrue"), NULL}, {"fossil_spec_cost", (getter)SystemCosts_get_fossil_spec_cost,(setter)SystemCosts_set_fossil_spec_cost, - PyDoc_STR("*float*: Fossil system specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil system specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"heliostat_spec_cost", (getter)SystemCosts_get_heliostat_spec_cost,(setter)SystemCosts_set_heliostat_spec_cost, - PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"rec_cost_exp", (getter)SystemCosts_get_rec_cost_exp,(setter)SystemCosts_set_rec_cost_exp, - PyDoc_STR("*float*: Receiver cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"rec_ref_area", (getter)SystemCosts_get_rec_ref_area,(setter)SystemCosts_set_rec_ref_area, - PyDoc_STR("*float*: Receiver reference area for cost scale\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference area for cost scale\n\n**Required:**\nTrue"), NULL}, {"rec_ref_cost", (getter)SystemCosts_get_rec_ref_cost,(setter)SystemCosts_set_rec_ref_cost, - PyDoc_STR("*float*: Receiver reference cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference cost [$]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_frac", (getter)SystemCosts_get_sales_tax_frac,(setter)SystemCosts_set_sales_tax_frac, - PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_rate", (getter)SystemCosts_get_sales_tax_rate,(setter)SystemCosts_set_sales_tax_rate, - PyDoc_STR("*float*: Sales tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Sales tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"site_spec_cost", (getter)SystemCosts_get_site_spec_cost,(setter)SystemCosts_set_site_spec_cost, - PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"tes_spec_cost", (getter)SystemCosts_get_tes_spec_cost,(setter)SystemCosts_set_tes_spec_cost, - PyDoc_STR("*float*: Thermal energy storage cost [$/kWht]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal energy storage cost [$/kWht]\n\n**Required:**\nTrue"), NULL}, {"tower_exp", (getter)SystemCosts_get_tower_exp,(setter)SystemCosts_set_tower_exp, - PyDoc_STR("*float*: Tower cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Tower cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"tower_fixed_cost", (getter)SystemCosts_get_tower_fixed_cost,(setter)SystemCosts_set_tower_fixed_cost, - PyDoc_STR("*float*: Tower fixed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower fixed cost [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -688,11 +688,11 @@ Receiver_export(VarGroupObject *self, PyObject *args) static PyMethodDef Receiver_methods[] = { {"assign", (PyCFunction)Receiver_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Receiver_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Receiver_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Receiver_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Receiver_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Receiver_vals = { var: val, ...}``")}, {"export", (PyCFunction)Receiver_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -746,16 +746,16 @@ Receiver_set_helio_height(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Receiver_getset[] = { {"H_rec", (getter)Receiver_get_H_rec,(setter)Receiver_set_H_rec, - PyDoc_STR("*float*: The height of the receiver [m]\n\n*Required*: True"), + PyDoc_STR("*float*: The height of the receiver [m]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_receiver_area", (getter)Receiver_get_csp_pt_cost_receiver_area,(setter)Receiver_set_csp_pt_cost_receiver_area, - PyDoc_STR("*float*: Receiver area [m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver area [m2]\n\n**Required:**\nTrue"), NULL}, {"h_tower", (getter)Receiver_get_h_tower,(setter)Receiver_set_h_tower, - PyDoc_STR("*float*: Tower height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower height [m]\n\n**Required:**\nTrue"), NULL}, {"helio_height", (getter)Receiver_get_helio_height,(setter)Receiver_set_helio_height, - PyDoc_STR("*float*: Heliostat height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat height [m]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -870,11 +870,11 @@ TES_export(VarGroupObject *self, PyObject *args) static PyMethodDef TES_methods[] = { {"assign", (PyCFunction)TES_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TES_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TES_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TES_vals = { var: val, ...}``")}, {"export", (PyCFunction)TES_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -892,7 +892,7 @@ TES_set_csp_pt_cost_storage_mwht(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef TES_getset[] = { {"csp_pt_cost_storage_mwht", (getter)TES_get_csp_pt_cost_storage_mwht,(setter)TES_set_csp_pt_cost_storage_mwht, - PyDoc_STR("*float*: Storage capacity [MWt-hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Storage capacity [MWt-hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1007,11 +1007,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1041,10 +1041,10 @@ SystemDesign_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemDesign_getset[] = { {"P_ref", (getter)SystemDesign_get_P_ref,(setter)SystemDesign_set_P_ref, - PyDoc_STR("*float*: Reference output electric power at design condition [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference output electric power at design condition [MWe]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1159,11 +1159,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1662,12 +1662,11 @@ static PyMethodDef CbMsptSystemCostsModule_methods[] = { {"new", CbMsptSystemCosts_new, METH_VARARGS, PyDoc_STR("new() -> CbMsptSystemCosts")}, {"default", CbMsptSystemCosts_default, METH_VARARGS, - PyDoc_STR("default(config) -> CbMsptSystemCosts\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> CbMsptSystemCosts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", CbMsptSystemCosts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> CbMsptSystemCosts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> CbMsptSystemCosts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", CbMsptSystemCosts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> CbMsptSystemCosts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> CbMsptSystemCosts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Communitysolar.c b/modules/Communitysolar.c index 85f49b0a..2c46641b 100644 --- a/modules/Communitysolar.c +++ b/modules/Communitysolar.c @@ -69,11 +69,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -535,118 +535,118 @@ FinancialParameters_set_term_tenor(VarGroupObject *self, PyObject *value, void * static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"construction_financing_cost", (getter)FinancialParameters_get_construction_financing_cost,(setter)FinancialParameters_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {"cost_debt_closing", (getter)FinancialParameters_get_cost_debt_closing,(setter)FinancialParameters_set_cost_debt_closing, - PyDoc_STR("*float*: Debt closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Debt closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_fee", (getter)FinancialParameters_get_cost_debt_fee,(setter)FinancialParameters_set_cost_debt_fee, - PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)FinancialParameters_get_cost_other_financing,(setter)FinancialParameters_set_cost_other_financing, - PyDoc_STR("*float*: Other financing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Other financing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_option", (getter)FinancialParameters_get_debt_option,(setter)FinancialParameters_set_debt_option, - PyDoc_STR("*float*: Debt option [0/1]\n\n*Options*: 0=debt percent,1=dscr\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Debt option [0/1]\n\n**Options:**\n0=debt percent,1=dscr\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_percent", (getter)FinancialParameters_get_debt_percent,(setter)FinancialParameters_set_debt_percent, - PyDoc_STR("*float*: Debt percent [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Debt percent [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr", (getter)FinancialParameters_get_dscr,(setter)FinancialParameters_set_dscr, - PyDoc_STR("*float*: Debt service coverage ratio\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt service coverage ratio\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_limit_debt_fraction", (getter)FinancialParameters_get_dscr_limit_debt_fraction,(setter)FinancialParameters_set_dscr_limit_debt_fraction, - PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_maximum_debt_fraction", (getter)FinancialParameters_get_dscr_maximum_debt_fraction,(setter)FinancialParameters_set_dscr_maximum_debt_fraction, - PyDoc_STR("*float*: Maximum debt fraction [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Maximum debt fraction [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_reserve_months", (getter)FinancialParameters_get_dscr_reserve_months,(setter)FinancialParameters_set_dscr_reserve_months, - PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_moratorium", (getter)FinancialParameters_get_loan_moratorium,(setter)FinancialParameters_set_loan_moratorium, - PyDoc_STR("*float*: Loan moratorium period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan moratorium period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)FinancialParameters_get_months_receivables_reserve,(setter)FinancialParameters_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)FinancialParameters_get_months_working_reserve,(setter)FinancialParameters_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"payment_option", (getter)FinancialParameters_get_payment_option,(setter)FinancialParameters_set_payment_option, - PyDoc_STR("*float*: Debt repayment option [0/1]\n\n*Options*: 0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt repayment option [0/1]\n\n**Options:**\n0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"roe_input", (getter)FinancialParameters_get_roe_input,(setter)FinancialParameters_set_roe_input, - PyDoc_STR("*sequence*: Return on equity\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*sequence*: Return on equity\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n\t - land_area\n\t - total_installed_cost\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - construction_financing_cost\n\t - land_area\n\t - total_installed_cost\n"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"term_int_rate", (getter)FinancialParameters_get_term_int_rate,(setter)FinancialParameters_set_term_int_rate, - PyDoc_STR("*float*: Term financing interest rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 8.5"), + PyDoc_STR("*float*: Term financing interest rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 8.5 if not assigned explicitly or loaded from defaults."), NULL}, {"term_tenor", (getter)FinancialParameters_get_term_tenor,(setter)FinancialParameters_set_term_tenor, - PyDoc_STR("*float*: Term financing period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Term financing period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -761,11 +761,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1203,112 +1203,112 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_lifetime_recapitalize", (getter)SystemCosts_get_system_lifetime_recapitalize,(setter)SystemCosts_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)SystemCosts_get_system_recapitalization_cost,(setter)SystemCosts_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)SystemCosts_get_system_recapitalization_escalation,(setter)SystemCosts_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)SystemCosts_get_system_use_recapitalization,(setter)SystemCosts_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1423,11 +1423,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1469,13 +1469,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1590,11 +1590,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1840,64 +1840,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2012,11 +2012,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2502,124 +2502,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2734,11 +2734,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3848,280 +3848,280 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_for_ds", (getter)PaymentIncentives_get_pbi_fed_for_ds,(setter)PaymentIncentives_set_pbi_fed_for_ds, - PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_for_ds", (getter)PaymentIncentives_get_pbi_oth_for_ds,(setter)PaymentIncentives_set_pbi_oth_for_ds, - PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_for_ds", (getter)PaymentIncentives_get_pbi_sta_for_ds,(setter)PaymentIncentives_set_pbi_sta_for_ds, - PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_for_ds", (getter)PaymentIncentives_get_pbi_uti_for_ds,(setter)PaymentIncentives_set_pbi_uti_for_ds, - PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4236,11 +4236,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4270,10 +4270,10 @@ Revenue_set_flip_target_year(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef Revenue_getset[] = { {"flip_target_percent", (getter)Revenue_get_flip_target_percent,(setter)Revenue_set_flip_target_percent, - PyDoc_STR("*float*: After-tax IRR target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax IRR target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)Revenue_get_flip_target_year,(setter)Revenue_set_flip_target_year, - PyDoc_STR("*float*: IRR target year [Year]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: IRR target year [Year]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4388,11 +4388,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4497,25 +4497,25 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_meter_position", (getter)BatterySystem_get_batt_meter_position,(setter)BatterySystem_set_batt_meter_position, PyDoc_STR("*float*: Position of battery relative to electric meter"), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4630,11 +4630,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4652,7 +4652,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4767,11 +4767,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4861,13 +4861,13 @@ SystemOutput_set_system_pre_curtailment_kwac(VarGroupObject *self, PyObject *val static PyGetSetDef SystemOutput_getset[] = { {"annual_energy_pre_curtailment_ac", (getter)SystemOutput_get_annual_energy_pre_curtailment_ac,(setter)SystemOutput_set_annual_energy_pre_curtailment_ac, - PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Net power to or from the grid [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Net power to or from the grid [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), @@ -4876,10 +4876,10 @@ static PyGetSetDef SystemOutput_getset[] = { PyDoc_STR("*sequence*: Electricity to or from the renewable system, without the battery [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n\t - land_area\n\t - total_installed_cost\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - construction_financing_cost\n\t - land_area\n\t - total_installed_cost\n"), NULL}, {"system_pre_curtailment_kwac", (getter)SystemOutput_get_system_pre_curtailment_kwac,(setter)SystemOutput_set_system_pre_curtailment_kwac, - PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n*Info*: System generation"), + PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n**Info:**\nSystem generation"), NULL}, {NULL} /* Sentinel */ }; @@ -4994,11 +4994,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5131,11 +5131,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5153,7 +5153,7 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5268,11 +5268,11 @@ CommunitySolar_export(VarGroupObject *self, PyObject *args) static PyMethodDef CommunitySolar_methods[] = { {"assign", (PyCFunction)CommunitySolar_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CommunitySolar_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CommunitySolar_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CommunitySolar_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CommunitySolar_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CommunitySolar_vals = { var: val, ...}``")}, {"export", (PyCFunction)CommunitySolar_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5830,142 +5830,142 @@ CommunitySolar_set_unsubscribed_payment_generation_escal(VarGroupObject *self, P static PyGetSetDef CommunitySolar_getset[] = { {"cs_cost_recurring_capacity", (getter)CommunitySolar_get_cs_cost_recurring_capacity,(setter)CommunitySolar_set_cs_cost_recurring_capacity, - PyDoc_STR("*sequence*: Recurring annual cost by capacity [$/kW-yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recurring annual cost by capacity [$/kW-yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_recurring_capacity_escal", (getter)CommunitySolar_get_cs_cost_recurring_capacity_escal,(setter)CommunitySolar_set_cs_cost_recurring_capacity_escal, - PyDoc_STR("*float*: Recurring annual cost by capacity escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recurring annual cost by capacity escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_recurring_fixed", (getter)CommunitySolar_get_cs_cost_recurring_fixed,(setter)CommunitySolar_set_cs_cost_recurring_fixed, - PyDoc_STR("*sequence*: Recurring annual fixed cost [$/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recurring annual fixed cost [$/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_recurring_fixed_escal", (getter)CommunitySolar_get_cs_cost_recurring_fixed_escal,(setter)CommunitySolar_set_cs_cost_recurring_fixed_escal, - PyDoc_STR("*float*: Recurring annual fixed cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recurring annual fixed cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_recurring_generation", (getter)CommunitySolar_get_cs_cost_recurring_generation,(setter)CommunitySolar_set_cs_cost_recurring_generation, - PyDoc_STR("*sequence*: Recurring annual cost by generation [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recurring annual cost by generation [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_recurring_generation_escal", (getter)CommunitySolar_get_cs_cost_recurring_generation_escal,(setter)CommunitySolar_set_cs_cost_recurring_generation_escal, - PyDoc_STR("*float*: Recurring annual cost by generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recurring annual cost by generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_upfront", (getter)CommunitySolar_get_cs_cost_upfront,(setter)CommunitySolar_set_cs_cost_upfront, - PyDoc_STR("*float*: Up-front fixed cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Up-front fixed cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cs_cost_upfront_per_capacity", (getter)CommunitySolar_get_cs_cost_upfront_per_capacity,(setter)CommunitySolar_set_cs_cost_upfront_per_capacity, - PyDoc_STR("*float*: Up-front cost by capacity [$/kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Up-front cost by capacity [$/kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_bill_credit_rate", (getter)CommunitySolar_get_subscriber1_bill_credit_rate,(setter)CommunitySolar_set_subscriber1_bill_credit_rate, - PyDoc_STR("*sequence*: Subscriber 1 bill credit rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 1 bill credit rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_bill_credit_rate_escal", (getter)CommunitySolar_get_subscriber1_bill_credit_rate_escal,(setter)CommunitySolar_set_subscriber1_bill_credit_rate_escal, - PyDoc_STR("*float*: Subscriber 1 bill credit rate escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 bill credit rate escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_growth", (getter)CommunitySolar_get_subscriber1_growth,(setter)CommunitySolar_set_subscriber1_growth, - PyDoc_STR("*float*: Subscriber 1 growth [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 growth [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_payment_annual", (getter)CommunitySolar_get_subscriber1_payment_annual,(setter)CommunitySolar_set_subscriber1_payment_annual, - PyDoc_STR("*sequence*: Subscriber 1 payment annual [$/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 1 payment annual [$/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_payment_annual_escal", (getter)CommunitySolar_get_subscriber1_payment_annual_escal,(setter)CommunitySolar_set_subscriber1_payment_annual_escal, - PyDoc_STR("*float*: Subscriber 1 payment annual escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment annual escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_payment_generation", (getter)CommunitySolar_get_subscriber1_payment_generation,(setter)CommunitySolar_set_subscriber1_payment_generation, - PyDoc_STR("*sequence*: Subscriber 1 payment generation [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 1 payment generation [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_payment_generation_escal", (getter)CommunitySolar_get_subscriber1_payment_generation_escal,(setter)CommunitySolar_set_subscriber1_payment_generation_escal, - PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_payment_upfront", (getter)CommunitySolar_get_subscriber1_payment_upfront,(setter)CommunitySolar_set_subscriber1_payment_upfront, - PyDoc_STR("*float*: Subscriber 1 payment up-front [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment up-front [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber1_share", (getter)CommunitySolar_get_subscriber1_share,(setter)CommunitySolar_set_subscriber1_share, - PyDoc_STR("*sequence*: Subscriber 1 share [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 1 share [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_bill_credit_rate", (getter)CommunitySolar_get_subscriber2_bill_credit_rate,(setter)CommunitySolar_set_subscriber2_bill_credit_rate, - PyDoc_STR("*sequence*: Subscriber 2 bill credit rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 2 bill credit rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_bill_credit_rate_escal", (getter)CommunitySolar_get_subscriber2_bill_credit_rate_escal,(setter)CommunitySolar_set_subscriber2_bill_credit_rate_escal, - PyDoc_STR("*float*: Subscriber 2 bill credit rate escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 2 bill credit rate escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_growth", (getter)CommunitySolar_get_subscriber2_growth,(setter)CommunitySolar_set_subscriber2_growth, - PyDoc_STR("*float*: Subscriber 2 growth [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 2 growth [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_payment_annual", (getter)CommunitySolar_get_subscriber2_payment_annual,(setter)CommunitySolar_set_subscriber2_payment_annual, - PyDoc_STR("*sequence*: Subscriber 2 payment annual [$/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 2 payment annual [$/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_payment_annual_escal", (getter)CommunitySolar_get_subscriber2_payment_annual_escal,(setter)CommunitySolar_set_subscriber2_payment_annual_escal, - PyDoc_STR("*float*: Subscriber 2 payment annual escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 2 payment annual escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_payment_generation", (getter)CommunitySolar_get_subscriber2_payment_generation,(setter)CommunitySolar_set_subscriber2_payment_generation, - PyDoc_STR("*sequence*: Subscriber 2 payment generation [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 2 payment generation [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_payment_generation_escal", (getter)CommunitySolar_get_subscriber2_payment_generation_escal,(setter)CommunitySolar_set_subscriber2_payment_generation_escal, - PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_payment_upfront", (getter)CommunitySolar_get_subscriber2_payment_upfront,(setter)CommunitySolar_set_subscriber2_payment_upfront, - PyDoc_STR("*float*: Subscriber 2 payment up-front [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 2 payment up-front [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber2_share", (getter)CommunitySolar_get_subscriber2_share,(setter)CommunitySolar_set_subscriber2_share, - PyDoc_STR("*sequence*: Subscriber 2 share [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 2 share [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_bill_credit_rate", (getter)CommunitySolar_get_subscriber3_bill_credit_rate,(setter)CommunitySolar_set_subscriber3_bill_credit_rate, - PyDoc_STR("*sequence*: Subscriber 3 bill credit rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 3 bill credit rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_bill_credit_rate_escal", (getter)CommunitySolar_get_subscriber3_bill_credit_rate_escal,(setter)CommunitySolar_set_subscriber3_bill_credit_rate_escal, - PyDoc_STR("*float*: Subscriber 3 bill credit rate escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 3 bill credit rate escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_growth", (getter)CommunitySolar_get_subscriber3_growth,(setter)CommunitySolar_set_subscriber3_growth, - PyDoc_STR("*float*: Subscriber 3 growth [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 3 growth [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_payment_annual", (getter)CommunitySolar_get_subscriber3_payment_annual,(setter)CommunitySolar_set_subscriber3_payment_annual, - PyDoc_STR("*sequence*: Subscriber 3 payment annual [$/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 3 payment annual [$/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_payment_annual_escal", (getter)CommunitySolar_get_subscriber3_payment_annual_escal,(setter)CommunitySolar_set_subscriber3_payment_annual_escal, - PyDoc_STR("*float*: Subscriber 3 payment annual escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 3 payment annual escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_payment_generation", (getter)CommunitySolar_get_subscriber3_payment_generation,(setter)CommunitySolar_set_subscriber3_payment_generation, - PyDoc_STR("*sequence*: Subscriber 3 payment generation [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 3 payment generation [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_payment_generation_escal", (getter)CommunitySolar_get_subscriber3_payment_generation_escal,(setter)CommunitySolar_set_subscriber3_payment_generation_escal, - PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_payment_upfront", (getter)CommunitySolar_get_subscriber3_payment_upfront,(setter)CommunitySolar_set_subscriber3_payment_upfront, - PyDoc_STR("*float*: Subscriber 3 payment up-front [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 3 payment up-front [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber3_share", (getter)CommunitySolar_get_subscriber3_share,(setter)CommunitySolar_set_subscriber3_share, - PyDoc_STR("*sequence*: Subscriber 3 share [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 3 share [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_bill_credit_rate", (getter)CommunitySolar_get_subscriber4_bill_credit_rate,(setter)CommunitySolar_set_subscriber4_bill_credit_rate, - PyDoc_STR("*sequence*: Subscriber 4 bill credit rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 4 bill credit rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_bill_credit_rate_escal", (getter)CommunitySolar_get_subscriber4_bill_credit_rate_escal,(setter)CommunitySolar_set_subscriber4_bill_credit_rate_escal, - PyDoc_STR("*float*: Subscriber 4 bill credit rate escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 4 bill credit rate escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_growth", (getter)CommunitySolar_get_subscriber4_growth,(setter)CommunitySolar_set_subscriber4_growth, - PyDoc_STR("*float*: Subscriber 4 growth [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 4 growth [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_payment_annual", (getter)CommunitySolar_get_subscriber4_payment_annual,(setter)CommunitySolar_set_subscriber4_payment_annual, - PyDoc_STR("*sequence*: Subscriber 4 payment annual [$/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 4 payment annual [$/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_payment_annual_escal", (getter)CommunitySolar_get_subscriber4_payment_annual_escal,(setter)CommunitySolar_set_subscriber4_payment_annual_escal, - PyDoc_STR("*float*: Subscriber 4 payment annual escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 4 payment annual escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_payment_generation", (getter)CommunitySolar_get_subscriber4_payment_generation,(setter)CommunitySolar_set_subscriber4_payment_generation, - PyDoc_STR("*sequence*: Subscriber 4 payment generation [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 4 payment generation [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_payment_generation_escal", (getter)CommunitySolar_get_subscriber4_payment_generation_escal,(setter)CommunitySolar_set_subscriber4_payment_generation_escal, - PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 1 payment generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_payment_upfront", (getter)CommunitySolar_get_subscriber4_payment_upfront,(setter)CommunitySolar_set_subscriber4_payment_upfront, - PyDoc_STR("*float*: Subscriber 4 payment up-front [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Subscriber 4 payment up-front [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subscriber4_share", (getter)CommunitySolar_get_subscriber4_share,(setter)CommunitySolar_set_subscriber4_share, - PyDoc_STR("*sequence*: Subscriber 4 share [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Subscriber 4 share [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"unsubscribed_payment_generation", (getter)CommunitySolar_get_unsubscribed_payment_generation,(setter)CommunitySolar_set_unsubscribed_payment_generation, - PyDoc_STR("*sequence*: Unsubscribed generation rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Unsubscribed generation rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"unsubscribed_payment_generation_escal", (getter)CommunitySolar_get_unsubscribed_payment_generation_escal,(setter)CommunitySolar_set_unsubscribed_payment_generation_escal, - PyDoc_STR("*float*: Unsubscribed generation escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Unsubscribed generation escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6080,11 +6080,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6162,19 +6162,19 @@ FuelCell_set_fuelcell_replacement_schedule(VarGroupObject *self, PyObject *value static PyGetSetDef FuelCell_getset[] = { {"en_fuelcell", (getter)FuelCell_get_en_fuelcell,(setter)FuelCell_set_en_fuelcell, - PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_computed_bank_capacity", (getter)FuelCell_get_fuelcell_computed_bank_capacity,(setter)FuelCell_set_fuelcell_computed_bank_capacity, - PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_per_kWh", (getter)FuelCell_get_fuelcell_per_kWh,(setter)FuelCell_set_fuelcell_per_kWh, - PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_replacement", (getter)FuelCell_get_fuelcell_replacement,(setter)FuelCell_set_fuelcell_replacement, PyDoc_STR("*sequence*: Fuel cell replacements per year [number/year]"), NULL}, {"fuelcell_replacement_option", (getter)FuelCell_get_fuelcell_replacement_option,(setter)FuelCell_set_fuelcell_replacement_option, - PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2"), + PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2"), NULL}, {"fuelcell_replacement_schedule", (getter)FuelCell_get_fuelcell_replacement_schedule,(setter)FuelCell_set_fuelcell_replacement_schedule, PyDoc_STR("*sequence*: Fuel cell replacements per year (user specified) [number/year]"), @@ -6292,11 +6292,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6326,10 +6326,10 @@ GridLimits_set_grid_curtailment_price_esc(VarGroupObject *self, PyObject *value, static PyGetSetDef GridLimits_getset[] = { {"grid_curtailment_price", (getter)GridLimits_get_grid_curtailment_price,(setter)GridLimits_set_grid_curtailment_price, - PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_curtailment_price_esc", (getter)GridLimits_get_grid_curtailment_price_esc,(setter)GridLimits_set_grid_curtailment_price_esc, - PyDoc_STR("*float*: Curtailment price escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Curtailment price escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6444,11 +6444,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6658,7 +6658,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6670,28 +6670,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6806,11 +6806,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6958,11 +6958,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -10074,12 +10074,6 @@ Outputs_get_npv_uti_pbi_income(VarGroupObject *self, void *closure) return PySAM_double_getter(SAM_Communitysolar_Outputs_npv_uti_pbi_income_nget, self->data_ptr); } -static PyObject * -Outputs_get_ppa_price(VarGroupObject *self, void *closure) -{ - return PySAM_double_getter(SAM_Communitysolar_Outputs_ppa_price_nget, self->data_ptr); -} - static PyObject * Outputs_get_present_value_fuel(VarGroupObject *self, void *closure) { @@ -11654,10 +11648,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcog", (getter)Outputs_get_lcog,(setter)0, PyDoc_STR("*float*: LCOG Levelized cost of generation [cents/kWh]"), @@ -11678,22 +11672,22 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: LCOG working capital interest [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"min_dscr", (getter)Outputs_get_min_dscr,(setter)0, PyDoc_STR("*float*: Minimum DSCR"), @@ -11720,10 +11714,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_fed_pbi_income", (getter)Outputs_get_npv_fed_pbi_income,(setter)0, PyDoc_STR("*float*: Present value of federal PBI income [$]"), @@ -11743,9 +11737,6 @@ static PyGetSetDef Outputs_getset[] = { {"npv_uti_pbi_income", (getter)Outputs_get_npv_uti_pbi_income,(setter)0, PyDoc_STR("*float*: Present value of utility PBI income [$]"), NULL}, -{"ppa_price", (getter)Outputs_get_ppa_price,(setter)0, - PyDoc_STR("*float*: PPA price in first year [cents/kWh]"), - NULL}, {"present_value_fuel", (getter)Outputs_get_present_value_fuel,(setter)0, PyDoc_STR("*float*: Present value of fuel O&M [$]"), NULL}, @@ -11759,10 +11750,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of non-fuel O&M [$]"), NULL}, {"project_return_aftertax_irr", (getter)Outputs_get_project_return_aftertax_irr,(setter)0, - PyDoc_STR("*float*: Internal rate of return (IRR, after-tax) [%]"), + PyDoc_STR("*float*: IRR Internal rate of return [%]"), NULL}, {"project_return_aftertax_npv", (getter)Outputs_get_project_return_aftertax_npv,(setter)0, - PyDoc_STR("*float*: Net present value (NPV, after-tax) [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"prop_tax_assessed_value", (getter)Outputs_get_prop_tax_assessed_value,(setter)0, PyDoc_STR("*float*: Assessed value of property for tax purposes [$]"), @@ -11786,19 +11777,19 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Equity [$]"), NULL}, {"subscriber1_npv", (getter)Outputs_get_subscriber1_npv,(setter)0, - PyDoc_STR("*float*: Subscriber 1 Net present value (NPV) [$]"), + PyDoc_STR("*float*: Subscriber 1 NPV Net present value [$]"), NULL}, {"subscriber2_npv", (getter)Outputs_get_subscriber2_npv,(setter)0, - PyDoc_STR("*float*: Subscriber 2 Net present value (NPV) [$]"), + PyDoc_STR("*float*: Subscriber 2 NPV Net present value [$]"), NULL}, {"subscriber3_npv", (getter)Outputs_get_subscriber3_npv,(setter)0, - PyDoc_STR("*float*: Subscriber 3 Net present value (NPV) [$]"), + PyDoc_STR("*float*: Subscriber 3 NPV Net present value [$]"), NULL}, {"subscriber4_npv", (getter)Outputs_get_subscriber4_npv,(setter)0, - PyDoc_STR("*float*: Subscriber 4 Net present value (NPV) [$]"), + PyDoc_STR("*float*: Subscriber 4 NPV Net present value [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -12189,12 +12180,11 @@ static PyMethodDef CommunitysolarModule_methods[] = { {"new", Communitysolar_new, METH_VARARGS, PyDoc_STR("new() -> Communitysolar")}, {"default", Communitysolar_default, METH_VARARGS, - PyDoc_STR("default(config) -> Communitysolar\n\nUse default attributes\n" - "`config` options:\n\n- \"PVWattsCommunitySolar\"")}, + PyDoc_STR("default(config) -> Communitysolar\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"PVWattsCommunitySolar\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Communitysolar_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Communitysolar\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Communitysolar\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Communitysolar_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Communitysolar\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Communitysolar\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/CspDsgLfUi.c b/modules/CspDsgLfUi.c new file mode 100644 index 00000000..abdefa7c --- /dev/null +++ b/modules/CspDsgLfUi.c @@ -0,0 +1,663 @@ +#include + +#include +#include + +#include "PySAM_utils.h" + + +/* + * Common Group + */ + +static PyTypeObject Common_Type; + +static PyObject * +Common_new(SAM_CspDsgLfUi data_ptr) +{ + PyObject* new_obj = Common_Type.tp_alloc(&Common_Type,0); + + VarGroupObject* Common_obj = (VarGroupObject*)new_obj; + + Common_obj->data_ptr = (SAM_table)data_ptr; + + return new_obj; +} + +/* Common methods */ + +static PyObject * +Common_assign(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_assign_from_dict(self->data_ptr, dict, "CspDsgLfUi", "Common")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Common_replace(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + PyTypeObject* tp = &Common_Type; + + if (!PySAM_replace_from_dict(tp, self->data_ptr, dict, "CspDsgLfUi", "Common")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Common_export(VarGroupObject *self, PyObject *args) +{ + PyTypeObject* tp = &Common_Type; + PyObject* dict = PySAM_export_to_dict((PyObject *) self, tp); + return dict; +} + +static PyMethodDef Common_methods[] = { + {"assign", (PyCFunction)Common_assign, METH_VARARGS, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, + {"replace", (PyCFunction)Common_replace, METH_VARARGS, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, + {"export", (PyCFunction)Common_export, METH_VARARGS, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +Common_get_P_boil(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_CspDsgLfUi_Common_P_boil_nget, self->data_ptr); +} + +static int +Common_set_P_boil(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_CspDsgLfUi_Common_P_boil_nset, self->data_ptr); +} + +static PyObject * +Common_get_deltaT_subcooled(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_CspDsgLfUi_Common_deltaT_subcooled_nget, self->data_ptr); +} + +static int +Common_set_deltaT_subcooled(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_CspDsgLfUi_Common_deltaT_subcooled_nset, self->data_ptr); +} + +static PyObject * +Common_get_use_quality_or_subcooled(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_CspDsgLfUi_Common_use_quality_or_subcooled_nget, self->data_ptr); +} + +static int +Common_set_use_quality_or_subcooled(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_CspDsgLfUi_Common_use_quality_or_subcooled_nset, self->data_ptr); +} + +static PyGetSetDef Common_getset[] = { +{"P_boil", (getter)Common_get_P_boil,(setter)Common_set_P_boil, + PyDoc_STR("*float*: Boiling pressure [bar]\n\n**Required:**\nTrue"), + NULL}, +{"deltaT_subcooled", (getter)Common_get_deltaT_subcooled,(setter)Common_set_deltaT_subcooled, + PyDoc_STR("*float*: Subcooled temperature difference from saturation temp [C]\n\n**Required:**\nTrue"), + NULL}, +{"use_quality_or_subcooled", (getter)Common_get_use_quality_or_subcooled,(setter)Common_set_use_quality_or_subcooled, + PyDoc_STR("*float*: 0 = 2 phase outlet, 1 = subcooled\n\n**Required:**\nTrue"), + NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject Common_Type = { + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyVarObject_HEAD_INIT(NULL, 0) + "CspDsgLfUi.Common", /*tp_name*/ + sizeof(VarGroupObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + (getattrfunc)0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_reserved*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistofnset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + Common_methods, /*tp_methods*/ + 0, /*tp_members*/ + Common_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictofnset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + + +/* + * Outputs Group + */ + +static PyTypeObject Outputs_Type; + +static PyObject * +Outputs_new(SAM_CspDsgLfUi data_ptr) +{ + PyObject* new_obj = Outputs_Type.tp_alloc(&Outputs_Type,0); + + VarGroupObject* Outputs_obj = (VarGroupObject*)new_obj; + + Outputs_obj->data_ptr = (SAM_table)data_ptr; + + return new_obj; +} + +/* Outputs methods */ + +static PyObject * +Outputs_assign(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_assign_from_dict(self->data_ptr, dict, "CspDsgLfUi", "Outputs")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Outputs_replace(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + PyTypeObject* tp = &Outputs_Type; + + if (!PySAM_replace_from_dict(tp, self->data_ptr, dict, "CspDsgLfUi", "Outputs")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Outputs_export(VarGroupObject *self, PyObject *args) +{ + PyTypeObject* tp = &Outputs_Type; + PyObject* dict = PySAM_export_to_dict((PyObject *) self, tp); + return dict; +} + +static PyMethodDef Outputs_methods[] = { + {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, + {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, + {"export", (PyCFunction)Outputs_export, METH_VARARGS, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +Outputs_get_T_hot_out_target(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_CspDsgLfUi_Outputs_T_hot_out_target_nget, self->data_ptr); +} + +static PyObject * +Outputs_get_T_saturation(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_CspDsgLfUi_Outputs_T_saturation_nget, self->data_ptr); +} + +static PyGetSetDef Outputs_getset[] = { +{"T_hot_out_target", (getter)Outputs_get_T_hot_out_target,(setter)0, + PyDoc_STR("*float*: Target outlet temperature [C]"), + NULL}, +{"T_saturation", (getter)Outputs_get_T_saturation,(setter)0, + PyDoc_STR("*float*: Saturation pressure [C]"), + NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject Outputs_Type = { + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyVarObject_HEAD_INIT(NULL, 0) + "CspDsgLfUi.Outputs", /*tp_name*/ + sizeof(VarGroupObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + (getattrfunc)0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_reserved*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistofnset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + Outputs_methods, /*tp_methods*/ + 0, /*tp_members*/ + Outputs_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictofnset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* + * CspDsgLfUi + */ + +static PyTypeObject CspDsgLfUi_Type; + +static CmodObject * +newCspDsgLfUiObject(void* data_ptr) +{ + CmodObject *self; + self = PyObject_New(CmodObject, &CspDsgLfUi_Type); + + PySAM_TECH_ATTR() + + PyObject* Common_obj = Common_new(self->data_ptr); + PyDict_SetItemString(attr_dict, "Common", Common_obj); + Py_DECREF(Common_obj); + + PyObject* Outputs_obj = Outputs_new(self->data_ptr); + PyDict_SetItemString(attr_dict, "Outputs", Outputs_obj); + Py_DECREF(Outputs_obj); + + return self; +} + +/* CspDsgLfUi methods */ + +static void +CspDsgLfUi_dealloc(CmodObject *self) +{ + Py_XDECREF(self->x_attr); + + if (!self->data_owner_ptr) { + SAM_error error = new_error(); + SAM_table_destruct(self->data_ptr, &error); + PySAM_has_error(error); + } + PyObject_Del(self); +} + + +static PyObject * +CspDsgLfUi_execute(CmodObject *self, PyObject *args) +{ + int verbosity = 0; + + if (!PyArg_ParseTuple(args, "|i", &verbosity)) + return NULL; + + SAM_error error = new_error(); + SAM_CspDsgLfUi_execute(self->data_ptr, verbosity, &error); + if (PySAM_has_error(error )) return NULL; + Py_INCREF(Py_None); + return Py_None; +} + + +static PyObject * +CspDsgLfUi_assign(CmodObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_assign_from_nested_dict((PyObject*)self, self->x_attr, self->data_ptr, dict, "CspDsgLfUi")) + return NULL; + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +CspDsgLfUi_replace(CmodObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_replace_from_nested_dict((PyObject*)self, self->x_attr, self->data_ptr, dict, "CspDsgLfUi")) + return NULL; + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +CspDsgLfUi_export(CmodObject *self, PyObject *args) +{ + return PySAM_export_to_nested_dict((PyObject *) self, self->x_attr); +} + +static PyObject * +CspDsgLfUi_value(CmodObject *self, PyObject *args) +{ + return Cmod_value(self, args); +} + +static PyObject * +CspDsgLfUi_unassign(CmodObject *self, PyObject *args) +{ + return Cmod_unassign(self, args); +} + +static PyMethodDef CspDsgLfUi_methods[] = { + {"execute", (PyCFunction)CspDsgLfUi_execute, METH_VARARGS, + PyDoc_STR("execute(int verbosity) -> None\n Execute simulation with verbosity level 0 (default) or 1")}, + {"assign", (PyCFunction)CspDsgLfUi_assign, METH_VARARGS, + PyDoc_STR("assign(dict) -> None\n Assign attributes from nested dictionary, except for Outputs\n\n``nested_dict = { 'Common': { var: val, ...}, ...}``")}, + {"replace", (PyCFunction)CspDsgLfUi_replace, METH_VARARGS, + PyDoc_STR("replace(dict) -> None\n Replace attributes from nested dictionary, except for Outputs. Unassigns all values in each Group then assigns from the input dict.\n\n``nested_dict = { 'Common': { var: val, ...}, ...}``")}, + {"export", (PyCFunction)CspDsgLfUi_export, METH_VARARGS, + PyDoc_STR("export() -> dict\n Export attributes into nested dictionary")}, + {"value", (PyCFunction)CspDsgLfUi_value, METH_VARARGS, + PyDoc_STR("value(name, optional value) -> Union[None, float, dict, sequence, str]\n Get or set by name a value in any of the variable groups.")}, + {"unassign", (PyCFunction)CspDsgLfUi_unassign, METH_VARARGS, + PyDoc_STR("unassign(name) -> None\n Unassign a value in any of the variable groups.")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +CspDsgLfUi_getattro(CmodObject *self, PyObject *name) +{ + return PySAM_get_attr((PyObject*) self, (PyObject*) self->x_attr, name); +} + +static int +CspDsgLfUi_setattr(CmodObject *self, const char *name, PyObject *v) +{ + return PySAM_set_attr((PyObject*)self, (PyObject*)self->x_attr, name, v); +} + +static PyTypeObject CspDsgLfUi_Type = { + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyVarObject_HEAD_INIT(NULL, 0) + "CspDsgLfUi", /*tp_name*/ + sizeof(CmodObject),/*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + (destructor)CspDsgLfUi_dealloc, /*tp_dealloc*/ + 0, /*tp_print*/ + (getattrfunc)0, /*tp_getattr*/ + (setattrfunc)CspDsgLfUi_setattr, /*tp_setattr*/ + 0, /*tp_reserved*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + (getattrofunc)CspDsgLfUi_getattro, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + "This class contains all the variable information for running a simulation. Variables are grouped together in the subclasses as properties. If property assignments are the wrong type, an error is thrown.", /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistofnset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + CspDsgLfUi_methods, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictofnset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + +/* --------------------------------------------------------------------- */ + + +/* Function of no arguments returning new CspDsgLfUi object */ + +static PyObject * +CspDsgLfUi_new(PyObject *self, PyObject *args) +{ + CmodObject *rv; + rv = newCspDsgLfUiObject(0); + if (rv == NULL) + return NULL; + + rv->data_owner_ptr = NULL; + return (PyObject *)rv; +} + +static PyObject * +CspDsgLfUi_wrap(PyObject *self, PyObject *args) +{ + CmodObject *rv; + long long int ptr = 0; // 64 bit arch + if (!PyArg_ParseTuple(args, "L:wrap", &ptr)){ + PyErr_BadArgument(); + return NULL; + } + rv = newCspDsgLfUiObject((void*)ptr); + if (rv == NULL) + return NULL; + + rv->data_owner_ptr = NULL; + return (PyObject *)rv; +} + +static PyObject * +CspDsgLfUi_default(PyObject *self, PyObject *args) +{ + CmodObject *rv; + char* def = 0; + if (!PyArg_ParseTuple(args, "s:default", &def)){ + PyErr_BadArgument(); + return NULL; + } + rv = newCspDsgLfUiObject(0); + if (rv == NULL) + return NULL; + + rv->data_owner_ptr = NULL; + if (PySAM_load_defaults((PyObject*)rv, rv->x_attr, rv->data_ptr, "CspDsgLfUi", def) < 0) { + CspDsgLfUi_dealloc(rv); + return NULL; + } + return (PyObject *)rv; +} + +static PyObject * +CspDsgLfUi_from_existing(PyObject *self, PyObject *args) +{ + CmodObject *rv; + PyObject * module = 0; + char* def = 0; + if (!PyArg_ParseTuple(args, "O|s:from_existing", &module, &def)){ + PyErr_BadArgument(); + return NULL; + } + CmodObject *module_obj = (CmodObject *)module; + SAM_table ptr = module_obj->data_ptr; + + // do a rough validity check on the data by checking its size + SAM_error error = new_error(); + int data_size = SAM_table_size(ptr, &error); + if (PySAM_has_error(error)) + goto fail; + if (data_size < 0) + goto fail; + + rv = newCspDsgLfUiObject((void*)ptr); + if (rv == NULL) + goto fail; + rv->data_owner_ptr = module; + if (!def) + return (PyObject *)rv; + PySAM_load_defaults((PyObject*)rv, rv->x_attr, rv->data_ptr, "CspDsgLfUi", def); + return (PyObject *)rv; + + fail: + Py_DECREF(module); + return NULL; +}/* ---------- */ + + +/* List of functions defined in the module */ + +static PyMethodDef CspDsgLfUiModule_methods[] = { + {"new", CspDsgLfUi_new, METH_VARARGS, + PyDoc_STR("new() -> CspDsgLfUi")}, + {"default", CspDsgLfUi_default, METH_VARARGS, + PyDoc_STR("default(config) -> CspDsgLfUi\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, + {"wrap", CspDsgLfUi_wrap, METH_VARARGS, + PyDoc_STR("wrap(ssc_data_t) -> CspDsgLfUi\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, + {"from_existing", CspDsgLfUi_from_existing, METH_VARARGS, + PyDoc_STR("from_existing(data, optional config) -> CspDsgLfUi\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, + {NULL, NULL} /* sentinel */ +}; + +PyDoc_STRVAR(module_doc, + "CspDsgLfUi"); + + +static int +CspDsgLfUiModule_exec(PyObject *m) +{ + /* Finalize the type object including setting type of the new type + * object; doing it here is required for portability, too. */ + + if (PySAM_load_lib(m) < 0) goto fail; + + CspDsgLfUi_Type.tp_dict = PyDict_New(); + if (!CspDsgLfUi_Type.tp_dict) { goto fail; } + + /// Add the Common type object to CspDsgLfUi_Type + if (PyType_Ready(&Common_Type) < 0) { goto fail; } + PyDict_SetItemString(CspDsgLfUi_Type.tp_dict, + "Common", + (PyObject*)&Common_Type); + Py_DECREF(&Common_Type); + + /// Add the Outputs type object to CspDsgLfUi_Type + if (PyType_Ready(&Outputs_Type) < 0) { goto fail; } + PyDict_SetItemString(CspDsgLfUi_Type.tp_dict, + "Outputs", + (PyObject*)&Outputs_Type); + Py_DECREF(&Outputs_Type); + + /// Add the CspDsgLfUi type object to the module + if (PyType_Ready(&CspDsgLfUi_Type) < 0) { goto fail; } + PyModule_AddObject(m, + "CspDsgLfUi", + (PyObject*)&CspDsgLfUi_Type); + + return 0; + fail: + Py_XDECREF(m); + return -1; +} + +static struct PyModuleDef_Slot CspDsgLfUiModule_slots[] = { + {Py_mod_exec, CspDsgLfUiModule_exec}, + {0, NULL}, +}; + +static struct PyModuleDef CspDsgLfUiModule = { + PyModuleDef_HEAD_INIT, + "CspDsgLfUi", + module_doc, + 0, + CspDsgLfUiModule_methods, + CspDsgLfUiModule_slots, + NULL, + NULL, + NULL +}; + +/* Export function for the module */ + +PyMODINIT_FUNC +PyInit_CspDsgLfUi(void) +{ + return PyModuleDef_Init(&CspDsgLfUiModule); +} \ No newline at end of file diff --git a/modules/DsgFluxPreprocess.c b/modules/DsgFluxPreprocess.c index bb25a53b..781b5c33 100644 --- a/modules/DsgFluxPreprocess.c +++ b/modules/DsgFluxPreprocess.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -307,61 +307,61 @@ Common_set_sh_q_loss_flux(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"CT", (getter)Common_get_CT,(setter)Common_set_CT, - PyDoc_STR("*float*: Cooling type\n\n*Required*: True"), + PyDoc_STR("*float*: Cooling type\n\n**Required:**\nTrue"), NULL}, {"P_HP_in", (getter)Common_get_P_HP_in,(setter)Common_set_P_HP_in, - PyDoc_STR("*float*: HP Turbine inlet pressure [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: HP Turbine inlet pressure [bar]\n\n**Required:**\nTrue"), NULL}, {"P_HP_out", (getter)Common_get_P_HP_out,(setter)Common_set_P_HP_out, - PyDoc_STR("*float*: HP Turbine outlet pressure [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: HP Turbine outlet pressure [bar]\n\n**Required:**\nTrue"), NULL}, {"P_cycle_des", (getter)Common_get_P_cycle_des,(setter)Common_set_P_cycle_des, - PyDoc_STR("*float*: Cycle power output at design [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Cycle power output at design [MW]\n\n**Required:**\nTrue"), NULL}, {"Q_rec_des", (getter)Common_get_Q_rec_des,(setter)Common_set_Q_rec_des, - PyDoc_STR("*float*: Receiver thermal power at des. [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver thermal power at des. [MW]\n\n**Required:**\nTrue"), NULL}, {"T_ITD_des", (getter)Common_get_T_ITD_des,(setter)Common_set_T_ITD_des, - PyDoc_STR("*float*: T_cond - T_db [C]\n\n*Required*: True"), + PyDoc_STR("*float*: T_cond - T_db [C]\n\n**Required:**\nTrue"), NULL}, {"T_amb_des", (getter)Common_get_T_amb_des,(setter)Common_set_T_amb_des, - PyDoc_STR("*float*: Ambient (wb) temp at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient (wb) temp at design [C]\n\n**Required:**\nTrue"), NULL}, {"T_approach", (getter)Common_get_T_approach,(setter)Common_set_T_approach, - PyDoc_STR("*float*: dT cold cooling water - T_wb [C]\n\n*Required*: True"), + PyDoc_STR("*float*: dT cold cooling water - T_wb [C]\n\n**Required:**\nTrue"), NULL}, {"T_rh_out_ref", (getter)Common_get_T_rh_out_ref,(setter)Common_set_T_rh_out_ref, - PyDoc_STR("*float*: Reheater outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Reheater outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_sh_out_ref", (getter)Common_get_T_sh_out_ref,(setter)Common_set_T_sh_out_ref, - PyDoc_STR("*float*: Superheater outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Superheater outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"b_q_loss_flux", (getter)Common_get_b_q_loss_flux,(setter)Common_set_b_q_loss_flux, - PyDoc_STR("*float*: Boiler heat loss flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Boiler heat loss flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"dT_cooling_ref", (getter)Common_get_dT_cooling_ref,(setter)Common_set_dT_cooling_ref, - PyDoc_STR("*float*: dT of cooling water [C]\n\n*Required*: True"), + PyDoc_STR("*float*: dT of cooling water [C]\n\n**Required:**\nTrue"), NULL}, {"eta_cycle_des", (getter)Common_get_eta_cycle_des,(setter)Common_set_eta_cycle_des, - PyDoc_STR("*float*: Cycle thermal efficiency at des.\n\n*Required*: True"), + PyDoc_STR("*float*: Cycle thermal efficiency at des.\n\n**Required:**\nTrue"), NULL}, {"max_flux_b", (getter)Common_get_max_flux_b,(setter)Common_set_max_flux_b, - PyDoc_STR("*float*: Max allow. boiler flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Max allow. boiler flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"max_flux_rh", (getter)Common_get_max_flux_rh,(setter)Common_set_max_flux_rh, - PyDoc_STR("*float*: Max allow. reheater flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Max allow. reheater flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"max_flux_sh", (getter)Common_get_max_flux_sh,(setter)Common_set_max_flux_sh, - PyDoc_STR("*float*: Max allow. superheater flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Max allow. superheater flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"rh_frac_ref", (getter)Common_get_rh_frac_ref,(setter)Common_set_rh_frac_ref, - PyDoc_STR("*float*: Mdot fraction to reheat at design\n\n*Required*: True"), + PyDoc_STR("*float*: Mdot fraction to reheat at design\n\n**Required:**\nTrue"), NULL}, {"rh_q_loss_flux", (getter)Common_get_rh_q_loss_flux,(setter)Common_set_rh_q_loss_flux, - PyDoc_STR("*float*: Reheater heat loss flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Reheater heat loss flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"sh_q_loss_flux", (getter)Common_get_sh_q_loss_flux,(setter)Common_set_sh_q_loss_flux, - PyDoc_STR("*float*: Superheater heat loss flux [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Superheater heat loss flux [kW/m2]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -476,11 +476,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -846,12 +846,11 @@ static PyMethodDef DsgFluxPreprocessModule_methods[] = { {"new", DsgFluxPreprocess_new, METH_VARARGS, PyDoc_STR("new() -> DsgFluxPreprocess")}, {"default", DsgFluxPreprocess_default, METH_VARARGS, - PyDoc_STR("default(config) -> DsgFluxPreprocess\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> DsgFluxPreprocess\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", DsgFluxPreprocess_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> DsgFluxPreprocess\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> DsgFluxPreprocess\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", DsgFluxPreprocess_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> DsgFluxPreprocess\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> DsgFluxPreprocess\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Equpartflip.c b/modules/Equpartflip.c index a1029ad6..fae80847 100644 --- a/modules/Equpartflip.c +++ b/modules/Equpartflip.c @@ -69,11 +69,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -163,25 +163,25 @@ Revenue_set_ppa_soln_tolerance(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Revenue_getset[] = { {"ppa_escalation", (getter)Revenue_get_ppa_escalation,(setter)Revenue_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA price in first year [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: PPA price in first year input [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ppa_soln_max", (getter)Revenue_get_ppa_soln_max,(setter)Revenue_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Revenue_get_ppa_soln_max_iterations,(setter)Revenue_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Revenue_get_ppa_soln_min,(setter)Revenue_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_mode", (getter)Revenue_get_ppa_soln_mode,(setter)Revenue_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Revenue_get_ppa_soln_tolerance,(setter)Revenue_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-5"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -296,11 +296,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -570,70 +570,70 @@ FinancialParameters_set_system_heat_rate(VarGroupObject *self, PyObject *value, static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_salvage_percentage", (getter)FinancialParameters_get_batt_salvage_percentage,(setter)FinancialParameters_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -748,11 +748,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1142,100 +1142,100 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1350,11 +1350,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1396,13 +1396,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1517,11 +1517,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1767,64 +1767,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1939,11 +1939,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2429,124 +2429,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2661,11 +2661,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3727,268 +3727,268 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4103,11 +4103,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4161,16 +4161,16 @@ SystemOutput_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemOutput_getset[] = { {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4285,11 +4285,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4307,7 +4307,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4422,11 +4422,11 @@ Recapitalization_export(VarGroupObject *self, PyObject *args) static PyMethodDef Recapitalization_methods[] = { {"assign", (PyCFunction)Recapitalization_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Recapitalization_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"export", (PyCFunction)Recapitalization_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4480,16 +4480,16 @@ Recapitalization_set_system_use_recapitalization(VarGroupObject *self, PyObject static PyGetSetDef Recapitalization_getset[] = { {"system_lifetime_recapitalize", (getter)Recapitalization_get_system_lifetime_recapitalize,(setter)Recapitalization_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)Recapitalization_get_system_recapitalization_cost,(setter)Recapitalization_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)Recapitalization_get_system_recapitalization_escalation,(setter)Recapitalization_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)Recapitalization_get_system_use_recapitalization,(setter)Recapitalization_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4604,11 +4604,11 @@ TimeOfDelivery_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDelivery_methods[] = { {"assign", (PyCFunction)TimeOfDelivery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDelivery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDelivery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4782,46 +4782,46 @@ TimeOfDelivery_set_system_use_lifetime_output(VarGroupObject *self, PyObject *va static PyGetSetDef TimeOfDelivery_getset[] = { {"dispatch_factor1", (getter)TimeOfDelivery_get_dispatch_factor1,(setter)TimeOfDelivery_set_dispatch_factor1, - PyDoc_STR("*float*: TOD factor for period 1\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 1\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor2", (getter)TimeOfDelivery_get_dispatch_factor2,(setter)TimeOfDelivery_set_dispatch_factor2, - PyDoc_STR("*float*: TOD factor for period 2\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 2\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor3", (getter)TimeOfDelivery_get_dispatch_factor3,(setter)TimeOfDelivery_set_dispatch_factor3, - PyDoc_STR("*float*: TOD factor for period 3\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 3\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor4", (getter)TimeOfDelivery_get_dispatch_factor4,(setter)TimeOfDelivery_set_dispatch_factor4, - PyDoc_STR("*float*: TOD factor for period 4\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 4\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor5", (getter)TimeOfDelivery_get_dispatch_factor5,(setter)TimeOfDelivery_set_dispatch_factor5, - PyDoc_STR("*float*: TOD factor for period 5\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 5\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor6", (getter)TimeOfDelivery_get_dispatch_factor6,(setter)TimeOfDelivery_set_dispatch_factor6, - PyDoc_STR("*float*: TOD factor for period 6\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 6\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor7", (getter)TimeOfDelivery_get_dispatch_factor7,(setter)TimeOfDelivery_set_dispatch_factor7, - PyDoc_STR("*float*: TOD factor for period 7\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 7\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor8", (getter)TimeOfDelivery_get_dispatch_factor8,(setter)TimeOfDelivery_set_dispatch_factor8, - PyDoc_STR("*float*: TOD factor for period 8\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 8\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor9", (getter)TimeOfDelivery_get_dispatch_factor9,(setter)TimeOfDelivery_set_dispatch_factor9, - PyDoc_STR("*float*: TOD factor for period 9\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 9\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDelivery_get_dispatch_factors_ts,(setter)TimeOfDelivery_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDelivery_get_dispatch_sched_weekday,(setter)TimeOfDelivery_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDelivery_get_dispatch_sched_weekend,(setter)TimeOfDelivery_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDelivery_get_ppa_multiplier_model,(setter)TimeOfDelivery_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)TimeOfDelivery_get_system_use_lifetime_output,(setter)TimeOfDelivery_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4936,11 +4936,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5073,11 +5073,11 @@ ConstructionFinancing_export(VarGroupObject *self, PyObject *args) static PyMethodDef ConstructionFinancing_methods[] = { {"assign", (PyCFunction)ConstructionFinancing_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ConstructionFinancing_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"export", (PyCFunction)ConstructionFinancing_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5095,7 +5095,7 @@ ConstructionFinancing_set_construction_financing_cost(VarGroupObject *self, PyOb static PyGetSetDef ConstructionFinancing_getset[] = { {"construction_financing_cost", (getter)ConstructionFinancing_get_construction_financing_cost,(setter)ConstructionFinancing_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5210,11 +5210,11 @@ OtherCapitalCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef OtherCapitalCosts_methods[] = { {"assign", (PyCFunction)OtherCapitalCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)OtherCapitalCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)OtherCapitalCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5280,19 +5280,19 @@ OtherCapitalCosts_set_months_working_reserve(VarGroupObject *self, PyObject *val static PyGetSetDef OtherCapitalCosts_getset[] = { {"cost_dev_fee_percent", (getter)OtherCapitalCosts_get_cost_dev_fee_percent,(setter)OtherCapitalCosts_set_cost_dev_fee_percent, - PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_equity_closing", (getter)OtherCapitalCosts_get_cost_equity_closing,(setter)OtherCapitalCosts_set_cost_equity_closing, - PyDoc_STR("*float*: Equity closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Equity closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)OtherCapitalCosts_get_cost_other_financing,(setter)OtherCapitalCosts_set_cost_other_financing, - PyDoc_STR("*float*: [$]\n\n*Info*: Other financing cost\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: [$]\n\n**Info:**\nOther financing cost\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)OtherCapitalCosts_get_months_receivables_reserve,(setter)OtherCapitalCosts_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)OtherCapitalCosts_get_months_working_reserve,(setter)OtherCapitalCosts_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5407,11 +5407,11 @@ IRRTargets_export(VarGroupObject *self, PyObject *args) static PyMethodDef IRRTargets_methods[] = { {"assign", (PyCFunction)IRRTargets_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IRRTargets_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IRRTargets_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IRRTargets_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IRRTargets_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IRRTargets_vals = { var: val, ...}``")}, {"export", (PyCFunction)IRRTargets_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5501,25 +5501,25 @@ IRRTargets_set_tax_investor_preflip_tax_percent(VarGroupObject *self, PyObject * static PyGetSetDef IRRTargets_getset[] = { {"flip_target_percent", (getter)IRRTargets_get_flip_target_percent,(setter)IRRTargets_set_flip_target_percent, - PyDoc_STR("*float*: Investor percent of project benefit [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Investor percent of project benefit [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)IRRTargets_get_flip_target_year,(setter)IRRTargets_set_flip_target_year, - PyDoc_STR("*float*: Target flip year\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Target flip year\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_equity_percent", (getter)IRRTargets_get_tax_investor_equity_percent,(setter)IRRTargets_set_tax_investor_equity_percent, - PyDoc_STR("*float*: Investor equity [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor equity [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_postflip_cash_percent", (getter)IRRTargets_get_tax_investor_postflip_cash_percent,(setter)IRRTargets_set_tax_investor_postflip_cash_percent, - PyDoc_STR("*float*: Investor post-flip cash [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Investor post-flip cash [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_postflip_tax_percent", (getter)IRRTargets_get_tax_investor_postflip_tax_percent,(setter)IRRTargets_set_tax_investor_postflip_tax_percent, - PyDoc_STR("*float*: Investor post-flip tax benefit [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Investor post-flip tax benefit [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_preflip_cash_percent", (getter)IRRTargets_get_tax_investor_preflip_cash_percent,(setter)IRRTargets_set_tax_investor_preflip_cash_percent, - PyDoc_STR("*float*: Investor pre-flip cash [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor pre-flip cash [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_preflip_tax_percent", (getter)IRRTargets_get_tax_investor_preflip_tax_percent,(setter)IRRTargets_set_tax_investor_preflip_tax_percent, - PyDoc_STR("*float*: Investor pre-flip tax benefit [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor pre-flip tax benefit [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5634,11 +5634,11 @@ DeveloperCapitalRecovery_export(VarGroupObject *self, PyObject *args) static PyMethodDef DeveloperCapitalRecovery_methods[] = { {"assign", (PyCFunction)DeveloperCapitalRecovery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``DeveloperCapitalRecovery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``DeveloperCapitalRecovery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)DeveloperCapitalRecovery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``DeveloperCapitalRecovery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``DeveloperCapitalRecovery_vals = { var: val, ...}``")}, {"export", (PyCFunction)DeveloperCapitalRecovery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5668,10 +5668,10 @@ DeveloperCapitalRecovery_set_sponsor_cap_recovery_year(VarGroupObject *self, PyO static PyGetSetDef DeveloperCapitalRecovery_getset[] = { {"sponsor_cap_recovery_mode", (getter)DeveloperCapitalRecovery_get_sponsor_cap_recovery_mode,(setter)DeveloperCapitalRecovery_set_sponsor_cap_recovery_mode, - PyDoc_STR("*float*: Developer Capital Recovery\n\n*Options*: 0=Time, 1=Full Capital Recovery\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Developer Capital Recovery\n\n**Options:**\n0=Time, 1=Full Capital Recovery\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"sponsor_cap_recovery_year", (getter)DeveloperCapitalRecovery_get_sponsor_cap_recovery_year,(setter)DeveloperCapitalRecovery_set_sponsor_cap_recovery_year, - PyDoc_STR("*float*: Duration (in years) [years]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Duration (in years) [years]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5786,11 +5786,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6000,7 +6000,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6012,28 +6012,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6148,11 +6148,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6300,11 +6300,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6397,22 +6397,22 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6527,11 +6527,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11451,34 +11451,34 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lppa_nom", (getter)Outputs_get_lppa_nom,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price nominal [cents/kWh]"), NULL}, {"lppa_real", (getter)Outputs_get_lppa_real,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (real) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price real [cents/kWh]"), NULL}, {"nominal_discount_rate", (getter)Outputs_get_nominal_discount_rate,(setter)0, PyDoc_STR("*float*: Nominal discount rate [%]"), @@ -11496,16 +11496,16 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_ppa_revenue", (getter)Outputs_get_npv_ppa_revenue,(setter)0, PyDoc_STR("*float*: Present value of PPA revenue [$]"), NULL}, {"ppa", (getter)Outputs_get_ppa,(setter)0, - PyDoc_STR("*float*: PPA price (Year 1) [cents/kWh]"), + PyDoc_STR("*float*: PPA price in Year 1 [cents/kWh]"), NULL}, {"ppa_escalation", (getter)Outputs_get_ppa_escalation,(setter)0, PyDoc_STR("*float*: PPA price escalation [%/year]"), @@ -11574,7 +11574,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Investor pre-tax NPV [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -11973,12 +11973,11 @@ static PyMethodDef EqupartflipModule_methods[] = { {"new", Equpartflip_new, METH_VARARGS, PyDoc_STR("new() -> Equpartflip")}, {"default", Equpartflip_default, METH_VARARGS, - PyDoc_STR("default(config) -> Equpartflip\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerAllEquityPartnershipFlip\"\n- \"DSLFAllEquityPartnershipFlip\"\n- \"EmpiricalTroughAllEquityPartnershipFlip\"\n- \"FlatPlatePVAllEquityPartnershipFlip\"\n- \"GenericBatteryAllEquityPartnershipFlip\"\n- \"GenericCSPSystemAllEquityPartnershipFlip\"\n- \"GenericSystemAllEquityPartnershipFlip\"\n- \"GeothermalPowerAllEquityPartnershipFlip\"\n- \"HighXConcentratingPVAllEquityPartnershipFlip\"\n- \"MSLFAllEquityPartnershipFlip\"\n- \"MSPTAllEquityPartnershipFlip\"\n- \"PVBatteryAllEquityPartnershipFlip\"\n- \"PVWattsAllEquityPartnershipFlip\"\n- \"PhysicalTroughAllEquityPartnershipFlip\"\n- \"StandaloneBatteryAllEquityPartnershipFlip\"\n- \"WindPowerAllEquityPartnershipFlip\"")}, + PyDoc_STR("default(config) -> Equpartflip\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerAllEquityPartnershipFlip\"*\n\n - *\"DSLFAllEquityPartnershipFlip\"*\n\n - *\"EmpiricalTroughAllEquityPartnershipFlip\"*\n\n - *\"FlatPlatePVAllEquityPartnershipFlip\"*\n\n - *\"GenericBatteryAllEquityPartnershipFlip\"*\n\n - *\"GenericCSPSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericSystemAllEquityPartnershipFlip\"*\n\n - *\"GeothermalPowerAllEquityPartnershipFlip\"*\n\n - *\"HighXConcentratingPVAllEquityPartnershipFlip\"*\n\n - *\"MSLFAllEquityPartnershipFlip\"*\n\n - *\"MSPTAllEquityPartnershipFlip\"*\n\n - *\"PVBatteryAllEquityPartnershipFlip\"*\n\n - *\"PVWattsAllEquityPartnershipFlip\"*\n\n - *\"PhysicalTroughAllEquityPartnershipFlip\"*\n\n - *\"StandaloneBatteryAllEquityPartnershipFlip\"*\n\n - *\"WindPowerAllEquityPartnershipFlip\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Equpartflip_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Equpartflip\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Equpartflip\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Equpartflip_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Equpartflip\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Equpartflip\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/EtesElectricResistance.c b/modules/EtesElectricResistance.c index 9c21999a..3a80e04e 100644 --- a/modules/EtesElectricResistance.c +++ b/modules/EtesElectricResistance.c @@ -69,11 +69,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ SolarResource_set_solar_resource_file(VarGroupObject *self, PyObject *value, voi static PyGetSetDef SolarResource_getset[] = { {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, - PyDoc_STR("*str*: Local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: False"), + PyDoc_STR("*str*: Local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ SystemControl_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemControl_methods[] = { {"assign", (PyCFunction)SystemControl_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemControl_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemControl_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemControl_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemControl_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -552,88 +552,88 @@ SystemControl_set_vacuum_arrays(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SystemControl_getset[] = { {"bop_par", (getter)SystemControl_get_bop_par,(setter)SystemControl_set_bop_par, - PyDoc_STR("*float*: Balance of plant parasitic power fraction [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"bop_par_0", (getter)SystemControl_get_bop_par_0,(setter)SystemControl_set_bop_par_0, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - const coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - const coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_1", (getter)SystemControl_get_bop_par_1,(setter)SystemControl_set_bop_par_1, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - linear coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - linear coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_2", (getter)SystemControl_get_bop_par_2,(setter)SystemControl_set_bop_par_2, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - quadratic coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - quadratic coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_f", (getter)SystemControl_get_bop_par_f,(setter)SystemControl_set_bop_par_f, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - mult frac\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - mult frac\n\n**Required:**\nTrue"), NULL}, {"disp_csu_cost", (getter)SystemControl_get_disp_csu_cost,(setter)SystemControl_set_disp_csu_cost, - PyDoc_STR("*float*: Cycle startup cost [$/MWe-cycle/start]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Cycle startup cost [$/MWe-cycle/start]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_down_time_min", (getter)SystemControl_get_disp_down_time_min,(setter)SystemControl_set_disp_down_time_min, - PyDoc_STR("*float*: Minimum time requirement for cycle to not generate power [hr]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Minimum time requirement for cycle to not generate power [hr]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_frequency", (getter)SystemControl_get_disp_frequency,(setter)SystemControl_set_disp_frequency, - PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_horizon", (getter)SystemControl_get_disp_horizon,(setter)SystemControl_set_disp_horizon, - PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_hsu_cost", (getter)SystemControl_get_disp_hsu_cost,(setter)SystemControl_set_disp_hsu_cost, - PyDoc_STR("*float*: Heater startup cost [$/MWe-cycle/start]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Heater startup cost [$/MWe-cycle/start]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_max_iter", (getter)SystemControl_get_disp_max_iter,(setter)SystemControl_set_disp_max_iter, - PyDoc_STR("*float*: Max number of dispatch optimization iterations\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max number of dispatch optimization iterations\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_mip_gap", (getter)SystemControl_get_disp_mip_gap,(setter)SystemControl_set_disp_mip_gap, - PyDoc_STR("*float*: Dispatch optimization solution tolerance\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch optimization solution tolerance\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_pen_delta_w", (getter)SystemControl_get_disp_pen_delta_w,(setter)SystemControl_set_disp_pen_delta_w, - PyDoc_STR("*float*: Dispatch cycle production change penalty [$/MWe-change]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch cycle production change penalty [$/MWe-change]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_reporting", (getter)SystemControl_get_disp_reporting,(setter)SystemControl_set_disp_reporting, - PyDoc_STR("*float*: Dispatch optimization reporting level\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization reporting level\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_bb", (getter)SystemControl_get_disp_spec_bb,(setter)SystemControl_set_disp_spec_bb, - PyDoc_STR("*float*: Dispatch optimization B&B heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization B&B heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_presolve", (getter)SystemControl_get_disp_spec_presolve,(setter)SystemControl_set_disp_spec_presolve, - PyDoc_STR("*float*: Dispatch optimization presolve heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization presolve heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_scaling", (getter)SystemControl_get_disp_spec_scaling,(setter)SystemControl_set_disp_spec_scaling, - PyDoc_STR("*float*: Dispatch optimization scaling heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization scaling heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_steps_per_hour", (getter)SystemControl_get_disp_steps_per_hour,(setter)SystemControl_set_disp_steps_per_hour, - PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_time_weighting", (getter)SystemControl_get_disp_time_weighting,(setter)SystemControl_set_disp_time_weighting, - PyDoc_STR("*float*: Dispatch optimization future time discounting factor\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch optimization future time discounting factor\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_timeout", (getter)SystemControl_get_disp_timeout,(setter)SystemControl_set_disp_timeout, - PyDoc_STR("*float*: Max dispatch optimization solve duration [s]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max dispatch optimization solve duration [s]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_up_time_min", (getter)SystemControl_get_disp_up_time_min,(setter)SystemControl_set_disp_up_time_min, - PyDoc_STR("*float*: Minimum time requirement for cycle to generate power [hr]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Minimum time requirement for cycle to generate power [hr]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"is_dispatch", (getter)SystemControl_get_is_dispatch,(setter)SystemControl_set_is_dispatch, - PyDoc_STR("*float*: Allow dispatch optimization?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allow dispatch optimization?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pb_fixed_par", (getter)SystemControl_get_pb_fixed_par,(setter)SystemControl_set_pb_fixed_par, - PyDoc_STR("*float*: Fixed parasitic load that don't generate heat - runs at all times [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed parasitic load that don't generate heat - runs at all times [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"sim_type", (getter)SystemControl_get_sim_type,(setter)SystemControl_set_sim_type, - PyDoc_STR("*float*: 1 (default): timeseries, 2: design only\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 (default): timeseries, 2: design only\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"time_start", (getter)SystemControl_get_time_start,(setter)SystemControl_set_time_start, - PyDoc_STR("*float*: Simulation start time [s]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Simulation start time [s]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"time_steps_per_hour", (getter)SystemControl_get_time_steps_per_hour,(setter)SystemControl_set_time_steps_per_hour, - PyDoc_STR("*float*: Number of simulation time steps per hour\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Number of simulation time steps per hour\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"time_stop", (getter)SystemControl_get_time_stop,(setter)SystemControl_set_time_stop, - PyDoc_STR("*float*: Simulation stop time [s]\n\n*Required*: If not provided, assumed to be 31536000"), + PyDoc_STR("*float*: Simulation stop time [s]\n\n**Required:**\nFalse. Automatically set to 31536000 if not assigned explicitly or loaded from defaults."), NULL}, {"vacuum_arrays", (getter)SystemControl_get_vacuum_arrays,(setter)SystemControl_set_vacuum_arrays, - PyDoc_STR("*float*: Allocate arrays for only the required number of steps\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allocate arrays for only the required number of steps\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -748,11 +748,11 @@ FinancialModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialModel_methods[] = { {"assign", (PyCFunction)FinancialModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -770,7 +770,7 @@ FinancialModel_set_etes_financial_model(VarGroupObject *self, PyObject *value, v static PyGetSetDef FinancialModel_getset[] = { {"etes_financial_model", (getter)FinancialModel_get_etes_financial_model,(setter)FinancialModel_set_etes_financial_model, - PyDoc_STR("*float*: [1-8]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: [1-8]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -885,11 +885,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -979,25 +979,25 @@ SystemDesign_set_tshours(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"P_ref", (getter)SystemDesign_get_P_ref,(setter)SystemDesign_set_P_ref, - PyDoc_STR("*float*: Reference output electric power at design condition [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference output electric power at design condition [MW]\n\n**Required:**\nTrue"), NULL}, {"T_htf_cold_des", (getter)SystemDesign_get_T_htf_cold_des,(setter)SystemDesign_set_T_htf_cold_des, - PyDoc_STR("*float*: Cold HTF inlet temperature at design conditions [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold HTF inlet temperature at design conditions [C]\n\n**Required:**\nTrue"), NULL}, {"T_htf_hot_des", (getter)SystemDesign_get_T_htf_hot_des,(setter)SystemDesign_set_T_htf_hot_des, - PyDoc_STR("*float*: Hot HTF outlet temperature at design conditions [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot HTF outlet temperature at design conditions [C]\n\n**Required:**\nTrue"), NULL}, {"design_eff", (getter)SystemDesign_get_design_eff,(setter)SystemDesign_set_design_eff, - PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n**Required:**\nTrue"), NULL}, {"gross_net_conversion_factor", (getter)SystemDesign_get_gross_net_conversion_factor,(setter)SystemDesign_set_gross_net_conversion_factor, - PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n*Required*: True"), + PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n**Required:**\nTrue"), NULL}, {"heater_mult", (getter)SystemDesign_get_heater_mult,(setter)SystemDesign_set_heater_mult, - PyDoc_STR("*float*: Heater multiple relative to design cycle thermal power [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Heater multiple relative to design cycle thermal power [-]\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)SystemDesign_get_tshours,(setter)SystemDesign_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1112,11 +1112,11 @@ PowerCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef PowerCycle_methods[] = { {"assign", (PyCFunction)PowerCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PowerCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PowerCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PowerCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)PowerCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1206,25 +1206,25 @@ PowerCycle_set_startup_time(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef PowerCycle_getset[] = { {"cycle_cutoff_frac", (getter)PowerCycle_get_cycle_cutoff_frac,(setter)PowerCycle_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)PowerCycle_get_cycle_max_frac,(setter)PowerCycle_set_cycle_max_frac, - PyDoc_STR("*float*: Maximum turbine over design operation fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)PowerCycle_get_pb_pump_coef,(setter)PowerCycle_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"pc_config", (getter)PowerCycle_get_pc_config,(setter)PowerCycle_set_pc_config, - PyDoc_STR("*float*: PC configuration 0=Steam Rankine, 1=user defined\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PC configuration 0=Steam Rankine, 1=user defined\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)PowerCycle_get_q_sby_frac,(setter)PowerCycle_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)PowerCycle_get_startup_frac,(setter)PowerCycle_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)PowerCycle_get_startup_time,(setter)PowerCycle_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1339,11 +1339,11 @@ RankineCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef RankineCycle_methods[] = { {"assign", (PyCFunction)RankineCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``RankineCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``RankineCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)RankineCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``RankineCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``RankineCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)RankineCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1481,37 +1481,37 @@ RankineCycle_set_tech_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef RankineCycle_getset[] = { {"CT", (getter)RankineCycle_get_CT,(setter)RankineCycle_set_CT, - PyDoc_STR("*float*: Condensor type: 1=evaporative, 2=air\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condensor type: 1=evaporative, 2=air\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_boil", (getter)RankineCycle_get_P_boil,(setter)RankineCycle_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)RankineCycle_get_P_cond_min,(setter)RankineCycle_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)RankineCycle_get_P_cond_ratio,(setter)RankineCycle_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_ITD_des", (getter)RankineCycle_get_T_ITD_des,(setter)RankineCycle_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)RankineCycle_get_T_amb_des,(setter)RankineCycle_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)RankineCycle_get_T_approach,(setter)RankineCycle_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"dT_cw_ref", (getter)RankineCycle_get_dT_cw_ref,(setter)RankineCycle_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet temperature difference [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet temperature difference [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"n_pl_inc", (getter)RankineCycle_get_n_pl_inc,(setter)RankineCycle_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Constraints*: INTEGER\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)RankineCycle_get_pb_bd_frac,(setter)RankineCycle_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"tech_type", (getter)RankineCycle_get_tech_type,(setter)RankineCycle_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control 1=Fixed, 3=Sliding\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control 1=Fixed, 3=Sliding\n\n**Required:**\nRequired if pc_config=0"), NULL}, {NULL} /* Sentinel */ }; @@ -1626,11 +1626,11 @@ UserDefinedPowerCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPowerCycle_methods[] = { {"assign", (PyCFunction)UserDefinedPowerCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPowerCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPowerCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1672,13 +1672,13 @@ UserDefinedPowerCycle_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject static PyGetSetDef UserDefinedPowerCycle_getset[] = { {"ud_f_W_dot_cool_des", (getter)UserDefinedPowerCycle_get_ud_f_W_dot_cool_des,(setter)UserDefinedPowerCycle_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)UserDefinedPowerCycle_get_ud_ind_od,(setter)UserDefinedPowerCycle_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)UserDefinedPowerCycle_get_ud_m_dot_water_cool_des,(setter)UserDefinedPowerCycle_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -1793,11 +1793,11 @@ ThermalStorage_export(VarGroupObject *self, PyObject *args) static PyMethodDef ThermalStorage_methods[] = { {"assign", (PyCFunction)ThermalStorage_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ThermalStorage_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ThermalStorage_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ThermalStorage_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ThermalStorage_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ThermalStorage_vals = { var: val, ...}``")}, {"export", (PyCFunction)ThermalStorage_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1935,37 +1935,37 @@ ThermalStorage_set_ud_hot_htf_props(VarGroupObject *self, PyObject *value, void static PyGetSetDef ThermalStorage_getset[] = { {"cold_tank_Thtr", (getter)ThermalStorage_get_cold_tank_Thtr,(setter)ThermalStorage_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temperature [C]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_max_heat", (getter)ThermalStorage_get_cold_tank_max_heat,(setter)ThermalStorage_set_cold_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)ThermalStorage_get_h_tank,(setter)ThermalStorage_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full) [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)ThermalStorage_get_h_tank_min,(setter)ThermalStorage_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"hot_htf_code", (getter)ThermalStorage_get_hot_htf_code,(setter)ThermalStorage_set_hot_htf_code, - PyDoc_STR("*float*: Receiver HTF, 17=Salt (60% NaNO3, 40% KNO3) 10=Salt (46.5% LiF 11.5% NaF 42% KF) 50=Lookup tables\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver HTF, 17=Salt (60% NaNO3, 40% KNO3) 10=Salt (46.5% LiF 11.5% NaF 42% KF) 50=Lookup tables\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)ThermalStorage_get_hot_tank_Thtr,(setter)ThermalStorage_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temperature [C]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_max_heat", (getter)ThermalStorage_get_hot_tank_max_heat,(setter)ThermalStorage_set_hot_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)ThermalStorage_get_tank_pairs,(setter)ThermalStorage_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tes_init_hot_htf_percent", (getter)ThermalStorage_get_tes_init_hot_htf_percent,(setter)ThermalStorage_set_tes_init_hot_htf_percent, - PyDoc_STR("*float*: Initial fraction of available volume that is hot [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial fraction of available volume that is hot [%]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)ThermalStorage_get_u_tank,(setter)ThermalStorage_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"ud_hot_htf_props", (getter)ThermalStorage_get_ud_hot_htf_props,(setter)ThermalStorage_set_ud_hot_htf_props, - PyDoc_STR("*sequence[sequence]*: User-defined TES fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User-defined TES fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2080,11 +2080,11 @@ Heater_export(VarGroupObject *self, PyObject *args) static PyMethodDef Heater_methods[] = { {"assign", (PyCFunction)Heater_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Heater_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Heater_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Heater_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Heater_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Heater_vals = { var: val, ...}``")}, {"export", (PyCFunction)Heater_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2126,13 +2126,13 @@ Heater_set_hrs_startup_at_max_rate(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Heater_getset[] = { {"f_q_dot_des_allowable_su", (getter)Heater_get_f_q_dot_des_allowable_su,(setter)Heater_set_f_q_dot_des_allowable_su, - PyDoc_STR("*float*: Fraction of design power allowed during startup [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design power allowed during startup [-]\n\n**Required:**\nTrue"), NULL}, {"f_q_dot_heater_min", (getter)Heater_get_f_q_dot_heater_min,(setter)Heater_set_f_q_dot_heater_min, - PyDoc_STR("*float*: Minimum allowable heater output as fraction of design\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable heater output as fraction of design\n\n**Required:**\nTrue"), NULL}, {"hrs_startup_at_max_rate", (getter)Heater_get_hrs_startup_at_max_rate,(setter)Heater_set_hrs_startup_at_max_rate, - PyDoc_STR("*float*: Duration of startup at max startup power [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Duration of startup at max startup power [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2247,11 +2247,11 @@ TimeOfDeliveryFactors_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDeliveryFactors_methods[] = { {"assign", (PyCFunction)TimeOfDeliveryFactors_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDeliveryFactors_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDeliveryFactors_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2413,43 +2413,43 @@ TimeOfDeliveryFactors_set_ppa_multiplier_model(VarGroupObject *self, PyObject *v static PyGetSetDef TimeOfDeliveryFactors_getset[] = { {"dispatch_factor1", (getter)TimeOfDeliveryFactors_get_dispatch_factor1,(setter)TimeOfDeliveryFactors_set_dispatch_factor1, - PyDoc_STR("*float*: Dispatch payment factor 1\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 1\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor2", (getter)TimeOfDeliveryFactors_get_dispatch_factor2,(setter)TimeOfDeliveryFactors_set_dispatch_factor2, - PyDoc_STR("*float*: Dispatch payment factor 2\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 2\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor3", (getter)TimeOfDeliveryFactors_get_dispatch_factor3,(setter)TimeOfDeliveryFactors_set_dispatch_factor3, - PyDoc_STR("*float*: Dispatch payment factor 3\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 3\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor4", (getter)TimeOfDeliveryFactors_get_dispatch_factor4,(setter)TimeOfDeliveryFactors_set_dispatch_factor4, - PyDoc_STR("*float*: Dispatch payment factor 4\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 4\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor5", (getter)TimeOfDeliveryFactors_get_dispatch_factor5,(setter)TimeOfDeliveryFactors_set_dispatch_factor5, - PyDoc_STR("*float*: Dispatch payment factor 5\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 5\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor6", (getter)TimeOfDeliveryFactors_get_dispatch_factor6,(setter)TimeOfDeliveryFactors_set_dispatch_factor6, - PyDoc_STR("*float*: Dispatch payment factor 6\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 6\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor7", (getter)TimeOfDeliveryFactors_get_dispatch_factor7,(setter)TimeOfDeliveryFactors_set_dispatch_factor7, - PyDoc_STR("*float*: Dispatch payment factor 7\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 7\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor8", (getter)TimeOfDeliveryFactors_get_dispatch_factor8,(setter)TimeOfDeliveryFactors_set_dispatch_factor8, - PyDoc_STR("*float*: Dispatch payment factor 8\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 8\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factor9", (getter)TimeOfDeliveryFactors_get_dispatch_factor9,(setter)TimeOfDeliveryFactors_set_dispatch_factor9, - PyDoc_STR("*float*: Dispatch payment factor 9\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*float*: Dispatch payment factor 9\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDeliveryFactors_get_dispatch_factors_ts,(setter)TimeOfDeliveryFactors_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor timeseries array\n\n*Required*: True if ppa_multiplier_model=1&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*sequence*: Dispatch payment factor timeseries array\n\n**Required:**\nRequired if ppa_multiplier_model=1&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDeliveryFactors_get_dispatch_sched_weekday,(setter)TimeOfDeliveryFactors_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: PPA pricing weekday schedule, 12x24\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*sequence[sequence]*: PPA pricing weekday schedule, 12x24\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDeliveryFactors_get_dispatch_sched_weekend,(setter)TimeOfDeliveryFactors_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: PPA pricing weekend schedule, 12x24\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*sequence[sequence]*: PPA pricing weekend schedule, 12x24\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDeliveryFactors_get_ppa_multiplier_model,(setter)TimeOfDeliveryFactors_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2564,11 +2564,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2598,10 +2598,10 @@ Revenue_set_ppa_price_input(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef Revenue_getset[] = { {"mp_energy_market_revenue", (getter)Revenue_get_mp_energy_market_revenue,(setter)Revenue_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True if etes_financial_model=6&is_dispatch=1&sim_type=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nRequired if etes_financial_model=6&is_dispatch=1&sim_type=1"), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA prices - yearly [$/kWh]\n\n*Required*: True if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), + PyDoc_STR("*sequence*: PPA prices - yearly [$/kWh]\n\n**Required:**\nRequired if ppa_multiplier_model=0&etes_financial_model<5&is_dispatch=1&sim_type=1"), NULL}, {NULL} /* Sentinel */ }; @@ -2716,11 +2716,11 @@ SystemCost_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCost_methods[] = { {"assign", (PyCFunction)SystemCost_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCost_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCost_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCost_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCost_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCost_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCost_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2738,7 +2738,7 @@ SystemCost_set_cycle_spec_cost(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef SystemCost_getset[] = { {"cycle_spec_cost", (getter)SystemCost_get_cycle_spec_cost,(setter)SystemCost_set_cycle_spec_cost, - PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2853,11 +2853,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2995,37 +2995,37 @@ SystemCosts_set_tes_spec_cost(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef SystemCosts_getset[] = { {"bop_spec_cost", (getter)SystemCosts_get_bop_spec_cost,(setter)SystemCosts_set_bop_spec_cost, - PyDoc_STR("*float*: Balance of plant specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"contingency_rate", (getter)SystemCosts_get_contingency_rate,(setter)SystemCosts_set_contingency_rate, - PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n**Required:**\nTrue"), NULL}, {"epc_cost_fixed", (getter)SystemCosts_get_epc_cost_fixed,(setter)SystemCosts_set_epc_cost_fixed, - PyDoc_STR("*float*: EPC fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC fixed [$]\n\n**Required:**\nTrue"), NULL}, {"epc_cost_per_watt", (getter)SystemCosts_get_epc_cost_per_watt,(setter)SystemCosts_set_epc_cost_per_watt, - PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"epc_cost_perc_of_direct", (getter)SystemCosts_get_epc_cost_perc_of_direct,(setter)SystemCosts_set_epc_cost_perc_of_direct, - PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"heater_spec_cost", (getter)SystemCosts_get_heater_spec_cost,(setter)SystemCosts_set_heater_spec_cost, - PyDoc_STR("*float*: Heater specific cost [$/kWht]\n\n*Required*: True"), + PyDoc_STR("*float*: Heater specific cost [$/kWht]\n\n**Required:**\nTrue"), NULL}, {"land_cost_fixed", (getter)SystemCosts_get_land_cost_fixed,(setter)SystemCosts_set_land_cost_fixed, - PyDoc_STR("*float*: Land fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Land fixed [$]\n\n**Required:**\nTrue"), NULL}, {"land_cost_per_watt", (getter)SystemCosts_get_land_cost_per_watt,(setter)SystemCosts_set_land_cost_per_watt, - PyDoc_STR("*float*: Land cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: Land cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"land_cost_perc_of_direct", (getter)SystemCosts_get_land_cost_perc_of_direct,(setter)SystemCosts_set_land_cost_perc_of_direct, - PyDoc_STR("*float*: Land cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Land cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_frac", (getter)SystemCosts_get_sales_tax_frac,(setter)SystemCosts_set_sales_tax_frac, - PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n**Required:**\nTrue"), NULL}, {"tes_spec_cost", (getter)SystemCosts_get_tes_spec_cost,(setter)SystemCosts_set_tes_spec_cost, - PyDoc_STR("*float*: Thermal energy storage specific cost [$/kWht]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal energy storage specific cost [$/kWht]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3140,11 +3140,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3402,67 +3402,67 @@ FinancialParameters_set_sales_tax_rate(VarGroupObject *self, PyObject *value, vo static PyGetSetDef FinancialParameters_getset[] = { {"const_per_interest_rate1", (getter)FinancialParameters_get_const_per_interest_rate1,(setter)FinancialParameters_set_const_per_interest_rate1, - PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate2", (getter)FinancialParameters_get_const_per_interest_rate2,(setter)FinancialParameters_set_const_per_interest_rate2, - PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate3", (getter)FinancialParameters_get_const_per_interest_rate3,(setter)FinancialParameters_set_const_per_interest_rate3, - PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate4", (getter)FinancialParameters_get_const_per_interest_rate4,(setter)FinancialParameters_set_const_per_interest_rate4, - PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate5", (getter)FinancialParameters_get_const_per_interest_rate5,(setter)FinancialParameters_set_const_per_interest_rate5, - PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_months1", (getter)FinancialParameters_get_const_per_months1,(setter)FinancialParameters_set_const_per_months1, - PyDoc_STR("*float*: Months prior to operation, loan 1\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 1\n\n**Required:**\nTrue"), NULL}, {"const_per_months2", (getter)FinancialParameters_get_const_per_months2,(setter)FinancialParameters_set_const_per_months2, - PyDoc_STR("*float*: Months prior to operation, loan 2\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 2\n\n**Required:**\nTrue"), NULL}, {"const_per_months3", (getter)FinancialParameters_get_const_per_months3,(setter)FinancialParameters_set_const_per_months3, - PyDoc_STR("*float*: Months prior to operation, loan 3\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 3\n\n**Required:**\nTrue"), NULL}, {"const_per_months4", (getter)FinancialParameters_get_const_per_months4,(setter)FinancialParameters_set_const_per_months4, - PyDoc_STR("*float*: Months prior to operation, loan 4\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 4\n\n**Required:**\nTrue"), NULL}, {"const_per_months5", (getter)FinancialParameters_get_const_per_months5,(setter)FinancialParameters_set_const_per_months5, - PyDoc_STR("*float*: Months prior to operation, loan 5\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 5\n\n**Required:**\nTrue"), NULL}, {"const_per_percent1", (getter)FinancialParameters_get_const_per_percent1,(setter)FinancialParameters_set_const_per_percent1, - PyDoc_STR("*float*: Percent of total installed cost, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent2", (getter)FinancialParameters_get_const_per_percent2,(setter)FinancialParameters_set_const_per_percent2, - PyDoc_STR("*float*: Percent of total installed cost, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent3", (getter)FinancialParameters_get_const_per_percent3,(setter)FinancialParameters_set_const_per_percent3, - PyDoc_STR("*float*: Percent of total installed cost, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent4", (getter)FinancialParameters_get_const_per_percent4,(setter)FinancialParameters_set_const_per_percent4, - PyDoc_STR("*float*: Percent of total installed cost, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent5", (getter)FinancialParameters_get_const_per_percent5,(setter)FinancialParameters_set_const_per_percent5, - PyDoc_STR("*float*: Percent of total installed cost, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate1", (getter)FinancialParameters_get_const_per_upfront_rate1,(setter)FinancialParameters_set_const_per_upfront_rate1, - PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate2", (getter)FinancialParameters_get_const_per_upfront_rate2,(setter)FinancialParameters_set_const_per_upfront_rate2, - PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate3", (getter)FinancialParameters_get_const_per_upfront_rate3,(setter)FinancialParameters_set_const_per_upfront_rate3, - PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate4", (getter)FinancialParameters_get_const_per_upfront_rate4,(setter)FinancialParameters_set_const_per_upfront_rate4, - PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate5", (getter)FinancialParameters_get_const_per_upfront_rate5,(setter)FinancialParameters_set_const_per_upfront_rate5, - PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_rate", (getter)FinancialParameters_get_sales_tax_rate,(setter)FinancialParameters_set_sales_tax_rate, - PyDoc_STR("*float*: Sales tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Sales tax rate [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3577,11 +3577,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4941,17 +4941,16 @@ static PyMethodDef EtesElectricResistanceModule_methods[] = { {"new", EtesElectricResistance_new, METH_VARARGS, PyDoc_STR("new() -> EtesElectricResistance")}, {"default", EtesElectricResistance_default, METH_VARARGS, - PyDoc_STR("default(config) -> EtesElectricResistance\n\nUse default attributes\n" - "`config` options:\n\n- \"ETESSingleOwner\"")}, + PyDoc_STR("default(config) -> EtesElectricResistance\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"ETESSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", EtesElectricResistance_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> EtesElectricResistance\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> EtesElectricResistance\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", EtesElectricResistance_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> EtesElectricResistance\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> EtesElectricResistance\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; PyDoc_STRVAR(module_doc, - "EtesElectricResistance"); + "Electric thermal energy storage"); static int diff --git a/modules/Fuelcell.c b/modules/Fuelcell.c index d400ad6d..5b76ed1d 100644 --- a/modules/Fuelcell.c +++ b/modules/Fuelcell.c @@ -69,11 +69,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Info*: The number of years in the simulation\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Info:**\nThe number of years in the simulation\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n*Options*: 0=SingleYearRepeated,1=RunEveryYear\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n**Options:**\n0=SingleYearRepeated,1=RunEveryYear\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -267,13 +267,13 @@ Common_set_gen(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"annual_energy", (getter)Common_get_annual_energy,(setter)Common_set_annual_energy, - PyDoc_STR("*float*: Annual Energy [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Annual Energy [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"capacity_factor", (getter)Common_get_capacity_factor,(setter)Common_set_capacity_factor, - PyDoc_STR("*float*: Capacity factor [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Capacity factor [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"gen", (getter)Common_get_gen,(setter)Common_set_gen, - PyDoc_STR("*sequence*: System power generated [kW]\n\n*Info*: Lifetime system generation"), + PyDoc_STR("*sequence*: System power generated [kW]\n\n**Info:**\nLifetime system generation"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -525,11 +525,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -934,10 +934,10 @@ static PyGetSetDef FuelCell_getset[] = { PyDoc_STR("*sequence*: Periods 1-6 charging allowed?"), NULL}, {"dispatch_manual_fuelcelldischarge", (getter)FuelCell_get_dispatch_manual_fuelcelldischarge,(setter)FuelCell_set_dispatch_manual_fuelcelldischarge, - PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\n*Changes to this variable may require updating the values of the following*: \n\t - dispatch_manual_percent_fc_discharge\n\t - dispatch_manual_units_fc_discharge\n"), + PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\nThe value of the following variables depends on ``dispatch_manual_fuelcelldischarge``:\n\n\t - dispatch_manual_percent_fc_discharge\n\t - dispatch_manual_units_fc_discharge\n"), NULL}, {"dispatch_manual_percent_fc_discharge", (getter)FuelCell_get_dispatch_manual_percent_fc_discharge,(setter)FuelCell_set_dispatch_manual_percent_fc_discharge, - PyDoc_STR("*sequence*: Periods 1-6 percent of max fuelcell output\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - dispatch_manual_fuelcelldischarge\n"), + PyDoc_STR("*sequence*: Periods 1-6 percent of max fuelcell output\n\nThe value of ``dispatch_manual_percent_fc_discharge`` depends on the following variables:\n\n\t - dispatch_manual_fuelcelldischarge\n"), NULL}, {"dispatch_manual_sched", (getter)FuelCell_get_dispatch_manual_sched,(setter)FuelCell_set_dispatch_manual_sched, PyDoc_STR("*sequence[sequence]*: Dispatch schedule for weekday"), @@ -946,13 +946,13 @@ static PyGetSetDef FuelCell_getset[] = { PyDoc_STR("*sequence[sequence]*: Dispatch schedule for weekend"), NULL}, {"dispatch_manual_units_fc_discharge", (getter)FuelCell_get_dispatch_manual_units_fc_discharge,(setter)FuelCell_set_dispatch_manual_units_fc_discharge, - PyDoc_STR("*sequence*: Periods 1-6 number of fuel cell units?\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - dispatch_manual_fuelcelldischarge\n"), + PyDoc_STR("*sequence*: Periods 1-6 number of fuel cell units?\n\nThe value of ``dispatch_manual_units_fc_discharge`` depends on the following variables:\n\n\t - dispatch_manual_fuelcelldischarge\n"), NULL}, {"fuelcell_availability_schedule", (getter)FuelCell_get_fuelcell_availability_schedule,(setter)FuelCell_set_fuelcell_availability_schedule, PyDoc_STR("*sequence[sequence]*: Fuel cell availability schedule [Column 1: Hour of year start shutdown/Column 2: Hours duration of shutdown ]"), NULL}, {"fuelcell_degradation", (getter)FuelCell_get_fuelcell_degradation,(setter)FuelCell_set_fuelcell_degradation, - PyDoc_STR("*float*: Fuel cell degradation per hour [kW/h]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_unit_max_power\n"), + PyDoc_STR("*float*: Fuel cell degradation per hour [kW/h]\n\nThe value of ``fuelcell_degradation`` depends on the following variables:\n\n\t - fuelcell_unit_max_power\n"), NULL}, {"fuelcell_degradation_restart", (getter)FuelCell_get_fuelcell_degradation_restart,(setter)FuelCell_set_fuelcell_degradation_restart, PyDoc_STR("*float*: Fuel cell degradation at restart [kW]"), @@ -964,43 +964,43 @@ static PyGetSetDef FuelCell_getset[] = { PyDoc_STR("*float*: Fuel cell scheduled restarts per year"), NULL}, {"fuelcell_dispatch", (getter)FuelCell_get_fuelcell_dispatch,(setter)FuelCell_set_fuelcell_dispatch, - PyDoc_STR("*sequence*: Fuel cell dispatch input per unit [kW]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_unit_max_power\n"), + PyDoc_STR("*sequence*: Fuel cell dispatch input per unit [kW]\n\nThe value of ``fuelcell_dispatch`` depends on the following variables:\n\n\t - fuelcell_unit_max_power\n"), NULL}, {"fuelcell_dispatch_choice", (getter)FuelCell_get_fuelcell_dispatch_choice,(setter)FuelCell_set_fuelcell_dispatch_choice, PyDoc_STR("*float*: Fuel cell dispatch choice [0/1/2]"), NULL}, {"fuelcell_dynamic_response_down", (getter)FuelCell_get_fuelcell_dynamic_response_down,(setter)FuelCell_set_fuelcell_dynamic_response_down, - PyDoc_STR("*float*: Fuel cell ramp rate limit down [kW/h]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_number_of_units\n\t - fuelcell_unit_max_power\n"), + PyDoc_STR("*float*: Fuel cell ramp rate limit down [kW/h]\n\nThe value of ``fuelcell_dynamic_response_down`` depends on the following variables:\n\n\t - fuelcell_number_of_units\n\t - fuelcell_unit_max_power\n"), NULL}, {"fuelcell_dynamic_response_up", (getter)FuelCell_get_fuelcell_dynamic_response_up,(setter)FuelCell_set_fuelcell_dynamic_response_up, - PyDoc_STR("*float*: Fuel cell ramp rate limit up [kW/h]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_number_of_units\n\t - fuelcell_unit_max_power\n"), + PyDoc_STR("*float*: Fuel cell ramp rate limit up [kW/h]\n\nThe value of ``fuelcell_dynamic_response_up`` depends on the following variables:\n\n\t - fuelcell_number_of_units\n\t - fuelcell_unit_max_power\n"), NULL}, {"fuelcell_efficiency", (getter)FuelCell_get_fuelcell_efficiency,(setter)FuelCell_set_fuelcell_efficiency, PyDoc_STR("*sequence[sequence]*: Fuel cell efficiency table "), NULL}, {"fuelcell_efficiency_choice", (getter)FuelCell_get_fuelcell_efficiency_choice,(setter)FuelCell_set_fuelcell_efficiency_choice, - PyDoc_STR("*float*: Fuel cell efficiency definition choice [0/1]\n\n*Options*: 0=OriginalNameplate,1=DegradedNameplate"), + PyDoc_STR("*float*: Fuel cell efficiency definition choice [0/1]\n\n**Options:**\n0=OriginalNameplate,1=DegradedNameplate"), NULL}, {"fuelcell_fixed_pct", (getter)FuelCell_get_fuelcell_fixed_pct,(setter)FuelCell_set_fuelcell_fixed_pct, PyDoc_STR("*float*: Fuel cell fixed operation percent [%]"), NULL}, {"fuelcell_fuel_available", (getter)FuelCell_get_fuelcell_fuel_available,(setter)FuelCell_set_fuelcell_fuel_available, - PyDoc_STR("*float*: Fuel cell available fuel quantity [MCf]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_fuel_type\n"), + PyDoc_STR("*float*: Fuel cell available fuel quantity [MCf]\n\nThe value of ``fuelcell_fuel_available`` depends on the following variables:\n\n\t - fuelcell_fuel_type\n"), NULL}, {"fuelcell_fuel_price", (getter)FuelCell_get_fuelcell_fuel_price,(setter)FuelCell_set_fuelcell_fuel_price, PyDoc_STR("*float*: Fuel cell price [$/MCf]"), NULL}, {"fuelcell_fuel_type", (getter)FuelCell_get_fuelcell_fuel_type,(setter)FuelCell_set_fuelcell_fuel_type, - PyDoc_STR("*float*: Fuel cell type [0/1]\n\n*Changes to this variable may require updating the values of the following*: \n\t - fuelcell_fuel_available\n\t - fuelcell_lhv\n"), + PyDoc_STR("*float*: Fuel cell type [0/1]\n\nThe value of the following variables depends on ``fuelcell_fuel_type``:\n\n\t - fuelcell_fuel_available\n\t - fuelcell_lhv\n"), NULL}, {"fuelcell_is_started", (getter)FuelCell_get_fuelcell_is_started,(setter)FuelCell_set_fuelcell_is_started, PyDoc_STR("*float*: Fuel cell is started [0/1]"), NULL}, {"fuelcell_lhv", (getter)FuelCell_get_fuelcell_lhv,(setter)FuelCell_set_fuelcell_lhv, - PyDoc_STR("*float*: Fuel cell lower heating value [Btu/ft3]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_fuel_type\n"), + PyDoc_STR("*float*: Fuel cell lower heating value [Btu/ft3]\n\nThe value of ``fuelcell_lhv`` depends on the following variables:\n\n\t - fuelcell_fuel_type\n"), NULL}, {"fuelcell_number_of_units", (getter)FuelCell_get_fuelcell_number_of_units,(setter)FuelCell_set_fuelcell_number_of_units, - PyDoc_STR("*float*: Fuel cell number of units\n\n*Changes to this variable may require updating the values of the following*: \n\t - fuelcell_dynamic_response_down\n\t - fuelcell_dynamic_response_up\n"), + PyDoc_STR("*float*: Fuel cell number of units\n\nThe value of the following variables depends on ``fuelcell_number_of_units``:\n\n\t - fuelcell_dynamic_response_down\n\t - fuelcell_dynamic_response_up\n"), NULL}, {"fuelcell_operation_options", (getter)FuelCell_get_fuelcell_operation_options,(setter)FuelCell_set_fuelcell_operation_options, PyDoc_STR("*float*: Fuel cell turn off options [0/1]"), @@ -1024,10 +1024,10 @@ static PyGetSetDef FuelCell_getset[] = { PyDoc_STR("*float*: Fuel cell type [0/1/2]"), NULL}, {"fuelcell_unit_max_power", (getter)FuelCell_get_fuelcell_unit_max_power,(setter)FuelCell_set_fuelcell_unit_max_power, - PyDoc_STR("*float*: Fuel cell max power per unit [kW]\n\n*Changes to this variable may require updating the values of the following*: \n\t - fuelcell_degradation\n\t - fuelcell_dispatch\n\t - fuelcell_dynamic_response_down\n\t - fuelcell_dynamic_response_up\n\t - fuelcell_unit_min_power\n"), + PyDoc_STR("*float*: Fuel cell max power per unit [kW]\n\nThe value of the following variables depends on ``fuelcell_unit_max_power``:\n\n\t - fuelcell_degradation\n\t - fuelcell_dispatch\n\t - fuelcell_dynamic_response_down\n\t - fuelcell_dynamic_response_up\n\t - fuelcell_unit_min_power\n"), NULL}, {"fuelcell_unit_min_power", (getter)FuelCell_get_fuelcell_unit_min_power,(setter)FuelCell_set_fuelcell_unit_min_power, - PyDoc_STR("*float*: Fuel cell min power per unit [kW]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fuelcell_unit_max_power\n"), + PyDoc_STR("*float*: Fuel cell min power per unit [kW]\n\nThe value of ``fuelcell_unit_min_power`` depends on the following variables:\n\n\t - fuelcell_unit_max_power\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1142,11 +1142,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1632,12 +1632,11 @@ static PyMethodDef FuelcellModule_methods[] = { {"new", Fuelcell_new, METH_VARARGS, PyDoc_STR("new() -> Fuelcell")}, {"default", Fuelcell_default, METH_VARARGS, - PyDoc_STR("default(config) -> Fuelcell\n\nUse default attributes\n" - "`config` options:\n\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"")}, + PyDoc_STR("default(config) -> Fuelcell\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Fuelcell_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Fuelcell\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Fuelcell\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Fuelcell_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Fuelcell\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Fuelcell\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/GenericSystem.c b/modules/GenericSystem.c index e7b26d86..090a9369 100644 --- a/modules/GenericSystem.c +++ b/modules/GenericSystem.c @@ -69,11 +69,11 @@ Plant_export(VarGroupObject *self, PyObject *args) static PyMethodDef Plant_methods[] = { {"assign", (PyCFunction)Plant_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Plant_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Plant_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Plant_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Plant_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Plant_vals = { var: val, ...}``")}, {"export", (PyCFunction)Plant_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -163,25 +163,25 @@ Plant_set_user_capacity_factor(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Plant_getset[] = { {"conv_eff", (getter)Plant_get_conv_eff,(setter)Plant_set_conv_eff, - PyDoc_STR("*float*: Conversion Efficiency [%]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - heat_rate\n"), + PyDoc_STR("*float*: Conversion Efficiency [%]\n\n**Required:**\nTrue\n\nThe value of ``conv_eff`` depends on the following variables:\n\n\t - heat_rate\n"), NULL}, {"derate", (getter)Plant_get_derate,(setter)Plant_set_derate, - PyDoc_STR("*float*: Derate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Derate [%]\n\n**Required:**\nTrue"), NULL}, {"energy_output_array", (getter)Plant_get_energy_output_array,(setter)Plant_set_energy_output_array, - PyDoc_STR("*sequence*: Array of Energy Output Profile [kW]\n\n*Required*: True if spec_mode=1"), + PyDoc_STR("*sequence*: Array of Energy Output Profile [kW]\n\n**Required:**\nRequired if spec_mode=1"), NULL}, {"heat_rate", (getter)Plant_get_heat_rate,(setter)Plant_set_heat_rate, - PyDoc_STR("*float*: Heat Rate [MMBTUs/MWhe]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - conv_eff\n"), + PyDoc_STR("*float*: Heat Rate [MMBTUs/MWhe]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``heat_rate``:\n\n\t - conv_eff\n"), NULL}, {"spec_mode", (getter)Plant_get_spec_mode,(setter)Plant_set_spec_mode, - PyDoc_STR("*float*: Spec mode: 0=constant CF,1=profile\n\n*Required*: True"), + PyDoc_STR("*float*: Spec mode: 0=constant CF,1=profile\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)Plant_get_system_capacity,(setter)Plant_set_system_capacity, - PyDoc_STR("*float*: Nameplace Capcity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplace Capcity [kW]\n\n**Required:**\nTrue"), NULL}, {"user_capacity_factor", (getter)Plant_get_user_capacity_factor,(setter)Plant_set_user_capacity_factor, - PyDoc_STR("*float*: Capacity Factor [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Capacity Factor [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -296,11 +296,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -342,13 +342,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"generic_degradation", (getter)Lifetime_get_generic_degradation,(setter)Lifetime_set_generic_degradation, - PyDoc_STR("*sequence*: Annual AC degradation [%/year]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*sequence*: Annual AC degradation [%/year]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Generic lifetime simulation [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Generic lifetime simulation [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -463,11 +463,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -897,12 +897,11 @@ static PyMethodDef GenericSystemModule_methods[] = { {"new", GenericSystem_new, METH_VARARGS, PyDoc_STR("new() -> GenericSystem")}, {"default", GenericSystem_default, METH_VARARGS, - PyDoc_STR("default(config) -> GenericSystem\n\nUse default attributes\n" - "`config` options:\n\n- \"GenericBatteryAllEquityPartnershipFlip\"\n- \"GenericBatteryCommercial\"\n- \"GenericBatteryHostDeveloper\"\n- \"GenericBatteryLeveragedPartnershipFlip\"\n- \"GenericBatteryMerchantPlant\"\n- \"GenericBatteryResidential\"\n- \"GenericBatterySaleLeaseback\"\n- \"GenericBatterySingleOwner\"\n- \"GenericBatteryThirdParty\"\n- \"GenericSystemAllEquityPartnershipFlip\"\n- \"GenericSystemCommercial\"\n- \"GenericSystemHostDeveloper\"\n- \"GenericSystemLCOECalculator\"\n- \"GenericSystemLeveragedPartnershipFlip\"\n- \"GenericSystemMerchantPlant\"\n- \"GenericSystemNone\"\n- \"GenericSystemResidential\"\n- \"GenericSystemSaleLeaseback\"\n- \"GenericSystemSingleOwner\"\n- \"GenericSystemThirdParty\"")}, + PyDoc_STR("default(config) -> GenericSystem\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"GenericBatteryAllEquityPartnershipFlip\"*\n\n - *\"GenericBatteryCommercial\"*\n\n - *\"GenericBatteryHostDeveloper\"*\n\n - *\"GenericBatteryLeveragedPartnershipFlip\"*\n\n - *\"GenericBatteryMerchantPlant\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericBatterySaleLeaseback\"*\n\n - *\"GenericBatterySingleOwner\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"GenericSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericSystemCommercial\"*\n\n - *\"GenericSystemHostDeveloper\"*\n\n - *\"GenericSystemLCOECalculator\"*\n\n - *\"GenericSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericSystemMerchantPlant\"*\n\n - *\"GenericSystemNone\"*\n\n - *\"GenericSystemResidential\"*\n\n - *\"GenericSystemSaleLeaseback\"*\n\n - *\"GenericSystemSingleOwner\"*\n\n - *\"GenericSystemThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", GenericSystem_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> GenericSystem\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> GenericSystem\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", GenericSystem_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> GenericSystem\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> GenericSystem\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Geothermal.c b/modules/Geothermal.c index 41a8a1b1..7e6699fc 100644 --- a/modules/Geothermal.c +++ b/modules/Geothermal.c @@ -69,11 +69,11 @@ GeoHourly_export(VarGroupObject *self, PyObject *args) static PyMethodDef GeoHourly_methods[] = { {"assign", (PyCFunction)GeoHourly_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GeoHourly_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GeoHourly_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GeoHourly_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GeoHourly_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GeoHourly_vals = { var: val, ...}``")}, {"export", (PyCFunction)GeoHourly_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -955,223 +955,223 @@ GeoHourly_set_wet_bulb_temp(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef GeoHourly_getset[] = { {"CT", (getter)GeoHourly_get_CT,(setter)GeoHourly_set_CT, - PyDoc_STR("*float*: Condenser type (Wet, Dry,Hybrid) [(1-3)]\n\n*Constraints*: INTEGER\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Condenser type (Wet, Dry,Hybrid) [(1-3)]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"HTF", (getter)GeoHourly_get_HTF,(setter)GeoHourly_set_HTF, - PyDoc_STR("*float*: Heat trans fluid type ID [(1-27)]\n\n*Constraints*: INTEGER\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Heat trans fluid type ID [(1-27)]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"P_boil", (getter)GeoHourly_get_P_boil,(setter)GeoHourly_set_P_boil, - PyDoc_STR("*float*: Design Boiler Pressure [bar]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Design Boiler Pressure [bar]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"P_cond_min", (getter)GeoHourly_get_P_cond_min,(setter)GeoHourly_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [in Hg]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Minimum condenser pressure [in Hg]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"P_cond_ratio", (getter)GeoHourly_get_P_cond_ratio,(setter)GeoHourly_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Condenser pressure ratio\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"T_ITD_des", (getter)GeoHourly_get_T_ITD_des,(setter)GeoHourly_set_T_ITD_des, - PyDoc_STR("*float*: Design ITD for dry system [C]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Design ITD for dry system [C]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"T_amb_des", (getter)GeoHourly_get_T_amb_des,(setter)GeoHourly_set_T_amb_des, - PyDoc_STR("*float*: Design ambient temperature [C]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Design ambient temperature [C]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"T_approach", (getter)GeoHourly_get_T_approach,(setter)GeoHourly_set_T_approach, - PyDoc_STR("*float*: Approach Temperature [C]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Approach Temperature [C]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"T_htf_cold_ref", (getter)GeoHourly_get_T_htf_cold_ref,(setter)GeoHourly_set_T_htf_cold_ref, - PyDoc_STR("*float*: Outlet design temp [C]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Outlet design temp [C]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"T_htf_hot_ref", (getter)GeoHourly_get_T_htf_hot_ref,(setter)GeoHourly_set_T_htf_hot_ref, - PyDoc_STR("*float*: Inlet design temp [C]\n\n*Required*: True if ui_calculations_only=0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - design_temp\n\t - resource_temp\n"), + PyDoc_STR("*float*: Inlet design temp [C]\n\n**Required:**\nRequired if ui_calculations_only=0\n\nThe value of ``T_htf_hot_ref`` depends on the following variables:\n\n\t - design_temp\n\t - resource_temp\n"), NULL}, {"ambient_pressure", (getter)GeoHourly_get_ambient_pressure,(setter)GeoHourly_set_ambient_pressure, - PyDoc_STR("*float*: Ambient pressure [psi]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Ambient pressure [psi]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ambient_pressure``:\n\n\t - num_wells_getem\n"), NULL}, {"analysis_type", (getter)GeoHourly_get_analysis_type,(setter)GeoHourly_set_analysis_type, - PyDoc_STR("*float*: Analysis Type\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Analysis Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``analysis_type``:\n\n\t - num_wells_getem\n"), NULL}, {"casing_size", (getter)GeoHourly_get_casing_size,(setter)GeoHourly_set_casing_size, - PyDoc_STR("*float*: Production pump casing size [in]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Production pump casing size [in]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``casing_size``:\n\n\t - num_wells_getem\n"), NULL}, {"conversion_subtype", (getter)GeoHourly_get_conversion_subtype,(setter)GeoHourly_set_conversion_subtype, - PyDoc_STR("*float*: Conversion Subtype\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Conversion Subtype\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``conversion_subtype``:\n\n\t - num_wells_getem\n"), NULL}, {"conversion_type", (getter)GeoHourly_get_conversion_type,(setter)GeoHourly_set_conversion_type, - PyDoc_STR("*float*: Conversion Type\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Conversion Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``conversion_type``:\n\n\t - num_wells_getem\n"), NULL}, {"dT_cw_ref", (getter)GeoHourly_get_dT_cw_ref,(setter)GeoHourly_set_dT_cw_ref, - PyDoc_STR("*float*: Design condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Design condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"decline_type", (getter)GeoHourly_get_decline_type,(setter)GeoHourly_set_decline_type, - PyDoc_STR("*float*: Temp decline Type\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Temp decline Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``decline_type``:\n\n\t - num_wells_getem\n"), NULL}, {"delta_pressure_equip", (getter)GeoHourly_get_delta_pressure_equip,(setter)GeoHourly_set_delta_pressure_equip, - PyDoc_STR("*float*: Delta pressure across surface equipment [psi]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Delta pressure across surface equipment [psi]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``delta_pressure_equip``:\n\n\t - num_wells_getem\n"), NULL}, {"design_temp", (getter)GeoHourly_get_design_temp,(setter)GeoHourly_set_design_temp, - PyDoc_STR("*float*: Power block design temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - T_htf_hot_ref\n\t - num_wells_getem\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - resource_temp\n"), + PyDoc_STR("*float*: Power block design temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``design_temp``:\n\n\t - T_htf_hot_ref\n\t - num_wells_getem\n\n\nThe value of ``design_temp`` depends on the following variables:\n\n\t - resource_temp\n"), NULL}, {"dt_prod_well", (getter)GeoHourly_get_dt_prod_well,(setter)GeoHourly_set_dt_prod_well, - PyDoc_STR("*float*: Temperature loss in production well [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Temperature loss in production well [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``dt_prod_well``:\n\n\t - num_wells_getem\n"), NULL}, {"eta_ref", (getter)GeoHourly_get_eta_ref,(setter)GeoHourly_set_eta_ref, - PyDoc_STR("*float*: Desgin conversion efficiency [%]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Desgin conversion efficiency [%]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"excess_pressure_pump", (getter)GeoHourly_get_excess_pressure_pump,(setter)GeoHourly_set_excess_pressure_pump, - PyDoc_STR("*float*: Excess pressure @ pump suction [psi]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Excess pressure @ pump suction [psi]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``excess_pressure_pump``:\n\n\t - num_wells_getem\n"), NULL}, {"file_name", (getter)GeoHourly_get_file_name,(setter)GeoHourly_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"fracture_angle", (getter)GeoHourly_get_fracture_angle,(setter)GeoHourly_set_fracture_angle, - PyDoc_STR("*float*: Fracture angle [deg]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Fracture angle [deg]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``fracture_angle``:\n\n\t - num_wells_getem\n"), NULL}, {"fracture_aperature", (getter)GeoHourly_get_fracture_aperature,(setter)GeoHourly_set_fracture_aperature, - PyDoc_STR("*float*: Fracture aperature [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Fracture aperature [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``fracture_aperature``:\n\n\t - num_wells_getem\n"), NULL}, {"fracture_width", (getter)GeoHourly_get_fracture_width,(setter)GeoHourly_set_fracture_width, - PyDoc_STR("*float*: Fracture width [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Fracture width [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``fracture_width``:\n\n\t - num_wells_getem\n"), NULL}, {"geothermal_analysis_period", (getter)GeoHourly_get_geothermal_analysis_period,(setter)GeoHourly_set_geothermal_analysis_period, - PyDoc_STR("*float*: Analysis Lifetime [years]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Analysis Lifetime [years]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``geothermal_analysis_period``:\n\n\t - num_wells_getem\n"), NULL}, {"hc_ctl1", (getter)GeoHourly_get_hc_ctl1,(setter)GeoHourly_set_hc_ctl1, - PyDoc_STR("*float*: HC Control 1\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 1\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl2", (getter)GeoHourly_get_hc_ctl2,(setter)GeoHourly_set_hc_ctl2, - PyDoc_STR("*float*: HC Control 2\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 2\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl3", (getter)GeoHourly_get_hc_ctl3,(setter)GeoHourly_set_hc_ctl3, - PyDoc_STR("*float*: HC Control 3\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 3\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl4", (getter)GeoHourly_get_hc_ctl4,(setter)GeoHourly_set_hc_ctl4, - PyDoc_STR("*float*: HC Control 4\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 4\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl5", (getter)GeoHourly_get_hc_ctl5,(setter)GeoHourly_set_hc_ctl5, - PyDoc_STR("*float*: HC Control 5\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 5\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl6", (getter)GeoHourly_get_hc_ctl6,(setter)GeoHourly_set_hc_ctl6, - PyDoc_STR("*float*: HC Control 6\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 6\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl7", (getter)GeoHourly_get_hc_ctl7,(setter)GeoHourly_set_hc_ctl7, - PyDoc_STR("*float*: HC Control 7\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 7\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl8", (getter)GeoHourly_get_hc_ctl8,(setter)GeoHourly_set_hc_ctl8, - PyDoc_STR("*float*: HC Control 8\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 8\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hc_ctl9", (getter)GeoHourly_get_hc_ctl9,(setter)GeoHourly_set_hc_ctl9, - PyDoc_STR("*float*: HC Control 9\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: HC Control 9\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"hr_pl_nlev", (getter)GeoHourly_get_hr_pl_nlev,(setter)GeoHourly_set_hr_pl_nlev, - PyDoc_STR("*float*: # part-load increments [(0-9)]\n\n*Constraints*: INTEGER\n\n*Required*: True if ui_calculations_only=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: # part-load increments [(0-9)]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if ui_calculations_only=0\n\nThe value of the following variables depends on ``hr_pl_nlev``:\n\n\t - num_wells_getem\n"), NULL}, {"hybrid_dispatch_schedule", (getter)GeoHourly_get_hybrid_dispatch_schedule,(setter)GeoHourly_set_hybrid_dispatch_schedule, - PyDoc_STR("*str*: Daily dispatch schedule\n\n*Constraints*: TOUSCHED\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*str*: Daily dispatch schedule\n\n**Constraints:**\nTOUSCHED\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"inj_prod_well_distance", (getter)GeoHourly_get_inj_prod_well_distance,(setter)GeoHourly_set_inj_prod_well_distance, - PyDoc_STR("*float*: Distance from injection to production wells [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Distance from injection to production wells [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``inj_prod_well_distance``:\n\n\t - num_wells_getem\n"), NULL}, {"inj_well_diam", (getter)GeoHourly_get_inj_well_diam,(setter)GeoHourly_set_inj_well_diam, - PyDoc_STR("*float*: Injection well diameter [in]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Injection well diameter [in]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``inj_well_diam``:\n\n\t - num_wells_getem\n"), NULL}, {"model_choice", (getter)GeoHourly_get_model_choice,(setter)GeoHourly_set_model_choice, - PyDoc_STR("*float*: Which model to run (0,1,2)\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Which model to run (0,1,2)\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``model_choice``:\n\n\t - num_wells_getem\n"), NULL}, {"nameplate", (getter)GeoHourly_get_nameplate,(setter)GeoHourly_set_nameplate, - PyDoc_STR("*float*: Desired plant output [kW]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Desired plant output [kW]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nameplate``:\n\n\t - num_wells_getem\n"), NULL}, {"num_fractures", (getter)GeoHourly_get_num_fractures,(setter)GeoHourly_set_num_fractures, - PyDoc_STR("*float*: Number of fractures\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Number of fractures\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``num_fractures``:\n\n\t - num_wells_getem\n"), NULL}, {"num_wells", (getter)GeoHourly_get_num_wells,(setter)GeoHourly_set_num_wells, - PyDoc_STR("*float*: Number of Wells\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Number of Wells\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``num_wells``:\n\n\t - num_wells_getem\n"), NULL}, {"num_wells_getem", (getter)GeoHourly_get_num_wells_getem,(setter)GeoHourly_set_num_wells_getem, - PyDoc_STR("*float*: Number of Wells GETEM calc'd\n\n*Required*: True if ui_calculations_only=0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ambient_pressure\n\t - analysis_type\n\t - casing_size\n\t - conversion_subtype\n\t - conversion_type\n\t - decline_type\n\t - delta_pressure_equip\n\t - design_temp\n\t - dt_prod_well\n\t - excess_pressure_pump\n\t - fracture_angle\n\t - fracture_aperature\n\t - fracture_width\n\t - geothermal_analysis_period\n\t - hr_pl_nlev\n\t - inj_prod_well_distance\n\t - inj_well_diam\n\t - model_choice\n\t - nameplate\n\t - num_fractures\n\t - num_wells\n\t - plant_efficiency_input\n\t - pump_efficiency\n\t - reservoir_height\n\t - reservoir_permeability\n\t - reservoir_pressure_change\n\t - reservoir_pressure_change_type\n\t - reservoir_width\n\t - resource_depth\n\t - resource_temp\n\t - resource_type\n\t - rock_density\n\t - rock_specific_heat\n\t - rock_thermal_conductivity\n\t - specified_pump_work_amount\n\t - specify_pump_work\n\t - subsurface_water_loss\n\t - temp_decline_max\n\t - temp_decline_rate\n\t - well_diameter\n\t - well_flow_rate\n\t - wet_bulb_temp\n"), + PyDoc_STR("*float*: Number of Wells GETEM calc'd\n\n**Required:**\nRequired if ui_calculations_only=0\n\nThe value of ``num_wells_getem`` depends on the following variables:\n\n\t - ambient_pressure\n\t - analysis_type\n\t - casing_size\n\t - conversion_subtype\n\t - conversion_type\n\t - decline_type\n\t - delta_pressure_equip\n\t - design_temp\n\t - dt_prod_well\n\t - excess_pressure_pump\n\t - fracture_angle\n\t - fracture_aperature\n\t - fracture_width\n\t - geothermal_analysis_period\n\t - hr_pl_nlev\n\t - inj_prod_well_distance\n\t - inj_well_diam\n\t - model_choice\n\t - nameplate\n\t - num_fractures\n\t - num_wells\n\t - plant_efficiency_input\n\t - pump_efficiency\n\t - reservoir_height\n\t - reservoir_permeability\n\t - reservoir_pressure_change\n\t - reservoir_pressure_change_type\n\t - reservoir_width\n\t - resource_depth\n\t - resource_temp\n\t - resource_type\n\t - rock_density\n\t - rock_specific_heat\n\t - rock_thermal_conductivity\n\t - specified_pump_work_amount\n\t - specify_pump_work\n\t - subsurface_water_loss\n\t - temp_decline_max\n\t - temp_decline_rate\n\t - well_diameter\n\t - well_flow_rate\n\t - wet_bulb_temp\n"), NULL}, {"pb_bd_frac", (getter)GeoHourly_get_pb_bd_frac,(setter)GeoHourly_set_pb_bd_frac, - PyDoc_STR("*float*: Blowdown steam fraction [%]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Blowdown steam fraction [%]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"plant_efficiency_input", (getter)GeoHourly_get_plant_efficiency_input,(setter)GeoHourly_set_plant_efficiency_input, - PyDoc_STR("*float*: Plant efficiency\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Plant efficiency\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``plant_efficiency_input``:\n\n\t - num_wells_getem\n"), NULL}, {"pump_efficiency", (getter)GeoHourly_get_pump_efficiency,(setter)GeoHourly_set_pump_efficiency, - PyDoc_STR("*float*: Pump efficiency [%]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Pump efficiency [%]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``pump_efficiency``:\n\n\t - num_wells_getem\n"), NULL}, {"q_sby_frac", (getter)GeoHourly_get_q_sby_frac,(setter)GeoHourly_set_q_sby_frac, - PyDoc_STR("*float*: % thermal power for standby mode [%]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: % thermal power for standby mode [%]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"reservoir_height", (getter)GeoHourly_get_reservoir_height,(setter)GeoHourly_set_reservoir_height, - PyDoc_STR("*float*: Reservoir height [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Reservoir height [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reservoir_height``:\n\n\t - num_wells_getem\n"), NULL}, {"reservoir_permeability", (getter)GeoHourly_get_reservoir_permeability,(setter)GeoHourly_set_reservoir_permeability, - PyDoc_STR("*float*: Reservoir Permeability [darcys]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Reservoir Permeability [darcys]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reservoir_permeability``:\n\n\t - num_wells_getem\n"), NULL}, {"reservoir_pressure_change", (getter)GeoHourly_get_reservoir_pressure_change,(setter)GeoHourly_set_reservoir_pressure_change, - PyDoc_STR("*float*: Pressure change [psi-h/1000lb]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Pressure change [psi-h/1000lb]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reservoir_pressure_change``:\n\n\t - num_wells_getem\n"), NULL}, {"reservoir_pressure_change_type", (getter)GeoHourly_get_reservoir_pressure_change_type,(setter)GeoHourly_set_reservoir_pressure_change_type, - PyDoc_STR("*float*: Reservoir pressure change type\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Reservoir pressure change type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reservoir_pressure_change_type``:\n\n\t - num_wells_getem\n"), NULL}, {"reservoir_width", (getter)GeoHourly_get_reservoir_width,(setter)GeoHourly_set_reservoir_width, - PyDoc_STR("*float*: Reservoir width [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Reservoir width [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reservoir_width``:\n\n\t - num_wells_getem\n"), NULL}, {"resource_depth", (getter)GeoHourly_get_resource_depth,(setter)GeoHourly_set_resource_depth, - PyDoc_STR("*float*: Resource Depth [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Resource Depth [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``resource_depth``:\n\n\t - num_wells_getem\n"), NULL}, {"resource_potential", (getter)GeoHourly_get_resource_potential,(setter)GeoHourly_set_resource_potential, - PyDoc_STR("*float*: Resource Potential [MW]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Resource Potential [MW]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"resource_temp", (getter)GeoHourly_get_resource_temp,(setter)GeoHourly_set_resource_temp, - PyDoc_STR("*float*: Resource Temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - T_htf_hot_ref\n\t - design_temp\n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Resource Temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``resource_temp``:\n\n\t - T_htf_hot_ref\n\t - design_temp\n\t - num_wells_getem\n"), NULL}, {"resource_type", (getter)GeoHourly_get_resource_type,(setter)GeoHourly_set_resource_type, - PyDoc_STR("*float*: Type of Resource\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Type of Resource\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``resource_type``:\n\n\t - num_wells_getem\n"), NULL}, {"rock_density", (getter)GeoHourly_get_rock_density,(setter)GeoHourly_set_rock_density, - PyDoc_STR("*float*: Rock density [kg/m^3]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Rock density [kg/m^3]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``rock_density``:\n\n\t - num_wells_getem\n"), NULL}, {"rock_specific_heat", (getter)GeoHourly_get_rock_specific_heat,(setter)GeoHourly_set_rock_specific_heat, - PyDoc_STR("*float*: Rock specific heat [J/kg-C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Rock specific heat [J/kg-C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``rock_specific_heat``:\n\n\t - num_wells_getem\n"), NULL}, {"rock_thermal_conductivity", (getter)GeoHourly_get_rock_thermal_conductivity,(setter)GeoHourly_set_rock_thermal_conductivity, - PyDoc_STR("*float*: Rock thermal conductivity [J/m-day-C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Rock thermal conductivity [J/m-day-C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``rock_thermal_conductivity``:\n\n\t - num_wells_getem\n"), NULL}, {"specified_pump_work_amount", (getter)GeoHourly_get_specified_pump_work_amount,(setter)GeoHourly_set_specified_pump_work_amount, - PyDoc_STR("*float*: Pump work specified by user [MW]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Pump work specified by user [MW]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``specified_pump_work_amount``:\n\n\t - num_wells_getem\n"), NULL}, {"specify_pump_work", (getter)GeoHourly_get_specify_pump_work,(setter)GeoHourly_set_specify_pump_work, - PyDoc_STR("*float*: Did user specify pump work? [0 or 1]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Did user specify pump work? [0 or 1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``specify_pump_work``:\n\n\t - num_wells_getem\n"), NULL}, {"startup_frac", (getter)GeoHourly_get_startup_frac,(setter)GeoHourly_set_startup_frac, - PyDoc_STR("*float*: % thermal power for startup [%]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: % thermal power for startup [%]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"startup_time", (getter)GeoHourly_get_startup_time,(setter)GeoHourly_set_startup_time, - PyDoc_STR("*float*: Hours to start power block [hours]\n\n*Required*: True if ui_calculations_only=0"), + PyDoc_STR("*float*: Hours to start power block [hours]\n\n**Required:**\nRequired if ui_calculations_only=0"), NULL}, {"subsurface_water_loss", (getter)GeoHourly_get_subsurface_water_loss,(setter)GeoHourly_set_subsurface_water_loss, - PyDoc_STR("*float*: Subsurface water loss [%]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Subsurface water loss [%]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``subsurface_water_loss``:\n\n\t - num_wells_getem\n"), NULL}, {"system_use_lifetime_output", (getter)GeoHourly_get_system_use_lifetime_output,(setter)GeoHourly_set_system_use_lifetime_output, - PyDoc_STR("*float*: Geothermal lifetime simulation [0/1]\n\n*Options*: 0=SingleYearRepeated,1=RunEveryYear\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Geothermal lifetime simulation [0/1]\n\n**Options:**\n0=SingleYearRepeated,1=RunEveryYear\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"temp_decline_max", (getter)GeoHourly_get_temp_decline_max,(setter)GeoHourly_set_temp_decline_max, - PyDoc_STR("*float*: Maximum temperature decline [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Maximum temperature decline [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``temp_decline_max``:\n\n\t - num_wells_getem\n"), NULL}, {"temp_decline_rate", (getter)GeoHourly_get_temp_decline_rate,(setter)GeoHourly_set_temp_decline_rate, - PyDoc_STR("*float*: Temperature decline rate [%/yr]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Temperature decline rate [%/yr]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``temp_decline_rate``:\n\n\t - num_wells_getem\n"), NULL}, {"ui_calculations_only", (getter)GeoHourly_get_ui_calculations_only,(setter)GeoHourly_set_ui_calculations_only, - PyDoc_STR("*float*: If = 1, only run UI calculations\n\n*Required*: True"), + PyDoc_STR("*float*: If = 1, only run UI calculations\n\n**Required:**\nTrue"), NULL}, {"well_diameter", (getter)GeoHourly_get_well_diameter,(setter)GeoHourly_set_well_diameter, - PyDoc_STR("*float*: Production well diameter [in]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Production well diameter [in]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``well_diameter``:\n\n\t - num_wells_getem\n"), NULL}, {"well_flow_rate", (getter)GeoHourly_get_well_flow_rate,(setter)GeoHourly_set_well_flow_rate, - PyDoc_STR("*float*: Production flow rate per well [kg/s]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Production flow rate per well [kg/s]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``well_flow_rate``:\n\n\t - num_wells_getem\n"), NULL}, {"wet_bulb_temp", (getter)GeoHourly_get_wet_bulb_temp,(setter)GeoHourly_set_wet_bulb_temp, - PyDoc_STR("*float*: Wet Bulb Temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - num_wells_getem\n"), + PyDoc_STR("*float*: Wet Bulb Temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wet_bulb_temp``:\n\n\t - num_wells_getem\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1286,11 +1286,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2085,12 +2085,11 @@ static PyMethodDef GeothermalModule_methods[] = { {"new", Geothermal_new, METH_VARARGS, PyDoc_STR("new() -> Geothermal")}, {"default", Geothermal_default, METH_VARARGS, - PyDoc_STR("default(config) -> Geothermal\n\nUse default attributes\n" - "`config` options:\n\n- \"GeothermalPowerAllEquityPartnershipFlip\"\n- \"GeothermalPowerLCOECalculator\"\n- \"GeothermalPowerLeveragedPartnershipFlip\"\n- \"GeothermalPowerMerchantPlant\"\n- \"GeothermalPowerNone\"\n- \"GeothermalPowerSaleLeaseback\"\n- \"GeothermalPowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Geothermal\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"GeothermalPowerAllEquityPartnershipFlip\"*\n\n - *\"GeothermalPowerLCOECalculator\"*\n\n - *\"GeothermalPowerLeveragedPartnershipFlip\"*\n\n - *\"GeothermalPowerMerchantPlant\"*\n\n - *\"GeothermalPowerNone\"*\n\n - *\"GeothermalPowerSaleLeaseback\"*\n\n - *\"GeothermalPowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Geothermal_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Geothermal\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Geothermal\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Geothermal_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Geothermal\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Geothermal\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/GeothermalCosts.c b/modules/GeothermalCosts.c index afe13e64..c7bcbaf6 100644 --- a/modules/GeothermalCosts.c +++ b/modules/GeothermalCosts.c @@ -69,11 +69,11 @@ GeoHourly_export(VarGroupObject *self, PyObject *args) static PyMethodDef GeoHourly_methods[] = { {"assign", (PyCFunction)GeoHourly_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GeoHourly_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GeoHourly_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GeoHourly_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GeoHourly_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GeoHourly_vals = { var: val, ...}``")}, {"export", (PyCFunction)GeoHourly_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -415,88 +415,88 @@ GeoHourly_set_x_lp(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef GeoHourly_getset[] = { {"GF_flowrate", (getter)GeoHourly_get_GF_flowrate,(setter)GeoHourly_set_GF_flowrate, - PyDoc_STR("*float*: GF Flow Rate [lb/h]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: GF Flow Rate [lb/h]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"condensate_pump_power", (getter)GeoHourly_get_condensate_pump_power,(setter)GeoHourly_set_condensate_pump_power, - PyDoc_STR("*float*: hp\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: hp\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"conversion_type", (getter)GeoHourly_get_conversion_type,(setter)GeoHourly_set_conversion_type, - PyDoc_STR("*float*: Conversion Type\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Conversion Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"cw_pump_head", (getter)GeoHourly_get_cw_pump_head,(setter)GeoHourly_set_cw_pump_head, - PyDoc_STR("*float*: Cooling Water Pump Head [lb/h]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Cooling Water Pump Head [lb/h]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"cw_pump_work", (getter)GeoHourly_get_cw_pump_work,(setter)GeoHourly_set_cw_pump_work, - PyDoc_STR("*float*: CW Pump Work [kW]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: CW Pump Work [kW]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"cwflow", (getter)GeoHourly_get_cwflow,(setter)GeoHourly_set_cwflow, - PyDoc_STR("*float*: Cooling Water Flow [lb/h]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Cooling Water Flow [lb/h]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"design_temp", (getter)GeoHourly_get_design_temp,(setter)GeoHourly_set_design_temp, - PyDoc_STR("*float*: Power block design temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Power block design temperature [C]\n\n**Required:**\nTrue"), NULL}, {"eff_secondlaw", (getter)GeoHourly_get_eff_secondlaw,(setter)GeoHourly_set_eff_secondlaw, - PyDoc_STR("*float*: Second Law Efficiency [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Second Law Efficiency [%]\n\n**Required:**\nTrue"), NULL}, {"flash_count", (getter)GeoHourly_get_flash_count,(setter)GeoHourly_set_flash_count, - PyDoc_STR("*float*: Flash Count [(1 -2)]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Flash Count [(1 -2)]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"gross_output", (getter)GeoHourly_get_gross_output,(setter)GeoHourly_set_gross_output, - PyDoc_STR("*float*: Gross output from GETEM [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Gross output from GETEM [kW]\n\n**Required:**\nTrue"), NULL}, {"hp_flash_pressure", (getter)GeoHourly_get_hp_flash_pressure,(setter)GeoHourly_set_hp_flash_pressure, - PyDoc_STR("*float*: HP Flash Pressure [psia]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: HP Flash Pressure [psia]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"lp_flash_pressure", (getter)GeoHourly_get_lp_flash_pressure,(setter)GeoHourly_set_lp_flash_pressure, - PyDoc_STR("*float*: LP Flash Pressure [psia]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: LP Flash Pressure [psia]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"ncg_condensate_pump", (getter)GeoHourly_get_ncg_condensate_pump,(setter)GeoHourly_set_ncg_condensate_pump, - PyDoc_STR("*float*: Condensate Pump Work [kW]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Condensate Pump Work [kW]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"pressure_ratio_1", (getter)GeoHourly_get_pressure_ratio_1,(setter)GeoHourly_set_pressure_ratio_1, - PyDoc_STR("*float*: Suction Steam Ratio 1\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Suction Steam Ratio 1\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"pressure_ratio_2", (getter)GeoHourly_get_pressure_ratio_2,(setter)GeoHourly_set_pressure_ratio_2, - PyDoc_STR("*float*: Suction Steam Ratio 2\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Suction Steam Ratio 2\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"pressure_ratio_3", (getter)GeoHourly_get_pressure_ratio_3,(setter)GeoHourly_set_pressure_ratio_3, - PyDoc_STR("*float*: Suction Steam Ratio 3\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Suction Steam Ratio 3\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"qCondenser", (getter)GeoHourly_get_qCondenser,(setter)GeoHourly_set_qCondenser, - PyDoc_STR("*float*: Condenser Heat Rejected [btu/h]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Condenser Heat Rejected [btu/h]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"qRejectByStage_1", (getter)GeoHourly_get_qRejectByStage_1,(setter)GeoHourly_set_qRejectByStage_1, - PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 1 [BTU/hr]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 1 [BTU/hr]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"qRejectByStage_2", (getter)GeoHourly_get_qRejectByStage_2,(setter)GeoHourly_set_qRejectByStage_2, - PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 2 [BTU/hr]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 2 [BTU/hr]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"qRejectByStage_3", (getter)GeoHourly_get_qRejectByStage_3,(setter)GeoHourly_set_qRejectByStage_3, - PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 3 [BTU/hr]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Heat Rejected by NCG Condenser Stage 3 [BTU/hr]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"qRejectTotal", (getter)GeoHourly_get_qRejectTotal,(setter)GeoHourly_set_qRejectTotal, - PyDoc_STR("*float*: Total Rejected Heat [btu/h]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Total Rejected Heat [btu/h]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"spec_vol", (getter)GeoHourly_get_spec_vol,(setter)GeoHourly_set_spec_vol, - PyDoc_STR("*float*: Specific Volume [cft/lb]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Specific Volume [cft/lb]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"spec_vol_lp", (getter)GeoHourly_get_spec_vol_lp,(setter)GeoHourly_set_spec_vol_lp, - PyDoc_STR("*float*: LP Specific Volume [cft/lb]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: LP Specific Volume [cft/lb]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"v_stage_1", (getter)GeoHourly_get_v_stage_1,(setter)GeoHourly_set_v_stage_1, - PyDoc_STR("*float*: Vacumm Pump Stage 1 [kW]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Vacumm Pump Stage 1 [kW]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"v_stage_2", (getter)GeoHourly_get_v_stage_2,(setter)GeoHourly_set_v_stage_2, - PyDoc_STR("*float*: Vacumm Pump Stage 2 [kW]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Vacumm Pump Stage 2 [kW]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"v_stage_3", (getter)GeoHourly_get_v_stage_3,(setter)GeoHourly_set_v_stage_3, - PyDoc_STR("*float*: Vacumm Pump Stage 3 [kW]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: Vacumm Pump Stage 3 [kW]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"x_hp", (getter)GeoHourly_get_x_hp,(setter)GeoHourly_set_x_hp, - PyDoc_STR("*float*: HP Mass Fraction [%]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: HP Mass Fraction [%]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {"x_lp", (getter)GeoHourly_get_x_lp,(setter)GeoHourly_set_x_lp, - PyDoc_STR("*float*: LP Mass Fraction [%]\n\n*Required*: True if conversion_type=1"), + PyDoc_STR("*float*: LP Mass Fraction [%]\n\n**Required:**\nRequired if conversion_type=1"), NULL}, {NULL} /* Sentinel */ }; @@ -611,11 +611,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -954,12 +954,11 @@ static PyMethodDef GeothermalCostsModule_methods[] = { {"new", GeothermalCosts_new, METH_VARARGS, PyDoc_STR("new() -> GeothermalCosts")}, {"default", GeothermalCosts_default, METH_VARARGS, - PyDoc_STR("default(config) -> GeothermalCosts\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> GeothermalCosts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", GeothermalCosts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> GeothermalCosts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> GeothermalCosts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", GeothermalCosts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> GeothermalCosts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> GeothermalCosts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Grid.c b/modules/Grid.c index 6acaeb04..22b00cbd 100644 --- a/modules/Grid.c +++ b/modules/Grid.c @@ -69,11 +69,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Info*: The number of years in the simulation\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Info:**\nThe number of years in the simulation\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n*Options*: 0=SingleYearRepeated,1=RunEveryYear\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Lifetime simulation [0/1]\n\n**Options:**\n0=SingleYearRepeated,1=RunEveryYear\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -258,7 +258,7 @@ static PyGetSetDef SystemOutput_getset[] = { PyDoc_STR("*float*: Annual Energy AC (year 1) [kWh]"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: System power generated [kW]\n\n*Info*: Lifetime system generation"), + PyDoc_STR("*sequence*: System power generated [kW]\n\n**Info:**\nLifetime system generation"), NULL}, {NULL} /* Sentinel */ }; @@ -373,11 +373,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -434,13 +434,13 @@ static PyGetSetDef Load_getset[] = { PyDoc_STR("*sequence*: Critical electricity load (year 1) [kW]"), NULL}, {"grid_outage", (getter)Load_get_grid_outage,(setter)Load_set_grid_outage, - PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n*Options*: 0=GridAvailable,1=GridUnavailable,Length=load"), + PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n**Options:**\n0=GridAvailable,1=GridUnavailable,Length=load"), NULL}, {"load", (getter)Load_get_load,(setter)Load_set_load, PyDoc_STR("*sequence*: Electricity load (year 1) [kW]"), NULL}, {"load_escalation", (getter)Load_get_load_escalation,(setter)Load_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -555,11 +555,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -601,10 +601,10 @@ GridLimits_set_grid_interconnection_limit_kwac(VarGroupObject *self, PyObject *v static PyGetSetDef GridLimits_getset[] = { {"enable_interconnection_limit", (getter)GridLimits_get_enable_interconnection_limit,(setter)GridLimits_set_enable_interconnection_limit, - PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n*Info*: Enable a grid interconnection limit"), + PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n**Info:**\nEnable a grid interconnection limit"), NULL}, {"grid_curtailment", (getter)GridLimits_get_grid_curtailment,(setter)GridLimits_set_grid_curtailment, - PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"grid_interconnection_limit_kwac", (getter)GridLimits_get_grid_interconnection_limit_kwac,(setter)GridLimits_set_grid_interconnection_limit_kwac, PyDoc_STR("*float*: Grid interconnection limit [kWac]"), @@ -722,11 +722,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -831,10 +831,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Annual Energy AC pre-interconnection (year 1) [kWh]"), NULL}, {"capacity_factor_curtailment_ac", (getter)Outputs_get_capacity_factor_curtailment_ac,(setter)0, - PyDoc_STR("*float*: Capacity factor of the curtailment (year 1) [%]"), + PyDoc_STR("*float*: Capacity factor based on AC electricity after curtailment and AC interconnection limit [%]"), NULL}, {"capacity_factor_interconnect_ac", (getter)Outputs_get_capacity_factor_interconnect_ac,(setter)0, - PyDoc_STR("*float*: Capacity factor of the interconnection (year 1) [%]"), + PyDoc_STR("*float*: Capacity factor based on AC interconnection limit [%]"), NULL}, {"full_load", (getter)Outputs_get_full_load,(setter)0, PyDoc_STR("*sequence*: Electricity load prior to grid outage (year 1) [kW]"), @@ -1185,12 +1185,11 @@ static PyMethodDef GridModule_methods[] = { {"new", Grid_new, METH_VARARGS, PyDoc_STR("new() -> Grid")}, {"default", Grid_default, METH_VARARGS, - PyDoc_STR("default(config) -> Grid\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerAllEquityPartnershipFlip\"\n- \"BiopowerLCOECalculator\"\n- \"BiopowerLeveragedPartnershipFlip\"\n- \"BiopowerMerchantPlant\"\n- \"BiopowerNone\"\n- \"BiopowerSaleLeaseback\"\n- \"BiopowerSingleOwner\"\n- \"DSLFAllEquityPartnershipFlip\"\n- \"DSLFCommercial\"\n- \"DSLFLCOECalculator\"\n- \"DSLFLeveragedPartnershipFlip\"\n- \"DSLFMerchantPlant\"\n- \"DSLFNone\"\n- \"DSLFSaleLeaseback\"\n- \"DSLFSingleOwner\"\n- \"FlatPlatePVAllEquityPartnershipFlip\"\n- \"FlatPlatePVCommercial\"\n- \"FlatPlatePVHostDeveloper\"\n- \"FlatPlatePVLCOECalculator\"\n- \"FlatPlatePVLeveragedPartnershipFlip\"\n- \"FlatPlatePVMerchantPlant\"\n- \"FlatPlatePVNone\"\n- \"FlatPlatePVResidential\"\n- \"FlatPlatePVSaleLeaseback\"\n- \"FlatPlatePVSingleOwner\"\n- \"FlatPlatePVThirdParty\"\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"\n- \"GenericBatteryAllEquityPartnershipFlip\"\n- \"GenericBatteryCommercial\"\n- \"GenericBatteryHostDeveloper\"\n- \"GenericBatteryLeveragedPartnershipFlip\"\n- \"GenericBatteryMerchantPlant\"\n- \"GenericBatteryResidential\"\n- \"GenericBatterySaleLeaseback\"\n- \"GenericBatterySingleOwner\"\n- \"GenericBatteryThirdParty\"\n- \"GenericCSPSystemAllEquityPartnershipFlip\"\n- \"GenericCSPSystemCommercial\"\n- \"GenericCSPSystemLCOECalculator\"\n- \"GenericCSPSystemLeveragedPartnershipFlip\"\n- \"GenericCSPSystemMerchantPlant\"\n- \"GenericCSPSystemNone\"\n- \"GenericCSPSystemSaleLeaseback\"\n- \"GenericCSPSystemSingleOwner\"\n- \"GenericSystemAllEquityPartnershipFlip\"\n- \"GenericSystemCommercial\"\n- \"GenericSystemHostDeveloper\"\n- \"GenericSystemLCOECalculator\"\n- \"GenericSystemLeveragedPartnershipFlip\"\n- \"GenericSystemMerchantPlant\"\n- \"GenericSystemNone\"\n- \"GenericSystemResidential\"\n- \"GenericSystemSaleLeaseback\"\n- \"GenericSystemSingleOwner\"\n- \"GenericSystemThirdParty\"\n- \"GeothermalPowerAllEquityPartnershipFlip\"\n- \"GeothermalPowerLCOECalculator\"\n- \"GeothermalPowerLeveragedPartnershipFlip\"\n- \"GeothermalPowerMerchantPlant\"\n- \"GeothermalPowerNone\"\n- \"GeothermalPowerSaleLeaseback\"\n- \"GeothermalPowerSingleOwner\"\n- \"HighXConcentratingPVAllEquityPartnershipFlip\"\n- \"HighXConcentratingPVLCOECalculator\"\n- \"HighXConcentratingPVLeveragedPartnershipFlip\"\n- \"HighXConcentratingPVMerchantPlant\"\n- \"HighXConcentratingPVNone\"\n- \"HighXConcentratingPVSaleLeaseback\"\n- \"HighXConcentratingPVSingleOwner\"\n- \"MSLFAllEquityPartnershipFlip\"\n- \"MSLFCommercial\"\n- \"MSLFLCOECalculator\"\n- \"MSLFLeveragedPartnershipFlip\"\n- \"MSLFMerchantPlant\"\n- \"MSLFNone\"\n- \"MSLFSaleLeaseback\"\n- \"MSLFSingleOwner\"\n- \"MSPTAllEquityPartnershipFlip\"\n- \"MSPTLeveragedPartnershipFlip\"\n- \"MSPTMerchantPlant\"\n- \"MSPTSaleLeaseback\"\n- \"MSPTSingleOwner\"\n- \"PVBatteryAllEquityPartnershipFlip\"\n- \"PVBatteryCommercial\"\n- \"PVBatteryHostDeveloper\"\n- \"PVBatteryLeveragedPartnershipFlip\"\n- \"PVBatteryMerchantPlant\"\n- \"PVBatteryResidential\"\n- \"PVBatterySaleLeaseback\"\n- \"PVBatterySingleOwner\"\n- \"PVBatteryThirdParty\"\n- \"PVWattsBatteryCommercial\"\n- \"PVWattsBatteryHostDeveloper\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsBatteryThirdParty\"\n- \"PVWattsAllEquityPartnershipFlip\"\n- \"PVWattsCommercial\"\n- \"PVWattsCommunitySolar\"\n- \"PVWattsHostDeveloper\"\n- \"PVWattsLCOECalculator\"\n- \"PVWattsLeveragedPartnershipFlip\"\n- \"PVWattsMerchantPlant\"\n- \"PVWattsNone\"\n- \"PVWattsResidential\"\n- \"PVWattsSaleLeaseback\"\n- \"PVWattsSingleOwner\"\n- \"PVWattsThirdParty\"\n- \"PhysicalTroughAllEquityPartnershipFlip\"\n- \"PhysicalTroughLCOECalculator\"\n- \"PhysicalTroughLeveragedPartnershipFlip\"\n- \"PhysicalTroughMerchantPlant\"\n- \"PhysicalTroughNone\"\n- \"PhysicalTroughSaleLeaseback\"\n- \"PhysicalTroughSingleOwner\"\n- \"StandaloneBatteryAllEquityPartnershipFlip\"\n- \"StandaloneBatteryCommercial\"\n- \"StandaloneBatteryHostDeveloper\"\n- \"StandaloneBatteryLeveragedPartnershipFlip\"\n- \"StandaloneBatteryMerchantPlant\"\n- \"StandaloneBatteryResidential\"\n- \"StandaloneBatterySaleLeaseback\"\n- \"StandaloneBatterySingleOwner\"\n- \"StandaloneBatteryThirdParty\"\n- \"WindPowerAllEquityPartnershipFlip\"\n- \"WindPowerCommercial\"\n- \"WindPowerLCOECalculator\"\n- \"WindPowerLeveragedPartnershipFlip\"\n- \"WindPowerMerchantPlant\"\n- \"WindPowerNone\"\n- \"WindPowerResidential\"\n- \"WindPowerSaleLeaseback\"\n- \"WindPowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Grid\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerAllEquityPartnershipFlip\"*\n\n - *\"BiopowerLCOECalculator\"*\n\n - *\"BiopowerLeveragedPartnershipFlip\"*\n\n - *\"BiopowerMerchantPlant\"*\n\n - *\"BiopowerNone\"*\n\n - *\"BiopowerSaleLeaseback\"*\n\n - *\"BiopowerSingleOwner\"*\n\n - *\"DSLFAllEquityPartnershipFlip\"*\n\n - *\"DSLFCommercial\"*\n\n - *\"DSLFLCOECalculator\"*\n\n - *\"DSLFLeveragedPartnershipFlip\"*\n\n - *\"DSLFMerchantPlant\"*\n\n - *\"DSLFNone\"*\n\n - *\"DSLFSaleLeaseback\"*\n\n - *\"DSLFSingleOwner\"*\n\n - *\"FlatPlatePVAllEquityPartnershipFlip\"*\n\n - *\"FlatPlatePVCommercial\"*\n\n - *\"FlatPlatePVHostDeveloper\"*\n\n - *\"FlatPlatePVLCOECalculator\"*\n\n - *\"FlatPlatePVLeveragedPartnershipFlip\"*\n\n - *\"FlatPlatePVMerchantPlant\"*\n\n - *\"FlatPlatePVNone\"*\n\n - *\"FlatPlatePVResidential\"*\n\n - *\"FlatPlatePVSaleLeaseback\"*\n\n - *\"FlatPlatePVSingleOwner\"*\n\n - *\"FlatPlatePVThirdParty\"*\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n - *\"GenericBatteryAllEquityPartnershipFlip\"*\n\n - *\"GenericBatteryCommercial\"*\n\n - *\"GenericBatteryHostDeveloper\"*\n\n - *\"GenericBatteryLeveragedPartnershipFlip\"*\n\n - *\"GenericBatteryMerchantPlant\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericBatterySaleLeaseback\"*\n\n - *\"GenericBatterySingleOwner\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"GenericCSPSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericCSPSystemCommercial\"*\n\n - *\"GenericCSPSystemLCOECalculator\"*\n\n - *\"GenericCSPSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericCSPSystemMerchantPlant\"*\n\n - *\"GenericCSPSystemNone\"*\n\n - *\"GenericCSPSystemSaleLeaseback\"*\n\n - *\"GenericCSPSystemSingleOwner\"*\n\n - *\"GenericSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericSystemCommercial\"*\n\n - *\"GenericSystemHostDeveloper\"*\n\n - *\"GenericSystemLCOECalculator\"*\n\n - *\"GenericSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericSystemMerchantPlant\"*\n\n - *\"GenericSystemNone\"*\n\n - *\"GenericSystemResidential\"*\n\n - *\"GenericSystemSaleLeaseback\"*\n\n - *\"GenericSystemSingleOwner\"*\n\n - *\"GenericSystemThirdParty\"*\n\n - *\"GeothermalPowerAllEquityPartnershipFlip\"*\n\n - *\"GeothermalPowerLCOECalculator\"*\n\n - *\"GeothermalPowerLeveragedPartnershipFlip\"*\n\n - *\"GeothermalPowerMerchantPlant\"*\n\n - *\"GeothermalPowerNone\"*\n\n - *\"GeothermalPowerSaleLeaseback\"*\n\n - *\"GeothermalPowerSingleOwner\"*\n\n - *\"HighXConcentratingPVAllEquityPartnershipFlip\"*\n\n - *\"HighXConcentratingPVLCOECalculator\"*\n\n - *\"HighXConcentratingPVLeveragedPartnershipFlip\"*\n\n - *\"HighXConcentratingPVMerchantPlant\"*\n\n - *\"HighXConcentratingPVNone\"*\n\n - *\"HighXConcentratingPVSaleLeaseback\"*\n\n - *\"HighXConcentratingPVSingleOwner\"*\n\n - *\"MSLFAllEquityPartnershipFlip\"*\n\n - *\"MSLFCommercial\"*\n\n - *\"MSLFLCOECalculator\"*\n\n - *\"MSLFLeveragedPartnershipFlip\"*\n\n - *\"MSLFMerchantPlant\"*\n\n - *\"MSLFNone\"*\n\n - *\"MSLFSaleLeaseback\"*\n\n - *\"MSLFSingleOwner\"*\n\n - *\"MSPTAllEquityPartnershipFlip\"*\n\n - *\"MSPTLeveragedPartnershipFlip\"*\n\n - *\"MSPTMerchantPlant\"*\n\n - *\"MSPTSaleLeaseback\"*\n\n - *\"MSPTSingleOwner\"*\n\n - *\"PVBatteryAllEquityPartnershipFlip\"*\n\n - *\"PVBatteryCommercial\"*\n\n - *\"PVBatteryHostDeveloper\"*\n\n - *\"PVBatteryLeveragedPartnershipFlip\"*\n\n - *\"PVBatteryMerchantPlant\"*\n\n - *\"PVBatteryResidential\"*\n\n - *\"PVBatterySaleLeaseback\"*\n\n - *\"PVBatterySingleOwner\"*\n\n - *\"PVBatteryThirdParty\"*\n\n - *\"PVWattsBatteryCommercial\"*\n\n - *\"PVWattsBatteryHostDeveloper\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n - *\"PVWattsAllEquityPartnershipFlip\"*\n\n - *\"PVWattsCommercial\"*\n\n - *\"PVWattsCommunitySolar\"*\n\n - *\"PVWattsHostDeveloper\"*\n\n - *\"PVWattsLCOECalculator\"*\n\n - *\"PVWattsLeveragedPartnershipFlip\"*\n\n - *\"PVWattsMerchantPlant\"*\n\n - *\"PVWattsNone\"*\n\n - *\"PVWattsResidential\"*\n\n - *\"PVWattsSaleLeaseback\"*\n\n - *\"PVWattsSingleOwner\"*\n\n - *\"PVWattsThirdParty\"*\n\n - *\"PhysicalTroughAllEquityPartnershipFlip\"*\n\n - *\"PhysicalTroughLCOECalculator\"*\n\n - *\"PhysicalTroughLeveragedPartnershipFlip\"*\n\n - *\"PhysicalTroughMerchantPlant\"*\n\n - *\"PhysicalTroughNone\"*\n\n - *\"PhysicalTroughSaleLeaseback\"*\n\n - *\"PhysicalTroughSingleOwner\"*\n\n - *\"StandaloneBatteryAllEquityPartnershipFlip\"*\n\n - *\"StandaloneBatteryCommercial\"*\n\n - *\"StandaloneBatteryHostDeveloper\"*\n\n - *\"StandaloneBatteryLeveragedPartnershipFlip\"*\n\n - *\"StandaloneBatteryMerchantPlant\"*\n\n - *\"StandaloneBatteryResidential\"*\n\n - *\"StandaloneBatterySaleLeaseback\"*\n\n - *\"StandaloneBatterySingleOwner\"*\n\n - *\"StandaloneBatteryThirdParty\"*\n\n - *\"WindPowerAllEquityPartnershipFlip\"*\n\n - *\"WindPowerCommercial\"*\n\n - *\"WindPowerLCOECalculator\"*\n\n - *\"WindPowerLeveragedPartnershipFlip\"*\n\n - *\"WindPowerMerchantPlant\"*\n\n - *\"WindPowerNone\"*\n\n - *\"WindPowerResidential\"*\n\n - *\"WindPowerSaleLeaseback\"*\n\n - *\"WindPowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Grid_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Grid\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Grid\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Grid_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Grid\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Grid\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Hcpv.c b/modules/Hcpv.c index b19556ff..b2867489 100644 --- a/modules/Hcpv.c +++ b/modules/Hcpv.c @@ -69,11 +69,11 @@ SolarResourceData_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResourceData_methods[] = { {"assign", (PyCFunction)SolarResourceData_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResourceData_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResourceData_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResourceData_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResourceData_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResourceData_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResourceData_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ SolarResourceData_set_file_name(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SolarResourceData_getset[] = { {"file_name", (getter)SolarResourceData_get_file_name,(setter)SolarResourceData_set_file_name, - PyDoc_STR("*str*: Weather file in TMY2, TMY3, EPW, or SMW.\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Weather file in TMY2, TMY3, EPW, or SMW.\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ PVWatts_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVWatts_methods[] = { {"assign", (PyCFunction)PVWatts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVWatts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVWatts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVWatts_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVWatts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -228,7 +228,7 @@ PVWatts_set_system_capacity(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef PVWatts_getset[] = { {"system_capacity", (getter)PVWatts_get_system_capacity,(setter)PVWatts_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - array_modules_per_tracker\n\t - array_num_trackers\n\t - module_a0\n\t - module_a1\n\t - module_a2\n\t - module_a3\n\t - module_a4\n\t - module_alignment_error\n\t - module_cell_area\n\t - module_concentration\n\t - module_flutter_loss_coeff\n\t - module_ncells\n\t - module_optical_error\n\t - module_reference\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - array_modules_per_tracker\n\t - array_num_trackers\n\t - module_a0\n\t - module_a1\n\t - module_a2\n\t - module_a3\n\t - module_a4\n\t - module_alignment_error\n\t - module_cell_area\n\t - module_concentration\n\t - module_flutter_loss_coeff\n\t - module_ncells\n\t - module_optical_error\n\t - module_reference\n"), NULL}, {NULL} /* Sentinel */ }; @@ -343,11 +343,11 @@ HCPVModule_export(VarGroupObject *self, PyObject *args) static PyMethodDef HCPVModule_methods[] = { {"assign", (PyCFunction)HCPVModule_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HCPVModule_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HCPVModule_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HCPVModule_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HCPVModule_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HCPVModule_vals = { var: val, ...}``")}, {"export", (PyCFunction)HCPVModule_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -569,58 +569,58 @@ HCPVModule_set_module_temp_coeff(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef HCPVModule_getset[] = { {"module_a", (getter)HCPVModule_get_module_a,(setter)HCPVModule_set_module_a, - PyDoc_STR("*float*: Equation variable (a), at high irradiance & low wind speed [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Equation variable (a), at high irradiance & low wind speed [none]\n\n**Required:**\nTrue"), NULL}, {"module_a0", (getter)HCPVModule_get_module_a0,(setter)HCPVModule_set_module_a0, - PyDoc_STR("*float*: Air mass modifier coefficient 0 [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass modifier coefficient 0 [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_a0``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_a1", (getter)HCPVModule_get_module_a1,(setter)HCPVModule_set_module_a1, - PyDoc_STR("*float*: Air mass modifier coefficient 1 [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass modifier coefficient 1 [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_a1``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_a2", (getter)HCPVModule_get_module_a2,(setter)HCPVModule_set_module_a2, - PyDoc_STR("*float*: Air mass modifier coefficient 2 [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass modifier coefficient 2 [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_a2``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_a3", (getter)HCPVModule_get_module_a3,(setter)HCPVModule_set_module_a3, - PyDoc_STR("*float*: Air mass modifier coefficient 3 [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass modifier coefficient 3 [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_a3``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_a4", (getter)HCPVModule_get_module_a4,(setter)HCPVModule_set_module_a4, - PyDoc_STR("*float*: Air mass modifier coefficient 4 [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass modifier coefficient 4 [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_a4``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_alignment_error", (getter)HCPVModule_get_module_alignment_error,(setter)HCPVModule_set_module_alignment_error, - PyDoc_STR("*float*: Alignment loss factor [0..1]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Alignment loss factor [0..1]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_alignment_error``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_b", (getter)HCPVModule_get_module_b,(setter)HCPVModule_set_module_b, - PyDoc_STR("*float*: Equation variable (b), rate at which module temp drops [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Equation variable (b), rate at which module temp drops [none]\n\n**Required:**\nTrue"), NULL}, {"module_cell_area", (getter)HCPVModule_get_module_cell_area,(setter)HCPVModule_set_module_cell_area, - PyDoc_STR("*float*: Single cell area [cm^2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Single cell area [cm^2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_cell_area``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_concentration", (getter)HCPVModule_get_module_concentration,(setter)HCPVModule_set_module_concentration, - PyDoc_STR("*float*: Concentration ratio [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Concentration ratio [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_concentration``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_dT", (getter)HCPVModule_get_module_dT,(setter)HCPVModule_set_module_dT, - PyDoc_STR("*float*: Equation variable (dT), temp diff between heat sink & cell [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Equation variable (dT), temp diff between heat sink & cell [C]\n\n**Required:**\nTrue"), NULL}, {"module_flutter_loss_coeff", (getter)HCPVModule_get_module_flutter_loss_coeff,(setter)HCPVModule_set_module_flutter_loss_coeff, - PyDoc_STR("*float*: Wind flutter loss factor [0..1 per m/s]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Wind flutter loss factor [0..1 per m/s]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_flutter_loss_coeff``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_mjeff", (getter)HCPVModule_get_module_mjeff,(setter)HCPVModule_set_module_mjeff, - PyDoc_STR("*sequence*: Module junction efficiency array [percent]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Module junction efficiency array [percent]\n\n**Required:**\nTrue"), NULL}, {"module_ncells", (getter)HCPVModule_get_module_ncells,(setter)HCPVModule_set_module_ncells, - PyDoc_STR("*float*: Number of cells [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Number of cells [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_ncells``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_optical_error", (getter)HCPVModule_get_module_optical_error,(setter)HCPVModule_set_module_optical_error, - PyDoc_STR("*float*: Optical error factor [0..1]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Optical error factor [0..1]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_optical_error``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_rad", (getter)HCPVModule_get_module_rad,(setter)HCPVModule_set_module_rad, - PyDoc_STR("*sequence*: POA irradiance array [W/m^2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: POA irradiance array [W/m^2]\n\n**Required:**\nTrue"), NULL}, {"module_reference", (getter)HCPVModule_get_module_reference,(setter)HCPVModule_set_module_reference, - PyDoc_STR("*float*: Index in arrays of the reference condition [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Index in arrays of the reference condition [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_reference``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"module_temp_coeff", (getter)HCPVModule_get_module_temp_coeff,(setter)HCPVModule_set_module_temp_coeff, - PyDoc_STR("*float*: Temperature coefficient [%/C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temperature coefficient [%/C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -735,11 +735,11 @@ InverterCECDatabase_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterCECDatabase_methods[] = { {"assign", (PyCFunction)InverterCECDatabase_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterCECDatabase_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterCECDatabase_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -865,34 +865,34 @@ InverterCECDatabase_set_inv_snl_vdco(VarGroupObject *self, PyObject *value, void static PyGetSetDef InverterCECDatabase_getset[] = { {"inv_snl_c0", (getter)InverterCECDatabase_get_inv_snl_c0,(setter)InverterCECDatabase_set_inv_snl_c0, - PyDoc_STR("*float*: Parameter defining the curvature (parabolic) of the relationship between ac-power and dc-power at the reference operating condition, default value of zero gives a linear relationship, (1/W) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: Parameter defining the curvature (parabolic) of the relationship between ac-power and dc-power at the reference operating condition, default value of zero gives a linear relationship, (1/W) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_c1", (getter)InverterCECDatabase_get_inv_snl_c1,(setter)InverterCECDatabase_set_inv_snl_c1, - PyDoc_STR("*float*: Empirical coefficient allowing Pdco to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: Empirical coefficient allowing Pdco to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_c2", (getter)InverterCECDatabase_get_inv_snl_c2,(setter)InverterCECDatabase_set_inv_snl_c2, - PyDoc_STR("*float*: Empirical coefficient allowing Pso to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: Empirical coefficient allowing Pso to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_c3", (getter)InverterCECDatabase_get_inv_snl_c3,(setter)InverterCECDatabase_set_inv_snl_c3, - PyDoc_STR("*float*: Empirical coefficient allowing Co to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: Empirical coefficient allowing Co to vary linearly with dc-voltage input, default value is zero, (1/V) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_paco", (getter)InverterCECDatabase_get_inv_snl_paco,(setter)InverterCECDatabase_set_inv_snl_paco, - PyDoc_STR("*float*: W maximum ac-power rating for inverter at reference or nominal operating condition, assumed to be an upper limit value, (W) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: W maximum ac-power rating for inverter at reference or nominal operating condition, assumed to be an upper limit value, (W) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_pdco", (getter)InverterCECDatabase_get_inv_snl_pdco,(setter)InverterCECDatabase_set_inv_snl_pdco, - PyDoc_STR("*float*: W dc-power level at which the ac-power rating is achieved at the reference operating condition, (W) [xxx]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n"), + PyDoc_STR("*float*: W dc-power level at which the ac-power rating is achieved at the reference operating condition, (W) [xxx]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``inv_snl_pdco``:\n\n\t - array_num_inverters\n"), NULL}, {"inv_snl_pnt", (getter)InverterCECDatabase_get_inv_snl_pnt,(setter)InverterCECDatabase_set_inv_snl_pnt, - PyDoc_STR("*float*: W ac-power consumed by inverter at night (night tare) to maintain circuitry required to sense PV array voltage, (W) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: W ac-power consumed by inverter at night (night tare) to maintain circuitry required to sense PV array voltage, (W) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_pso", (getter)InverterCECDatabase_get_inv_snl_pso,(setter)InverterCECDatabase_set_inv_snl_pso, - PyDoc_STR("*float*: W dc-power required to start the inversion process, or self-consumption by inverter, strongly influences inverter efficiency at low power levels, (W) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: W dc-power required to start the inversion process, or self-consumption by inverter, strongly influences inverter efficiency at low power levels, (W) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_vdcmax", (getter)InverterCECDatabase_get_inv_snl_vdcmax,(setter)InverterCECDatabase_set_inv_snl_vdcmax, - PyDoc_STR("*float*: V (Vdcmax) dc-voltage maximum operating voltage, (V) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: V (Vdcmax) dc-voltage maximum operating voltage, (V) [xxx]\n\n**Required:**\nTrue"), NULL}, {"inv_snl_vdco", (getter)InverterCECDatabase_get_inv_snl_vdco,(setter)InverterCECDatabase_set_inv_snl_vdco, - PyDoc_STR("*float*: V (Vnom) dc-voltage level at which the ac-power rating is achieved at the reference operating condition, (V) [xxx]\n\n*Required*: True"), + PyDoc_STR("*float*: V (Vnom) dc-voltage level at which the ac-power rating is achieved at the reference operating condition, (V) [xxx]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1007,11 +1007,11 @@ HCPVArray_export(VarGroupObject *self, PyObject *args) static PyMethodDef HCPVArray_methods[] = { {"assign", (PyCFunction)HCPVArray_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HCPVArray_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HCPVArray_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HCPVArray_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HCPVArray_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HCPVArray_vals = { var: val, ...}``")}, {"export", (PyCFunction)HCPVArray_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1221,55 +1221,55 @@ HCPVArray_set_azaltsf(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef HCPVArray_getset[] = { {"array_ac_wiring_loss", (getter)HCPVArray_get_array_ac_wiring_loss,(setter)HCPVArray_set_array_ac_wiring_loss, - PyDoc_STR("*float*: AC wiring loss factor [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: AC wiring loss factor [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_dc_mismatch_loss", (getter)HCPVArray_get_array_dc_mismatch_loss,(setter)HCPVArray_set_array_dc_mismatch_loss, - PyDoc_STR("*float*: DC module mismatch loss factor [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: DC module mismatch loss factor [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_dc_wiring_loss", (getter)HCPVArray_get_array_dc_wiring_loss,(setter)HCPVArray_set_array_dc_wiring_loss, - PyDoc_STR("*float*: DC Wiring loss factor [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: DC Wiring loss factor [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_diode_conn_loss", (getter)HCPVArray_get_array_diode_conn_loss,(setter)HCPVArray_set_array_diode_conn_loss, - PyDoc_STR("*float*: Diodes and connections loss factor [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: Diodes and connections loss factor [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_enable_azalt_sf", (getter)HCPVArray_get_array_enable_azalt_sf,(setter)HCPVArray_set_array_enable_azalt_sf, - PyDoc_STR("*float*: Boolean for irradiance derate [0-1]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Boolean for irradiance derate [0-1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"array_modules_per_tracker", (getter)HCPVArray_get_array_modules_per_tracker,(setter)HCPVArray_set_array_modules_per_tracker, - PyDoc_STR("*float*: Modules on each tracker [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Modules on each tracker [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``array_modules_per_tracker``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"array_monthly_soiling", (getter)HCPVArray_get_array_monthly_soiling,(setter)HCPVArray_set_array_monthly_soiling, - PyDoc_STR("*sequence*: Monthly soiling factors array [0..1]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Monthly soiling factors array [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_num_inverters", (getter)HCPVArray_get_array_num_inverters,(setter)HCPVArray_set_array_num_inverters, - PyDoc_STR("*float*: Number of inverters [none]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - array_modules_per_tracker\n\t - array_num_trackers\n\t - inv_snl_pdco\n\t - module_a0\n\t - module_a1\n\t - module_a2\n\t - module_a3\n\t - module_a4\n\t - module_alignment_error\n\t - module_cell_area\n\t - module_concentration\n\t - module_flutter_loss_coeff\n\t - module_ncells\n\t - module_optical_error\n\t - module_reference\n"), + PyDoc_STR("*float*: Number of inverters [none]\n\n**Required:**\nTrue\n\nThe value of ``array_num_inverters`` depends on the following variables:\n\n\t - array_modules_per_tracker\n\t - array_num_trackers\n\t - inv_snl_pdco\n\t - module_a0\n\t - module_a1\n\t - module_a2\n\t - module_a3\n\t - module_a4\n\t - module_alignment_error\n\t - module_cell_area\n\t - module_concentration\n\t - module_flutter_loss_coeff\n\t - module_ncells\n\t - module_optical_error\n\t - module_reference\n"), NULL}, {"array_num_trackers", (getter)HCPVArray_get_array_num_trackers,(setter)HCPVArray_set_array_num_trackers, - PyDoc_STR("*float*: Number of trackers [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - array_num_inverters\n\t - system_capacity\n"), + PyDoc_STR("*float*: Number of trackers [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``array_num_trackers``:\n\n\t - array_num_inverters\n\t - system_capacity\n"), NULL}, {"array_rlim_az_max", (getter)HCPVArray_get_array_rlim_az_max,(setter)HCPVArray_set_array_rlim_az_max, - PyDoc_STR("*float*: Tracker maximum azimuth angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracker maximum azimuth angle [deg]\n\n**Required:**\nTrue"), NULL}, {"array_rlim_az_min", (getter)HCPVArray_get_array_rlim_az_min,(setter)HCPVArray_set_array_rlim_az_min, - PyDoc_STR("*float*: Tracker minimum azimuth angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracker minimum azimuth angle [deg]\n\n**Required:**\nTrue"), NULL}, {"array_rlim_el_max", (getter)HCPVArray_get_array_rlim_el_max,(setter)HCPVArray_set_array_rlim_el_max, - PyDoc_STR("*float*: Tracker maximum elevation angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracker maximum elevation angle [deg]\n\n**Required:**\nTrue"), NULL}, {"array_rlim_el_min", (getter)HCPVArray_get_array_rlim_el_min,(setter)HCPVArray_set_array_rlim_el_min, - PyDoc_STR("*float*: Tracker minimum elevation angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracker minimum elevation angle [deg]\n\n**Required:**\nTrue"), NULL}, {"array_tracker_power_fraction", (getter)HCPVArray_get_array_tracker_power_fraction,(setter)HCPVArray_set_array_tracker_power_fraction, - PyDoc_STR("*float*: Single tracker power fraction [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: Single tracker power fraction [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_tracking_error", (getter)HCPVArray_get_array_tracking_error,(setter)HCPVArray_set_array_tracking_error, - PyDoc_STR("*float*: General racking error [0..1]\n\n*Required*: True"), + PyDoc_STR("*float*: General racking error [0..1]\n\n**Required:**\nTrue"), NULL}, {"array_wind_stow_speed", (getter)HCPVArray_get_array_wind_stow_speed,(setter)HCPVArray_set_array_wind_stow_speed, - PyDoc_STR("*float*: Allowed wind speed before stowing [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Allowed wind speed before stowing [m/s]\n\n**Required:**\nTrue"), NULL}, {"azaltsf", (getter)HCPVArray_get_azaltsf,(setter)HCPVArray_set_azaltsf, - PyDoc_STR("*sequence[sequence]*: Azimuth-Altitude Shading Table\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Azimuth-Altitude Shading Table\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1384,11 +1384,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2091,12 +2091,11 @@ static PyMethodDef HcpvModule_methods[] = { {"new", Hcpv_new, METH_VARARGS, PyDoc_STR("new() -> Hcpv")}, {"default", Hcpv_default, METH_VARARGS, - PyDoc_STR("default(config) -> Hcpv\n\nUse default attributes\n" - "`config` options:\n\n- \"HighXConcentratingPVAllEquityPartnershipFlip\"\n- \"HighXConcentratingPVLCOECalculator\"\n- \"HighXConcentratingPVLeveragedPartnershipFlip\"\n- \"HighXConcentratingPVMerchantPlant\"\n- \"HighXConcentratingPVNone\"\n- \"HighXConcentratingPVSaleLeaseback\"\n- \"HighXConcentratingPVSingleOwner\"")}, + PyDoc_STR("default(config) -> Hcpv\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"HighXConcentratingPVAllEquityPartnershipFlip\"*\n\n - *\"HighXConcentratingPVLCOECalculator\"*\n\n - *\"HighXConcentratingPVLeveragedPartnershipFlip\"*\n\n - *\"HighXConcentratingPVMerchantPlant\"*\n\n - *\"HighXConcentratingPVNone\"*\n\n - *\"HighXConcentratingPVSaleLeaseback\"*\n\n - *\"HighXConcentratingPVSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Hcpv_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Hcpv\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Hcpv\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Hcpv_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Hcpv\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Hcpv\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/HostDeveloper.c b/modules/HostDeveloper.c index 899b90c3..a94f1b0e 100644 --- a/modules/HostDeveloper.c +++ b/modules/HostDeveloper.c @@ -69,11 +69,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -187,31 +187,31 @@ Revenue_set_ppa_soln_tolerance(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Revenue_getset[] = { {"flip_target_percent", (getter)Revenue_get_flip_target_percent,(setter)Revenue_set_flip_target_percent, - PyDoc_STR("*float*: After-tax IRR target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax IRR target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)Revenue_get_flip_target_year,(setter)Revenue_set_flip_target_year, - PyDoc_STR("*float*: IRR target year [Year]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: IRR target year [Year]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_escalation", (getter)Revenue_get_ppa_escalation,(setter)Revenue_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA price in first year [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: PPA price in first year input [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ppa_soln_max", (getter)Revenue_get_ppa_soln_max,(setter)Revenue_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Revenue_get_ppa_soln_max_iterations,(setter)Revenue_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Revenue_get_ppa_soln_min,(setter)Revenue_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_mode", (getter)Revenue_get_ppa_soln_mode,(setter)Revenue_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Revenue_get_ppa_soln_tolerance,(setter)Revenue_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-5"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -326,11 +326,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -756,109 +756,109 @@ FinancialParameters_set_term_tenor(VarGroupObject *self, PyObject *value, void * static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_closing", (getter)FinancialParameters_get_cost_debt_closing,(setter)FinancialParameters_set_cost_debt_closing, - PyDoc_STR("*float*: Debt closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Debt closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_fee", (getter)FinancialParameters_get_cost_debt_fee,(setter)FinancialParameters_set_cost_debt_fee, - PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)FinancialParameters_get_cost_other_financing,(setter)FinancialParameters_set_cost_other_financing, - PyDoc_STR("*float*: Other financing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Other financing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_option", (getter)FinancialParameters_get_debt_option,(setter)FinancialParameters_set_debt_option, - PyDoc_STR("*float*: Debt option [0/1]\n\n*Options*: 0=debt percent,1=dscr\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Debt option [0/1]\n\n**Options:**\n0=debt percent,1=dscr\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_percent", (getter)FinancialParameters_get_debt_percent,(setter)FinancialParameters_set_debt_percent, - PyDoc_STR("*float*: Debt percent [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Debt percent [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr", (getter)FinancialParameters_get_dscr,(setter)FinancialParameters_set_dscr, - PyDoc_STR("*float*: Debt service coverage ratio\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt service coverage ratio\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_limit_debt_fraction", (getter)FinancialParameters_get_dscr_limit_debt_fraction,(setter)FinancialParameters_set_dscr_limit_debt_fraction, - PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_maximum_debt_fraction", (getter)FinancialParameters_get_dscr_maximum_debt_fraction,(setter)FinancialParameters_set_dscr_maximum_debt_fraction, - PyDoc_STR("*float*: Maximum debt fraction [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Maximum debt fraction [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_reserve_months", (getter)FinancialParameters_get_dscr_reserve_months,(setter)FinancialParameters_set_dscr_reserve_months, - PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)FinancialParameters_get_months_receivables_reserve,(setter)FinancialParameters_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)FinancialParameters_get_months_working_reserve,(setter)FinancialParameters_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"payment_option", (getter)FinancialParameters_get_payment_option,(setter)FinancialParameters_set_payment_option, - PyDoc_STR("*float*: Debt repayment option [0/1]\n\n*Options*: 0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt repayment option [0/1]\n\n**Options:**\n0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n\t - total_installed_cost\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - construction_financing_cost\n\t - total_installed_cost\n"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"term_int_rate", (getter)FinancialParameters_get_term_int_rate,(setter)FinancialParameters_set_term_int_rate, - PyDoc_STR("*float*: Term financing interest rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 8.5"), + PyDoc_STR("*float*: Term financing interest rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 8.5 if not assigned explicitly or loaded from defaults."), NULL}, {"term_tenor", (getter)FinancialParameters_get_term_tenor,(setter)FinancialParameters_set_term_tenor, - PyDoc_STR("*float*: Term financing period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Term financing period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -973,11 +973,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1367,100 +1367,100 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1575,11 +1575,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1621,13 +1621,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1742,11 +1742,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1992,64 +1992,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2164,11 +2164,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2654,124 +2654,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2886,11 +2886,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4000,280 +4000,280 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_for_ds", (getter)PaymentIncentives_get_pbi_fed_for_ds,(setter)PaymentIncentives_set_pbi_fed_for_ds, - PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_for_ds", (getter)PaymentIncentives_get_pbi_oth_for_ds,(setter)PaymentIncentives_set_pbi_oth_for_ds, - PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_for_ds", (getter)PaymentIncentives_get_pbi_sta_for_ds,(setter)PaymentIncentives_set_pbi_sta_for_ds, - PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_for_ds", (getter)PaymentIncentives_get_pbi_uti_for_ds,(setter)PaymentIncentives_set_pbi_uti_for_ds, - PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4388,11 +4388,11 @@ Host_export(VarGroupObject *self, PyObject *args) static PyMethodDef Host_methods[] = { {"assign", (PyCFunction)Host_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Host_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Host_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Host_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Host_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Host_vals = { var: val, ...}``")}, {"export", (PyCFunction)Host_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4446,16 +4446,16 @@ Host_set_host_real_discount_rate(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef Host_getset[] = { {"annual_energy_value", (getter)Host_get_annual_energy_value,(setter)Host_set_annual_energy_value, - PyDoc_STR("*sequence*: Host energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Host energy value [$]\n\n**Required:**\nTrue"), NULL}, {"elec_cost_with_system", (getter)Host_get_elec_cost_with_system,(setter)Host_set_elec_cost_with_system, - PyDoc_STR("*sequence*: Host energy bill with system [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Host energy bill with system [$]\n\n**Required:**\nTrue"), NULL}, {"elec_cost_without_system", (getter)Host_get_elec_cost_without_system,(setter)Host_set_elec_cost_without_system, - PyDoc_STR("*sequence*: Host energy bill without system [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Host energy bill without system [$]\n\n**Required:**\nTrue"), NULL}, {"host_real_discount_rate", (getter)Host_get_host_real_discount_rate,(setter)Host_set_host_real_discount_rate, - PyDoc_STR("*float*: Host real discount rate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Host real discount rate [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4570,11 +4570,11 @@ TimeSeries_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSeries_methods[] = { {"assign", (PyCFunction)TimeSeries_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSeries_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSeries_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4616,13 +4616,13 @@ TimeSeries_set_year1_hourly_ec_with_system(VarGroupObject *self, PyObject *value static PyGetSetDef TimeSeries_getset[] = { {"year1_hourly_dc_with_system", (getter)TimeSeries_get_year1_hourly_dc_with_system,(setter)TimeSeries_set_year1_hourly_dc_with_system, - PyDoc_STR("*sequence*: Demand charge with system (year 1 hourly) [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Demand charge with system (year 1 hourly) [$]\n\n**Required:**\nTrue"), NULL}, {"year1_hourly_e_fromgrid", (getter)TimeSeries_get_year1_hourly_e_fromgrid,(setter)TimeSeries_set_year1_hourly_e_fromgrid, - PyDoc_STR("*sequence*: Electricity from grid (year 1 hourly) [kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Electricity from grid (year 1 hourly) [kWh]\n\n**Required:**\nTrue"), NULL}, {"year1_hourly_ec_with_system", (getter)TimeSeries_get_year1_hourly_ec_with_system,(setter)TimeSeries_set_year1_hourly_ec_with_system, - PyDoc_STR("*sequence*: Energy charge with system (year 1 hourly) [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy charge with system (year 1 hourly) [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4737,11 +4737,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4810,13 +4810,13 @@ static PyGetSetDef ChargesByMonth_getset[] = { PyDoc_STR("*sequence[sequence]*: Energy charge with system [$]"), NULL}, {"charge_w_sys_fixed_ym", (getter)ChargesByMonth_get_charge_w_sys_fixed_ym,(setter)ChargesByMonth_set_charge_w_sys_fixed_ym, - PyDoc_STR("*sequence[sequence]*: Fixed monthly charge with system [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fixed monthly charge with system [$]\n\n**Required:**\nTrue"), NULL}, {"net_billing_credits_ym", (getter)ChargesByMonth_get_net_billing_credits_ym,(setter)ChargesByMonth_set_net_billing_credits_ym, - PyDoc_STR("*sequence[sequence]*: Net billing credit [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Net billing credit [$]\n\n**Required:**\nTrue"), NULL}, {"nm_dollars_applied_ym", (getter)ChargesByMonth_get_nm_dollars_applied_ym,(setter)ChargesByMonth_set_nm_dollars_applied_ym, - PyDoc_STR("*sequence[sequence]*: Net metering credit [$]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Net metering credit [$]\n\n**Required:**\nTrue"), NULL}, {"true_up_credits_ym", (getter)ChargesByMonth_get_true_up_credits_ym,(setter)ChargesByMonth_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), @@ -4934,11 +4934,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4980,13 +4980,13 @@ SystemOutput_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemOutput_getset[] = { {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n\t - total_installed_cost\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - construction_financing_cost\n\t - total_installed_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5101,11 +5101,11 @@ Moratorium_export(VarGroupObject *self, PyObject *args) static PyMethodDef Moratorium_methods[] = { {"assign", (PyCFunction)Moratorium_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Moratorium_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Moratorium_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Moratorium_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Moratorium_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Moratorium_vals = { var: val, ...}``")}, {"export", (PyCFunction)Moratorium_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5123,7 +5123,7 @@ Moratorium_set_loan_moratorium(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Moratorium_getset[] = { {"loan_moratorium", (getter)Moratorium_get_loan_moratorium,(setter)Moratorium_set_loan_moratorium, - PyDoc_STR("*float*: Loan moratorium period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan moratorium period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5238,11 +5238,11 @@ Recapitalization_export(VarGroupObject *self, PyObject *args) static PyMethodDef Recapitalization_methods[] = { {"assign", (PyCFunction)Recapitalization_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Recapitalization_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"export", (PyCFunction)Recapitalization_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5296,16 +5296,16 @@ Recapitalization_set_system_use_recapitalization(VarGroupObject *self, PyObject static PyGetSetDef Recapitalization_getset[] = { {"system_lifetime_recapitalize", (getter)Recapitalization_get_system_lifetime_recapitalize,(setter)Recapitalization_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)Recapitalization_get_system_recapitalization_cost,(setter)Recapitalization_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)Recapitalization_get_system_recapitalization_escalation,(setter)Recapitalization_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)Recapitalization_get_system_use_recapitalization,(setter)Recapitalization_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5420,11 +5420,11 @@ TimeOfDelivery_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDelivery_methods[] = { {"assign", (PyCFunction)TimeOfDelivery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDelivery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDelivery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5598,46 +5598,46 @@ TimeOfDelivery_set_system_use_lifetime_output(VarGroupObject *self, PyObject *va static PyGetSetDef TimeOfDelivery_getset[] = { {"dispatch_factor1", (getter)TimeOfDelivery_get_dispatch_factor1,(setter)TimeOfDelivery_set_dispatch_factor1, - PyDoc_STR("*float*: TOD factor for period 1\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 1\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor2", (getter)TimeOfDelivery_get_dispatch_factor2,(setter)TimeOfDelivery_set_dispatch_factor2, - PyDoc_STR("*float*: TOD factor for period 2\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 2\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor3", (getter)TimeOfDelivery_get_dispatch_factor3,(setter)TimeOfDelivery_set_dispatch_factor3, - PyDoc_STR("*float*: TOD factor for period 3\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 3\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor4", (getter)TimeOfDelivery_get_dispatch_factor4,(setter)TimeOfDelivery_set_dispatch_factor4, - PyDoc_STR("*float*: TOD factor for period 4\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 4\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor5", (getter)TimeOfDelivery_get_dispatch_factor5,(setter)TimeOfDelivery_set_dispatch_factor5, - PyDoc_STR("*float*: TOD factor for period 5\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 5\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor6", (getter)TimeOfDelivery_get_dispatch_factor6,(setter)TimeOfDelivery_set_dispatch_factor6, - PyDoc_STR("*float*: TOD factor for period 6\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 6\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor7", (getter)TimeOfDelivery_get_dispatch_factor7,(setter)TimeOfDelivery_set_dispatch_factor7, - PyDoc_STR("*float*: TOD factor for period 7\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 7\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor8", (getter)TimeOfDelivery_get_dispatch_factor8,(setter)TimeOfDelivery_set_dispatch_factor8, - PyDoc_STR("*float*: TOD factor for period 8\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 8\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor9", (getter)TimeOfDelivery_get_dispatch_factor9,(setter)TimeOfDelivery_set_dispatch_factor9, - PyDoc_STR("*float*: TOD factor for period 9\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 9\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDelivery_get_dispatch_factors_ts,(setter)TimeOfDelivery_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDelivery_get_dispatch_sched_weekday,(setter)TimeOfDelivery_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDelivery_get_dispatch_sched_weekend,(setter)TimeOfDelivery_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDelivery_get_ppa_multiplier_model,(setter)TimeOfDelivery_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)TimeOfDelivery_get_system_use_lifetime_output,(setter)TimeOfDelivery_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5752,11 +5752,11 @@ ConstructionFinancing_export(VarGroupObject *self, PyObject *args) static PyMethodDef ConstructionFinancing_methods[] = { {"assign", (PyCFunction)ConstructionFinancing_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ConstructionFinancing_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"export", (PyCFunction)ConstructionFinancing_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5774,7 +5774,7 @@ ConstructionFinancing_set_construction_financing_cost(VarGroupObject *self, PyOb static PyGetSetDef ConstructionFinancing_getset[] = { {"construction_financing_cost", (getter)ConstructionFinancing_get_construction_financing_cost,(setter)ConstructionFinancing_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5889,11 +5889,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5986,22 +5986,22 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6116,11 +6116,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6330,7 +6330,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6342,28 +6342,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6478,11 +6478,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11381,40 +11381,40 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lnte_nom", (getter)Outputs_get_lnte_nom,(setter)0, - PyDoc_STR("*float*: Host indifference point nominal levelized value [cents/kWh]"), + PyDoc_STR("*float*: Host indifference point levelized nominal [cents/kWh]"), NULL}, {"lnte_real", (getter)Outputs_get_lnte_real,(setter)0, - PyDoc_STR("*float*: Host indifference point real levelized value [cents/kWh]"), + PyDoc_STR("*float*: Host indifference point levelized real [cents/kWh]"), NULL}, {"lppa_nom", (getter)Outputs_get_lppa_nom,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price nominal [cents/kWh]"), NULL}, {"lppa_real", (getter)Outputs_get_lppa_real,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (real) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price real [cents/kWh]"), NULL}, {"min_dscr", (getter)Outputs_get_min_dscr,(setter)0, PyDoc_STR("*float*: Minimum DSCR"), @@ -11423,7 +11423,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Nominal discount rate [%]"), NULL}, {"npv", (getter)Outputs_get_npv,(setter)0, - PyDoc_STR("*float*: Host net present value [$]"), + PyDoc_STR("*float*: Host NPV Net present value [$]"), NULL}, {"npv_annual_costs", (getter)Outputs_get_npv_annual_costs,(setter)0, PyDoc_STR("*float*: Present value of annual costs [$]"), @@ -11438,16 +11438,16 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_ppa_revenue", (getter)Outputs_get_npv_ppa_revenue,(setter)0, PyDoc_STR("*float*: Present value of PPA revenue [$]"), NULL}, {"ppa", (getter)Outputs_get_ppa,(setter)0, - PyDoc_STR("*float*: PPA price (Year 1) [cents/kWh]"), + PyDoc_STR("*float*: PPA price in Year 1 [cents/kWh]"), NULL}, {"ppa_escalation", (getter)Outputs_get_ppa_escalation,(setter)0, PyDoc_STR("*float*: PPA price escalation [%/year]"), @@ -11471,10 +11471,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of non-fuel O&M [$]"), NULL}, {"project_return_aftertax_irr", (getter)Outputs_get_project_return_aftertax_irr,(setter)0, - PyDoc_STR("*float*: Internal rate of return (after-tax) [%]"), + PyDoc_STR("*float*: IRR Internal rate of return [%]"), NULL}, {"project_return_aftertax_npv", (getter)Outputs_get_project_return_aftertax_npv,(setter)0, - PyDoc_STR("*float*: Net present value (after-tax) [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"prop_tax_assessed_value", (getter)Outputs_get_prop_tax_assessed_value,(setter)0, PyDoc_STR("*float*: Assessed value of property for tax purposes [$]"), @@ -11495,7 +11495,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Equity [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {"year1_nte", (getter)Outputs_get_year1_nte,(setter)0, PyDoc_STR("*float*: Host indifference point in Year 1 [cents/kWh]"), @@ -11889,12 +11889,11 @@ static PyMethodDef HostDeveloperModule_methods[] = { {"new", HostDeveloper_new, METH_VARARGS, PyDoc_STR("new() -> HostDeveloper")}, {"default", HostDeveloper_default, METH_VARARGS, - PyDoc_STR("default(config) -> HostDeveloper\n\nUse default attributes\n" - "`config` options:\n\n- \"FlatPlatePVHostDeveloper\"\n- \"GenericBatteryHostDeveloper\"\n- \"GenericSystemHostDeveloper\"\n- \"PVBatteryHostDeveloper\"\n- \"PVWattsBatteryHostDeveloper\"\n- \"PVWattsHostDeveloper\"\n- \"StandaloneBatteryHostDeveloper\"")}, + PyDoc_STR("default(config) -> HostDeveloper\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FlatPlatePVHostDeveloper\"*\n\n - *\"GenericBatteryHostDeveloper\"*\n\n - *\"GenericSystemHostDeveloper\"*\n\n - *\"PVBatteryHostDeveloper\"*\n\n - *\"PVWattsBatteryHostDeveloper\"*\n\n - *\"PVWattsHostDeveloper\"*\n\n - *\"StandaloneBatteryHostDeveloper\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", HostDeveloper_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> HostDeveloper\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> HostDeveloper\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", HostDeveloper_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> HostDeveloper\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> HostDeveloper\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Iec61853interp.c b/modules/Iec61853interp.c index 7f080533..95178631 100644 --- a/modules/Iec61853interp.c +++ b/modules/Iec61853interp.c @@ -69,11 +69,11 @@ IEC61853_export(VarGroupObject *self, PyObject *args) static PyMethodDef IEC61853_methods[] = { {"assign", (PyCFunction)IEC61853_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IEC61853_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IEC61853_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IEC61853_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IEC61853_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IEC61853_vals = { var: val, ...}``")}, {"export", (PyCFunction)IEC61853_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ IEC61853_set_param(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef IEC61853_getset[] = { {"input", (getter)IEC61853_get_input,(setter)IEC61853_set_input, - PyDoc_STR("*sequence[sequence]*: IEC-61853 matrix test data [various]\n\n*Info*: [IRR,TC,PMP,VMP,VOC,ISC]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IEC-61853 matrix test data [various]\n\n**Info:**\n[IRR,TC,PMP,VMP,VOC,ISC]\n\n**Required:**\nTrue"), NULL}, {"param", (getter)IEC61853_get_param,(setter)IEC61853_set_param, - PyDoc_STR("*sequence[sequence]*: Parameter solution matrix\n\n*Info*: [IL,IO,RS,RSH,A]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Parameter solution matrix\n\n**Info:**\n[IL,IO,RS,RSH,A]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ SingleDiodeModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef SingleDiodeModel_methods[] = { {"assign", (PyCFunction)SingleDiodeModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SingleDiodeModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)SingleDiodeModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -255,10 +255,10 @@ SingleDiodeModel_set_T(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SingleDiodeModel_getset[] = { {"I", (getter)SingleDiodeModel_get_I,(setter)SingleDiodeModel_set_I, - PyDoc_STR("*float*: Irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"T", (getter)SingleDiodeModel_get_T,(setter)SingleDiodeModel_set_T, - PyDoc_STR("*float*: Temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temperature [C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -373,11 +373,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -756,12 +756,11 @@ static PyMethodDef Iec61853interpModule_methods[] = { {"new", Iec61853interp_new, METH_VARARGS, PyDoc_STR("new() -> Iec61853interp")}, {"default", Iec61853interp_default, METH_VARARGS, - PyDoc_STR("default(config) -> Iec61853interp\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Iec61853interp\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Iec61853interp_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Iec61853interp\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Iec61853interp\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Iec61853interp_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Iec61853interp\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Iec61853interp\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Iec61853par.c b/modules/Iec61853par.c index 7eefde11..97264355 100644 --- a/modules/Iec61853par.c +++ b/modules/Iec61853par.c @@ -69,11 +69,11 @@ IEC61853_export(VarGroupObject *self, PyObject *args) static PyMethodDef IEC61853_methods[] = { {"assign", (PyCFunction)IEC61853_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IEC61853_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IEC61853_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IEC61853_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IEC61853_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IEC61853_vals = { var: val, ...}``")}, {"export", (PyCFunction)IEC61853_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ IEC61853_set_verbose(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef IEC61853_getset[] = { {"input", (getter)IEC61853_get_input,(setter)IEC61853_set_input, - PyDoc_STR("*sequence[sequence]*: IEC-61853 matrix test data [various]\n\n*Info*: [IRR,TC,PMP,VMP,VOC,ISC]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IEC-61853 matrix test data [various]\n\n**Info:**\n[IRR,TC,PMP,VMP,VOC,ISC]\n\n**Required:**\nTrue"), NULL}, {"nser", (getter)IEC61853_get_nser,(setter)IEC61853_set_nser, - PyDoc_STR("*float*: Number of cells in series\n\n*Required*: True"), + PyDoc_STR("*float*: Number of cells in series\n\n**Required:**\nTrue"), NULL}, {"type", (getter)IEC61853_get_type,(setter)IEC61853_set_type, - PyDoc_STR("*float*: Cell technology type [0..5]\n\n*Info*: monoSi,multiSi/polySi,cdte,cis,cigs,amorphous\n\n*Required*: True"), + PyDoc_STR("*float*: Cell technology type [0..5]\n\n**Info:**\nmonoSi,multiSi/polySi,cdte,cis,cigs,amorphous\n\n**Required:**\nTrue"), NULL}, {"verbose", (getter)IEC61853_get_verbose,(setter)IEC61853_set_verbose, - PyDoc_STR("*float*: Output solver messages [0/1]\n\n*Required*: True"), + PyDoc_STR("*float*: Output solver messages [0/1]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -702,12 +702,11 @@ static PyMethodDef Iec61853parModule_methods[] = { {"new", Iec61853par_new, METH_VARARGS, PyDoc_STR("new() -> Iec61853par")}, {"default", Iec61853par_default, METH_VARARGS, - PyDoc_STR("default(config) -> Iec61853par\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Iec61853par\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Iec61853par_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Iec61853par\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Iec61853par\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Iec61853par_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Iec61853par\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Iec61853par\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/InvCecCg.c b/modules/InvCecCg.c index 10b73121..828feb21 100644 --- a/modules/InvCecCg.c +++ b/modules/InvCecCg.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -115,13 +115,13 @@ Common_set_inv_cec_cg_test_samples(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Common_getset[] = { {"inv_cec_cg_paco", (getter)Common_get_inv_cec_cg_paco,(setter)Common_set_inv_cec_cg_paco, - PyDoc_STR("*float*: Rated max output [W]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated max output [W]\n\n**Required:**\nTrue"), NULL}, {"inv_cec_cg_sample_power_units", (getter)Common_get_inv_cec_cg_sample_power_units,(setter)Common_set_inv_cec_cg_sample_power_units, - PyDoc_STR("*float*: Sample data units for power output [0=W,1=kW]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Sample data units for power output [0=W,1=kW]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_cec_cg_test_samples", (getter)Common_get_inv_cec_cg_test_samples,(setter)Common_set_inv_cec_cg_test_samples, - PyDoc_STR("*sequence[sequence]*: Sample data\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Sample data\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -236,11 +236,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -759,12 +759,11 @@ static PyMethodDef InvCecCgModule_methods[] = { {"new", InvCecCg_new, METH_VARARGS, PyDoc_STR("new() -> InvCecCg")}, {"default", InvCecCg_default, METH_VARARGS, - PyDoc_STR("default(config) -> InvCecCg\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> InvCecCg\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", InvCecCg_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> InvCecCg\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> InvCecCg\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", InvCecCg_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> InvCecCg\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> InvCecCg\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/IphToLcoefcr.c b/modules/IphToLcoefcr.c index 144c2c7f..9685cc94 100644 --- a/modules/IphToLcoefcr.c +++ b/modules/IphToLcoefcr.c @@ -69,11 +69,11 @@ IPHLCOH_export(VarGroupObject *self, PyObject *args) static PyMethodDef IPHLCOH_methods[] = { {"assign", (PyCFunction)IPHLCOH_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IPHLCOH_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IPHLCOH_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IPHLCOH_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IPHLCOH_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IPHLCOH_vals = { var: val, ...}``")}, {"export", (PyCFunction)IPHLCOH_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ IPHLCOH_set_electricity_rate(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef IPHLCOH_getset[] = { {"annual_electricity_consumption", (getter)IPHLCOH_get_annual_electricity_consumption,(setter)IPHLCOH_set_annual_electricity_consumption, - PyDoc_STR("*float*: Annual electricity consumptoin w/ avail derate [kWe-hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Annual electricity consumption with avail derate [kWe-hr]\n\n**Required:**\nTrue"), NULL}, {"electricity_rate", (getter)IPHLCOH_get_electricity_rate,(setter)IPHLCOH_set_electricity_rate, - PyDoc_STR("*float*: Cost of electricity used to operate pumps/trackers [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Cost of electricity used to operate pumps and trackers [$/kWe]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ SimpleLCOE_export(VarGroupObject *self, PyObject *args) static PyMethodDef SimpleLCOE_methods[] = { {"assign", (PyCFunction)SimpleLCOE_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SimpleLCOE_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SimpleLCOE_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SimpleLCOE_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SimpleLCOE_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SimpleLCOE_vals = { var: val, ...}``")}, {"export", (PyCFunction)SimpleLCOE_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -243,7 +243,7 @@ SimpleLCOE_set_fixed_operating_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SimpleLCOE_getset[] = { {"fixed_operating_cost", (getter)SimpleLCOE_get_fixed_operating_cost,(setter)SimpleLCOE_set_fixed_operating_cost, - PyDoc_STR("*float*: Annual fixed operating cost [$/kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Annual fixed operating cost [$/kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -570,12 +570,11 @@ static PyMethodDef IphToLcoefcrModule_methods[] = { {"new", IphToLcoefcr_new, METH_VARARGS, PyDoc_STR("new() -> IphToLcoefcr")}, {"default", IphToLcoefcr_default, METH_VARARGS, - PyDoc_STR("default(config) -> IphToLcoefcr\n\nUse default attributes\n" - "`config` options:\n\n- \"DSGLIPHLCOHCalculator\"\n- \"PhysicalTroughIPHLCOHCalculator\"")}, + PyDoc_STR("default(config) -> IphToLcoefcr\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"DSGLIPHLCOHCalculator\"*\n\n - *\"PhysicalTroughIPHLCOHCalculator\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", IphToLcoefcr_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> IphToLcoefcr\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> IphToLcoefcr\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", IphToLcoefcr_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> IphToLcoefcr\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> IphToLcoefcr\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Ippppa.c b/modules/Ippppa.c index 937d8aaf..692d3bcc 100644 --- a/modules/Ippppa.c +++ b/modules/Ippppa.c @@ -69,11 +69,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -247,46 +247,46 @@ FinancialParameters_set_system_heat_rate(VarGroupObject *self, PyObject *value, static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_fraction", (getter)FinancialParameters_get_debt_fraction,(setter)FinancialParameters_set_debt_fraction, - PyDoc_STR("*float*: Debt percentage [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt percentage [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_rate", (getter)FinancialParameters_get_loan_rate,(setter)FinancialParameters_set_loan_rate, - PyDoc_STR("*float*: Loan rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_term", (getter)FinancialParameters_get_loan_term,(setter)FinancialParameters_set_loan_term, - PyDoc_STR("*float*: Loan term [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan term [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -401,11 +401,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -783,97 +783,97 @@ SystemCosts_set_om_replacement_cost_escal(VarGroupObject *self, PyObject *value, static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -988,11 +988,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1034,13 +1034,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1155,11 +1155,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1237,22 +1237,22 @@ Depreciation_set_depr_sta_type(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Depreciation_getset[] = { {"depr_fed_custom", (getter)Depreciation_get_depr_fed_custom,(setter)Depreciation_set_depr_fed_custom, - PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n*Required*: True if depr_fed_type=3"), + PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n**Required:**\nRequired if depr_fed_type=3"), NULL}, {"depr_fed_sl_years", (getter)Depreciation_get_depr_fed_sl_years,(setter)Depreciation_set_depr_fed_sl_years, - PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_fed_type=2"), + PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_fed_type=2"), NULL}, {"depr_fed_type", (getter)Depreciation_get_depr_fed_type,(setter)Depreciation_set_depr_fed_type, - PyDoc_STR("*float*: Federal depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_sta_custom", (getter)Depreciation_get_depr_sta_custom,(setter)Depreciation_set_depr_sta_custom, - PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n*Required*: True if depr_sta_type=3"), + PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n**Required:**\nRequired if depr_sta_type=3"), NULL}, {"depr_sta_sl_years", (getter)Depreciation_get_depr_sta_sl_years,(setter)Depreciation_set_depr_sta_sl_years, - PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_sta_type=2"), + PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_sta_type=2"), NULL}, {"depr_sta_type", (getter)Depreciation_get_depr_sta_type,(setter)Depreciation_set_depr_sta_type, - PyDoc_STR("*float*: State depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1367,11 +1367,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1617,64 +1617,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1789,11 +1789,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2855,268 +2855,268 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3231,11 +3231,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3685,115 +3685,115 @@ Common_set_total_installed_cost(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef Common_getset[] = { {"bid_price", (getter)Common_get_bid_price,(setter)Common_set_bid_price, - PyDoc_STR("*sequence*: Initial year PPA price [$/kWh]\n\n*Required*: If not provided, assumed to be 0.10"), + PyDoc_STR("*sequence*: Initial year PPA price [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.10 if not assigned explicitly or loaded from defaults."), NULL}, {"bid_price_esc", (getter)Common_get_bid_price_esc,(setter)Common_set_bid_price_esc, - PyDoc_STR("*float*: PPA escalation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"construction_financing_cost", (getter)Common_get_construction_financing_cost,(setter)Common_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue"), NULL}, {"degradation", (getter)Common_get_degradation,(setter)Common_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"dispatch_factor1", (getter)Common_get_dispatch_factor1,(setter)Common_set_dispatch_factor1, - PyDoc_STR("*float*: Dispatch payment factor 1\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 1\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor2", (getter)Common_get_dispatch_factor2,(setter)Common_set_dispatch_factor2, - PyDoc_STR("*float*: Dispatch payment factor 2\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 2\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor3", (getter)Common_get_dispatch_factor3,(setter)Common_set_dispatch_factor3, - PyDoc_STR("*float*: Dispatch payment factor 3\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 3\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor4", (getter)Common_get_dispatch_factor4,(setter)Common_set_dispatch_factor4, - PyDoc_STR("*float*: Dispatch payment factor 4\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 4\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor5", (getter)Common_get_dispatch_factor5,(setter)Common_set_dispatch_factor5, - PyDoc_STR("*float*: Dispatch payment factor 5\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 5\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor6", (getter)Common_get_dispatch_factor6,(setter)Common_set_dispatch_factor6, - PyDoc_STR("*float*: Dispatch payment factor 6\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 6\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor7", (getter)Common_get_dispatch_factor7,(setter)Common_set_dispatch_factor7, - PyDoc_STR("*float*: Dispatch payment factor 7\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 7\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor8", (getter)Common_get_dispatch_factor8,(setter)Common_set_dispatch_factor8, - PyDoc_STR("*float*: Dispatch payment factor 8\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 8\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_factor9", (getter)Common_get_dispatch_factor9,(setter)Common_set_dispatch_factor9, - PyDoc_STR("*float*: Dispatch payment factor 9\n\n*Required*: True if market=0"), + PyDoc_STR("*float*: Dispatch payment factor 9\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_sched_weekday", (getter)Common_get_dispatch_sched_weekday,(setter)Common_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday dispatch periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if market=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday dispatch periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if market=0"), NULL}, {"dispatch_sched_weekend", (getter)Common_get_dispatch_sched_weekend,(setter)Common_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend dispatch periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if market=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend dispatch periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if market=0"), NULL}, {"gen", (getter)Common_get_gen,(setter)Common_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"market", (getter)Common_get_market,(setter)Common_set_market, - PyDoc_STR("*float*: Utility IPP or Commercial PPA [0/1]\n\n*Options*: 0=ipp,1=ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility IPP or Commercial PPA [0/1]\n\n**Options:**\n0=ipp,1=ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"min_dscr_required", (getter)Common_get_min_dscr_required,(setter)Common_set_min_dscr_required, - PyDoc_STR("*float*: Minimum DSCR required [0/1]\n\n*Options*: 0=no,1=yes\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Minimum DSCR required [0/1]\n\n**Options:**\n0=no,1=yes\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"min_dscr_target", (getter)Common_get_min_dscr_target,(setter)Common_set_min_dscr_target, - PyDoc_STR("*float*: Minimum required DSCR\n\n*Required*: If not provided, assumed to be 1.4"), + PyDoc_STR("*float*: Minimum required DSCR\n\n**Required:**\nFalse. Automatically set to 1.4 if not assigned explicitly or loaded from defaults."), NULL}, {"min_irr_target", (getter)Common_get_min_irr_target,(setter)Common_set_min_irr_target, - PyDoc_STR("*float*: Minimum required IRR [%]\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Minimum required IRR [%]\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"optimize_lcoe_wrt_debt_fraction", (getter)Common_get_optimize_lcoe_wrt_debt_fraction,(setter)Common_set_optimize_lcoe_wrt_debt_fraction, - PyDoc_STR("*float*: Optimize LCOE with respect to debt percent [0/1]\n\n*Options*: 0=no,1=yes\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Optimize LCOE with respect to debt percent [0/1]\n\n**Options:**\n0=no,1=yes\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"optimize_lcoe_wrt_ppa_escalation", (getter)Common_get_optimize_lcoe_wrt_ppa_escalation,(setter)Common_set_optimize_lcoe_wrt_ppa_escalation, - PyDoc_STR("*float*: Optimize LCOE with respect to PPA escalation [0/1]\n\n*Options*: 0=no,1=yes\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Optimize LCOE with respect to PPA escalation [0/1]\n\n**Options:**\n0=no,1=yes\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"positive_cashflow_required", (getter)Common_get_positive_cashflow_required,(setter)Common_set_positive_cashflow_required, - PyDoc_STR("*float*: Positive cash flow required [0/1]\n\n*Options*: 0=no,1=yes\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Positive cash flow required [0/1]\n\n**Options:**\n0=no,1=yes\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_escalation", (getter)Common_get_ppa_escalation,(setter)Common_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation [%]\n\n*Required*: If not provided, assumed to be 0.6"), + PyDoc_STR("*float*: PPA escalation [%]\n\n**Required:**\nFalse. Automatically set to 0.6 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max", (getter)Common_get_ppa_soln_max,(setter)Common_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Common_get_ppa_soln_max_iterations,(setter)Common_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Common_get_ppa_soln_min,(setter)Common_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Common_get_ppa_soln_tolerance,(setter)Common_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-3"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-3 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)Common_get_salvage_percentage,(setter)Common_set_salvage_percentage, - PyDoc_STR("*float*: Salvage value percentage [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Salvage value percentage [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"soln_mode", (getter)Common_get_soln_mode,(setter)Common_set_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_capacity", (getter)Common_get_system_capacity,(setter)Common_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue"), NULL}, {"system_recapitalization_boolean", (getter)Common_get_system_recapitalization_boolean,(setter)Common_set_system_recapitalization_boolean, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)Common_get_system_recapitalization_cost,(setter)Common_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)Common_get_system_recapitalization_escalation,(setter)Common_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)Common_get_system_use_lifetime_output,(setter)Common_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {"system_use_recapitalization", (getter)Common_get_system_use_recapitalization,(setter)Common_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)Common_get_total_installed_cost,(setter)Common_set_total_installed_cost, - PyDoc_STR("*float*: Total installed cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Total installed cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3908,11 +3908,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5940,12 +5940,11 @@ static PyMethodDef IppppaModule_methods[] = { {"new", Ippppa_new, METH_VARARGS, PyDoc_STR("new() -> Ippppa")}, {"default", Ippppa_default, METH_VARARGS, - PyDoc_STR("default(config) -> Ippppa\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Ippppa\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Ippppa_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Ippppa\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Ippppa\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Ippppa_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Ippppa\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Ippppa\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Irradproc.c b/modules/Irradproc.c index 0015f370..4fb68c51 100644 --- a/modules/Irradproc.c +++ b/modules/Irradproc.c @@ -69,11 +69,11 @@ IrradianceProcessor_export(VarGroupObject *self, PyObject *args) static PyMethodDef IrradianceProcessor_methods[] = { {"assign", (PyCFunction)IrradianceProcessor_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IrradianceProcessor_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IrradianceProcessor_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IrradianceProcessor_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IrradianceProcessor_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IrradianceProcessor_vals = { var: val, ...}``")}, {"export", (PyCFunction)IrradianceProcessor_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -391,82 +391,82 @@ IrradianceProcessor_set_year(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef IrradianceProcessor_getset[] = { {"albedo", (getter)IrradianceProcessor_get_albedo,(setter)IrradianceProcessor_set_albedo, - PyDoc_STR("*sequence*: Ground reflectance (time depend.) [frac]\n\n*Info*: 0..1\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: False"), + PyDoc_STR("*sequence*: Ground reflectance (time depend.) [frac]\n\n**Info:**\n0..1\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"albedo_const", (getter)IrradianceProcessor_get_albedo_const,(setter)IrradianceProcessor_set_albedo_const, - PyDoc_STR("*float*: Ground reflectance (single value) [frac]\n\n*Info*: 0..1\n\n*Required*: If not provided, assumed to be 0.2"), + PyDoc_STR("*float*: Ground reflectance (single value) [frac]\n\n**Info:**\n0..1\n\n**Required:**\nFalse. Automatically set to 0.2 if not assigned explicitly or loaded from defaults."), NULL}, {"azimuth", (getter)IrradianceProcessor_get_azimuth,(setter)IrradianceProcessor_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\nTrue"), NULL}, {"backtrack", (getter)IrradianceProcessor_get_backtrack,(setter)IrradianceProcessor_set_backtrack, - PyDoc_STR("*float*: Enable backtracking [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable backtracking [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"beam", (getter)IrradianceProcessor_get_beam,(setter)IrradianceProcessor_set_beam, - PyDoc_STR("*sequence*: Beam normal irradiance [W/m2]\n\n*Required*: irrad_mode~2"), + PyDoc_STR("*sequence*: Beam normal irradiance [W/m2]\n\n**Required:**\nirrad_mode~2"), NULL}, {"day", (getter)IrradianceProcessor_get_day,(setter)IrradianceProcessor_set_day, - PyDoc_STR("*sequence*: Day [dy]\n\n*Info*: 1-days in month\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Day [dy]\n\n**Info:**\n1-days in month\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"diff", (getter)IrradianceProcessor_get_diff,(setter)IrradianceProcessor_set_diff, - PyDoc_STR("*sequence*: Diffuse horizontal irradiance [W/m2]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: irrad_mode~1"), + PyDoc_STR("*sequence*: Diffuse horizontal irradiance [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nirrad_mode~1"), NULL}, {"elevation", (getter)IrradianceProcessor_get_elevation,(setter)IrradianceProcessor_set_elevation, - PyDoc_STR("*float*: Elevation [m]\n\n*Required*: False"), + PyDoc_STR("*float*: Elevation [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"gcr", (getter)IrradianceProcessor_get_gcr,(setter)IrradianceProcessor_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True if backtrack=1"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nRequired if backtrack=1"), NULL}, {"glob", (getter)IrradianceProcessor_get_glob,(setter)IrradianceProcessor_set_glob, - PyDoc_STR("*sequence*: Global horizontal irradiance [W/m2]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: irrad_mode~0"), + PyDoc_STR("*sequence*: Global horizontal irradiance [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nirrad_mode~0"), NULL}, {"hour", (getter)IrradianceProcessor_get_hour,(setter)IrradianceProcessor_set_hour, - PyDoc_STR("*sequence*: Hour [hr]\n\n*Info*: 0-23\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Hour [hr]\n\n**Info:**\n0-23\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"irrad_mode", (getter)IrradianceProcessor_get_irrad_mode,(setter)IrradianceProcessor_set_irrad_mode, - PyDoc_STR("*float*: Irradiance input mode [0/1/2]\n\n*Info*: Beam+Diff,Global+Beam, Global+Diff\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Irradiance input mode [0/1/2]\n\n**Info:**\nBeam+Diff,Global+Beam, Global+Diff\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"lat", (getter)IrradianceProcessor_get_lat,(setter)IrradianceProcessor_set_lat, - PyDoc_STR("*float*: Latitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Latitude [deg]\n\n**Required:**\nTrue"), NULL}, {"lon", (getter)IrradianceProcessor_get_lon,(setter)IrradianceProcessor_set_lon, - PyDoc_STR("*float*: Longitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Longitude [deg]\n\n**Required:**\nTrue"), NULL}, {"minute", (getter)IrradianceProcessor_get_minute,(setter)IrradianceProcessor_set_minute, - PyDoc_STR("*sequence*: Minute [min]\n\n*Info*: 0-59\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Minute [min]\n\n**Info:**\n0-59\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"month", (getter)IrradianceProcessor_get_month,(setter)IrradianceProcessor_set_month, - PyDoc_STR("*sequence*: Month [mn]\n\n*Info*: 1-12\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Month [mn]\n\n**Info:**\n1-12\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"pressure", (getter)IrradianceProcessor_get_pressure,(setter)IrradianceProcessor_set_pressure, - PyDoc_STR("*float*: Pressure [mbars]\n\n*Required*: False"), + PyDoc_STR("*float*: Pressure [mbars]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"rotlim", (getter)IrradianceProcessor_get_rotlim,(setter)IrradianceProcessor_set_rotlim, - PyDoc_STR("*float*: Rotational limit on tracker [deg]\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: If not provided, assumed to be 45"), + PyDoc_STR("*float*: Rotational limit on tracker [deg]\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nFalse. Automatically set to 45 if not assigned explicitly or loaded from defaults."), NULL}, {"sky_model", (getter)IrradianceProcessor_get_sky_model,(setter)IrradianceProcessor_set_sky_model, - PyDoc_STR("*float*: Tilted surface irradiance model [0/1/2]\n\n*Info*: Isotropic,HDKR,Perez\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Tilted surface irradiance model [0/1/2]\n\n**Info:**\nIsotropic,HDKR,Perez\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"slope_azm", (getter)IrradianceProcessor_get_slope_azm,(setter)IrradianceProcessor_set_slope_azm, - PyDoc_STR("*float*: Terrain azimuth [deg]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Terrain azimuth [deg]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"slope_tilt", (getter)IrradianceProcessor_get_slope_tilt,(setter)IrradianceProcessor_set_slope_tilt, - PyDoc_STR("*float*: Terrain slope [deg]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Terrain slope [deg]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"tamb", (getter)IrradianceProcessor_get_tamb,(setter)IrradianceProcessor_set_tamb, - PyDoc_STR("*float*: Ambient Temperature (dry bulb temperature) [°C]\n\n*Required*: False"), + PyDoc_STR("*float*: Ambient Temperature (dry bulb temperature) [°C]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"tilt", (getter)IrradianceProcessor_get_tilt,(setter)IrradianceProcessor_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: False"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"track_mode", (getter)IrradianceProcessor_get_track_mode,(setter)IrradianceProcessor_set_track_mode, - PyDoc_STR("*float*: Tracking mode [0/1/2]\n\n*Info*: Fixed,1Axis,2Axis\n\n*Constraints*: MIN=0,MAX=2,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [0/1/2]\n\n**Info:**\nFixed,1Axis,2Axis\n\n**Constraints:**\nMIN=0,MAX=2,INTEGER\n\n**Required:**\nTrue"), NULL}, {"tz", (getter)IrradianceProcessor_get_tz,(setter)IrradianceProcessor_set_tz, - PyDoc_STR("*float*: Time zone [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time zone [hr]\n\n**Required:**\nTrue"), NULL}, {"year", (getter)IrradianceProcessor_get_year,(setter)IrradianceProcessor_set_year, - PyDoc_STR("*sequence*: Year [yr]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Year [yr]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -581,11 +581,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1050,12 +1050,11 @@ static PyMethodDef IrradprocModule_methods[] = { {"new", Irradproc_new, METH_VARARGS, PyDoc_STR("new() -> Irradproc")}, {"default", Irradproc_default, METH_VARARGS, - PyDoc_STR("default(config) -> Irradproc\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Irradproc\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Irradproc_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Irradproc\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Irradproc\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Irradproc_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Irradproc\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Irradproc\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/IsccDesignPoint.c b/modules/IsccDesignPoint.c index 1055ff43..9d55a8e6 100644 --- a/modules/IsccDesignPoint.c +++ b/modules/IsccDesignPoint.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -163,25 +163,25 @@ Common_set_q_pb_design(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"HTF_code", (getter)Common_get_HTF_code,(setter)Common_set_HTF_code, - PyDoc_STR("*float*: HTF fluid code [-]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF fluid code [-]\n\n**Required:**\nTrue"), NULL}, {"elev", (getter)Common_get_elev,(setter)Common_set_elev, - PyDoc_STR("*float*: Plant elevation [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Plant elevation [m]\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Common_get_field_fl_props,(setter)Common_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nTrue"), NULL}, {"ngcc_model", (getter)Common_get_ngcc_model,(setter)Common_set_ngcc_model, - PyDoc_STR("*float*: 1: NREL, 2: GE\n\n*Required*: True"), + PyDoc_STR("*float*: 1: NREL, 2: GE\n\n**Required:**\nTrue"), NULL}, {"pinch_point_cold", (getter)Common_get_pinch_point_cold,(setter)Common_set_pinch_point_cold, - PyDoc_STR("*float*: Cold side pinch point [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold side pinch point [C]\n\n**Required:**\nTrue"), NULL}, {"pinch_point_hot", (getter)Common_get_pinch_point_hot,(setter)Common_set_pinch_point_hot, - PyDoc_STR("*float*: Hot side pinch point [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot side pinch point [C]\n\n**Required:**\nTrue"), NULL}, {"q_pb_design", (getter)Common_get_q_pb_design,(setter)Common_set_q_pb_design, - PyDoc_STR("*float*: Design point power block thermal power [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Design point power block thermal power [MWt]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -296,11 +296,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -675,12 +675,11 @@ static PyMethodDef IsccDesignPointModule_methods[] = { {"new", IsccDesignPoint_new, METH_VARARGS, PyDoc_STR("new() -> IsccDesignPoint")}, {"default", IsccDesignPoint_default, METH_VARARGS, - PyDoc_STR("default(config) -> IsccDesignPoint\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> IsccDesignPoint\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", IsccDesignPoint_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> IsccDesignPoint\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> IsccDesignPoint\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", IsccDesignPoint_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> IsccDesignPoint\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> IsccDesignPoint\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Layoutarea.c b/modules/Layoutarea.c index 398c6cfc..84933fa0 100644 --- a/modules/Layoutarea.c +++ b/modules/Layoutarea.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ Common_set_positions(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"positions", (getter)Common_get_positions,(setter)Common_set_positions, - PyDoc_STR("*sequence[sequence]*: Positions within calculataed area\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Positions within calculataed area\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -558,12 +558,11 @@ static PyMethodDef LayoutareaModule_methods[] = { {"new", Layoutarea_new, METH_VARARGS, PyDoc_STR("new() -> Layoutarea")}, {"default", Layoutarea_default, METH_VARARGS, - PyDoc_STR("default(config) -> Layoutarea\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Layoutarea\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Layoutarea_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Layoutarea\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Layoutarea\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Layoutarea_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Layoutarea\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Layoutarea\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Lcoefcr.c b/modules/Lcoefcr.c index 4d58f8e3..b5bcfa36 100644 --- a/modules/Lcoefcr.c +++ b/modules/Lcoefcr.c @@ -69,11 +69,11 @@ SimpleLCOE_export(VarGroupObject *self, PyObject *args) static PyMethodDef SimpleLCOE_methods[] = { {"assign", (PyCFunction)SimpleLCOE_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SimpleLCOE_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SimpleLCOE_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SimpleLCOE_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SimpleLCOE_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SimpleLCOE_vals = { var: val, ...}``")}, {"export", (PyCFunction)SimpleLCOE_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -139,19 +139,19 @@ SimpleLCOE_set_variable_operating_cost(VarGroupObject *self, PyObject *value, vo static PyGetSetDef SimpleLCOE_getset[] = { {"annual_energy", (getter)SimpleLCOE_get_annual_energy,(setter)SimpleLCOE_set_annual_energy, - PyDoc_STR("*float*: Annual energy production [kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Annual energy production [kWh]\n\n**Required:**\nTrue"), NULL}, {"capital_cost", (getter)SimpleLCOE_get_capital_cost,(setter)SimpleLCOE_set_capital_cost, - PyDoc_STR("*float*: Capital cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Capital cost [$]\n\n**Required:**\nTrue"), NULL}, {"fixed_charge_rate", (getter)SimpleLCOE_get_fixed_charge_rate,(setter)SimpleLCOE_set_fixed_charge_rate, - PyDoc_STR("*float*: Fixed charge rate\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed charge rate\n\n**Required:**\nTrue"), NULL}, {"fixed_operating_cost", (getter)SimpleLCOE_get_fixed_operating_cost,(setter)SimpleLCOE_set_fixed_operating_cost, - PyDoc_STR("*float*: Annual fixed operating cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Annual fixed operating cost [$]\n\n**Required:**\nTrue"), NULL}, {"variable_operating_cost", (getter)SimpleLCOE_get_variable_operating_cost,(setter)SimpleLCOE_set_variable_operating_cost, - PyDoc_STR("*float*: Annual variable operating cost [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Annual variable operating cost [$/kWh]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -266,11 +266,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -282,7 +282,7 @@ Outputs_get_lcoe_fcr(VarGroupObject *self, void *closure) static PyGetSetDef Outputs_getset[] = { {"lcoe_fcr", (getter)Outputs_get_lcoe_fcr,(setter)0, - PyDoc_STR("*float*: Levelized cost of energy [$/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy [$/kWh]"), NULL}, {NULL} /* Sentinel */ }; @@ -609,12 +609,11 @@ static PyMethodDef LcoefcrModule_methods[] = { {"new", Lcoefcr_new, METH_VARARGS, PyDoc_STR("new() -> Lcoefcr")}, {"default", Lcoefcr_default, METH_VARARGS, - PyDoc_STR("default(config) -> Lcoefcr\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerLCOECalculator\"\n- \"DSGLIPHLCOHCalculator\"\n- \"DSLFLCOECalculator\"\n- \"EmpiricalTroughLCOECalculator\"\n- \"FlatPlatePVLCOECalculator\"\n- \"GenericCSPSystemLCOECalculator\"\n- \"GenericSystemLCOECalculator\"\n- \"GeothermalPowerLCOECalculator\"\n- \"HighXConcentratingPVLCOECalculator\"\n- \"MEtidalLCOECalculator\"\n- \"MEwaveLCOECalculator\"\n- \"MSLFLCOECalculator\"\n- \"PVWattsLCOECalculator\"\n- \"PhysicalTroughIPHLCOHCalculator\"\n- \"PhysicalTroughLCOECalculator\"\n- \"SolarWaterHeatingLCOECalculator\"\n- \"WindPowerLCOECalculator\"")}, + PyDoc_STR("default(config) -> Lcoefcr\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerLCOECalculator\"*\n\n - *\"DSGLIPHLCOHCalculator\"*\n\n - *\"DSLFLCOECalculator\"*\n\n - *\"EmpiricalTroughLCOECalculator\"*\n\n - *\"FlatPlatePVLCOECalculator\"*\n\n - *\"GenericCSPSystemLCOECalculator\"*\n\n - *\"GenericSystemLCOECalculator\"*\n\n - *\"GeothermalPowerLCOECalculator\"*\n\n - *\"HighXConcentratingPVLCOECalculator\"*\n\n - *\"MEtidalLCOECalculator\"*\n\n - *\"MEwaveLCOECalculator\"*\n\n - *\"MSLFLCOECalculator\"*\n\n - *\"PVWattsLCOECalculator\"*\n\n - *\"PhysicalTroughIPHLCOHCalculator\"*\n\n - *\"PhysicalTroughLCOECalculator\"*\n\n - *\"SolarWaterHeatingLCOECalculator\"*\n\n - *\"WindPowerLCOECalculator\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Lcoefcr_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Lcoefcr\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Lcoefcr\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Lcoefcr_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Lcoefcr\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Lcoefcr\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Levpartflip.c b/modules/Levpartflip.c index 1d7cdf75..ef8b3379 100644 --- a/modules/Levpartflip.c +++ b/modules/Levpartflip.c @@ -69,11 +69,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -187,31 +187,31 @@ Revenue_set_ppa_soln_tolerance(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Revenue_getset[] = { {"flip_target_percent", (getter)Revenue_get_flip_target_percent,(setter)Revenue_set_flip_target_percent, - PyDoc_STR("*float*: After-tax IRR target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax IRR target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)Revenue_get_flip_target_year,(setter)Revenue_set_flip_target_year, - PyDoc_STR("*float*: IRR target year [Year]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: IRR target year [Year]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_escalation", (getter)Revenue_get_ppa_escalation,(setter)Revenue_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA price in first year [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: PPA price in first year input [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ppa_soln_max", (getter)Revenue_get_ppa_soln_max,(setter)Revenue_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Revenue_get_ppa_soln_max_iterations,(setter)Revenue_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Revenue_get_ppa_soln_min,(setter)Revenue_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_mode", (getter)Revenue_get_ppa_soln_mode,(setter)Revenue_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Revenue_get_ppa_soln_tolerance,(setter)Revenue_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-5"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -326,11 +326,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -768,112 +768,112 @@ FinancialParameters_set_term_tenor(VarGroupObject *self, PyObject *value, void * static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_salvage_percentage", (getter)FinancialParameters_get_batt_salvage_percentage,(setter)FinancialParameters_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_closing", (getter)FinancialParameters_get_cost_debt_closing,(setter)FinancialParameters_set_cost_debt_closing, - PyDoc_STR("*float*: Debt closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Debt closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_fee", (getter)FinancialParameters_get_cost_debt_fee,(setter)FinancialParameters_set_cost_debt_fee, - PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)FinancialParameters_get_cost_other_financing,(setter)FinancialParameters_set_cost_other_financing, - PyDoc_STR("*float*: Other financing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Other financing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_option", (getter)FinancialParameters_get_debt_option,(setter)FinancialParameters_set_debt_option, - PyDoc_STR("*float*: Debt option [0/1]\n\n*Options*: 0=debt percent,1=dscr\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Debt option [0/1]\n\n**Options:**\n0=debt percent,1=dscr\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_percent", (getter)FinancialParameters_get_debt_percent,(setter)FinancialParameters_set_debt_percent, - PyDoc_STR("*float*: Debt percent [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Debt percent [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr", (getter)FinancialParameters_get_dscr,(setter)FinancialParameters_set_dscr, - PyDoc_STR("*float*: Debt service coverage ratio\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt service coverage ratio\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_limit_debt_fraction", (getter)FinancialParameters_get_dscr_limit_debt_fraction,(setter)FinancialParameters_set_dscr_limit_debt_fraction, - PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_maximum_debt_fraction", (getter)FinancialParameters_get_dscr_maximum_debt_fraction,(setter)FinancialParameters_set_dscr_maximum_debt_fraction, - PyDoc_STR("*float*: Maximum debt fraction [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Maximum debt fraction [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_reserve_months", (getter)FinancialParameters_get_dscr_reserve_months,(setter)FinancialParameters_set_dscr_reserve_months, - PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)FinancialParameters_get_months_receivables_reserve,(setter)FinancialParameters_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)FinancialParameters_get_months_working_reserve,(setter)FinancialParameters_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"payment_option", (getter)FinancialParameters_get_payment_option,(setter)FinancialParameters_set_payment_option, - PyDoc_STR("*float*: Debt repayment option [0/1]\n\n*Options*: 0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt repayment option [0/1]\n\n**Options:**\n0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"term_int_rate", (getter)FinancialParameters_get_term_int_rate,(setter)FinancialParameters_set_term_int_rate, - PyDoc_STR("*float*: Term financing interest rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 8.5"), + PyDoc_STR("*float*: Term financing interest rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 8.5 if not assigned explicitly or loaded from defaults."), NULL}, {"term_tenor", (getter)FinancialParameters_get_term_tenor,(setter)FinancialParameters_set_term_tenor, - PyDoc_STR("*float*: Term financing period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Term financing period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -988,11 +988,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1382,100 +1382,100 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1590,11 +1590,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1636,13 +1636,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1757,11 +1757,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2007,64 +2007,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2179,11 +2179,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2669,124 +2669,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2901,11 +2901,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4015,280 +4015,280 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_for_ds", (getter)PaymentIncentives_get_pbi_fed_for_ds,(setter)PaymentIncentives_set_pbi_fed_for_ds, - PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_for_ds", (getter)PaymentIncentives_get_pbi_oth_for_ds,(setter)PaymentIncentives_set_pbi_oth_for_ds, - PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_for_ds", (getter)PaymentIncentives_get_pbi_sta_for_ds,(setter)PaymentIncentives_set_pbi_sta_for_ds, - PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_for_ds", (getter)PaymentIncentives_get_pbi_uti_for_ds,(setter)PaymentIncentives_set_pbi_uti_for_ds, - PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4403,11 +4403,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4461,16 +4461,16 @@ SystemOutput_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemOutput_getset[] = { {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4585,11 +4585,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4607,7 +4607,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4722,11 +4722,11 @@ Moratorium_export(VarGroupObject *self, PyObject *args) static PyMethodDef Moratorium_methods[] = { {"assign", (PyCFunction)Moratorium_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Moratorium_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Moratorium_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Moratorium_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Moratorium_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Moratorium_vals = { var: val, ...}``")}, {"export", (PyCFunction)Moratorium_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4744,7 +4744,7 @@ Moratorium_set_loan_moratorium(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Moratorium_getset[] = { {"loan_moratorium", (getter)Moratorium_get_loan_moratorium,(setter)Moratorium_set_loan_moratorium, - PyDoc_STR("*float*: Loan moratorium period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan moratorium period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4859,11 +4859,11 @@ Recapitalization_export(VarGroupObject *self, PyObject *args) static PyMethodDef Recapitalization_methods[] = { {"assign", (PyCFunction)Recapitalization_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Recapitalization_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Recapitalization_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Recapitalization_vals = { var: val, ...}``")}, {"export", (PyCFunction)Recapitalization_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4917,16 +4917,16 @@ Recapitalization_set_system_use_recapitalization(VarGroupObject *self, PyObject static PyGetSetDef Recapitalization_getset[] = { {"system_lifetime_recapitalize", (getter)Recapitalization_get_system_lifetime_recapitalize,(setter)Recapitalization_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)Recapitalization_get_system_recapitalization_cost,(setter)Recapitalization_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)Recapitalization_get_system_recapitalization_escalation,(setter)Recapitalization_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)Recapitalization_get_system_use_recapitalization,(setter)Recapitalization_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5041,11 +5041,11 @@ TimeOfDelivery_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDelivery_methods[] = { {"assign", (PyCFunction)TimeOfDelivery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDelivery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDelivery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5219,46 +5219,46 @@ TimeOfDelivery_set_system_use_lifetime_output(VarGroupObject *self, PyObject *va static PyGetSetDef TimeOfDelivery_getset[] = { {"dispatch_factor1", (getter)TimeOfDelivery_get_dispatch_factor1,(setter)TimeOfDelivery_set_dispatch_factor1, - PyDoc_STR("*float*: TOD factor for period 1\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 1\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor2", (getter)TimeOfDelivery_get_dispatch_factor2,(setter)TimeOfDelivery_set_dispatch_factor2, - PyDoc_STR("*float*: TOD factor for period 2\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 2\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor3", (getter)TimeOfDelivery_get_dispatch_factor3,(setter)TimeOfDelivery_set_dispatch_factor3, - PyDoc_STR("*float*: TOD factor for period 3\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 3\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor4", (getter)TimeOfDelivery_get_dispatch_factor4,(setter)TimeOfDelivery_set_dispatch_factor4, - PyDoc_STR("*float*: TOD factor for period 4\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 4\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor5", (getter)TimeOfDelivery_get_dispatch_factor5,(setter)TimeOfDelivery_set_dispatch_factor5, - PyDoc_STR("*float*: TOD factor for period 5\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 5\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor6", (getter)TimeOfDelivery_get_dispatch_factor6,(setter)TimeOfDelivery_set_dispatch_factor6, - PyDoc_STR("*float*: TOD factor for period 6\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 6\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor7", (getter)TimeOfDelivery_get_dispatch_factor7,(setter)TimeOfDelivery_set_dispatch_factor7, - PyDoc_STR("*float*: TOD factor for period 7\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 7\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor8", (getter)TimeOfDelivery_get_dispatch_factor8,(setter)TimeOfDelivery_set_dispatch_factor8, - PyDoc_STR("*float*: TOD factor for period 8\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 8\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor9", (getter)TimeOfDelivery_get_dispatch_factor9,(setter)TimeOfDelivery_set_dispatch_factor9, - PyDoc_STR("*float*: TOD factor for period 9\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 9\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDelivery_get_dispatch_factors_ts,(setter)TimeOfDelivery_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDelivery_get_dispatch_sched_weekday,(setter)TimeOfDelivery_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDelivery_get_dispatch_sched_weekend,(setter)TimeOfDelivery_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDelivery_get_ppa_multiplier_model,(setter)TimeOfDelivery_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)TimeOfDelivery_get_system_use_lifetime_output,(setter)TimeOfDelivery_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5373,11 +5373,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5510,11 +5510,11 @@ ConstructionFinancing_export(VarGroupObject *self, PyObject *args) static PyMethodDef ConstructionFinancing_methods[] = { {"assign", (PyCFunction)ConstructionFinancing_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ConstructionFinancing_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ConstructionFinancing_vals = { var: val, ...}``")}, {"export", (PyCFunction)ConstructionFinancing_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5532,7 +5532,7 @@ ConstructionFinancing_set_construction_financing_cost(VarGroupObject *self, PyOb static PyGetSetDef ConstructionFinancing_getset[] = { {"construction_financing_cost", (getter)ConstructionFinancing_get_construction_financing_cost,(setter)ConstructionFinancing_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5647,11 +5647,11 @@ OtherCapitalCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef OtherCapitalCosts_methods[] = { {"assign", (PyCFunction)OtherCapitalCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)OtherCapitalCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)OtherCapitalCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5681,10 +5681,10 @@ OtherCapitalCosts_set_cost_equity_closing(VarGroupObject *self, PyObject *value, static PyGetSetDef OtherCapitalCosts_getset[] = { {"cost_dev_fee_percent", (getter)OtherCapitalCosts_get_cost_dev_fee_percent,(setter)OtherCapitalCosts_set_cost_dev_fee_percent, - PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_equity_closing", (getter)OtherCapitalCosts_get_cost_equity_closing,(setter)OtherCapitalCosts_set_cost_equity_closing, - PyDoc_STR("*float*: Equity closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Equity closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5799,11 +5799,11 @@ IRRTargets_export(VarGroupObject *self, PyObject *args) static PyMethodDef IRRTargets_methods[] = { {"assign", (PyCFunction)IRRTargets_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IRRTargets_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IRRTargets_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IRRTargets_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IRRTargets_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IRRTargets_vals = { var: val, ...}``")}, {"export", (PyCFunction)IRRTargets_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5869,19 +5869,19 @@ IRRTargets_set_tax_investor_preflip_tax_percent(VarGroupObject *self, PyObject * static PyGetSetDef IRRTargets_getset[] = { {"tax_investor_equity_percent", (getter)IRRTargets_get_tax_investor_equity_percent,(setter)IRRTargets_set_tax_investor_equity_percent, - PyDoc_STR("*float*: Investor equity [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor equity [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_postflip_cash_percent", (getter)IRRTargets_get_tax_investor_postflip_cash_percent,(setter)IRRTargets_set_tax_investor_postflip_cash_percent, - PyDoc_STR("*float*: Investor post-flip cash [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Investor post-flip cash [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_postflip_tax_percent", (getter)IRRTargets_get_tax_investor_postflip_tax_percent,(setter)IRRTargets_set_tax_investor_postflip_tax_percent, - PyDoc_STR("*float*: Investor post-flip tax benefit [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Investor post-flip tax benefit [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_preflip_cash_percent", (getter)IRRTargets_get_tax_investor_preflip_cash_percent,(setter)IRRTargets_set_tax_investor_preflip_cash_percent, - PyDoc_STR("*float*: Investor pre-flip cash [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor pre-flip cash [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_preflip_tax_percent", (getter)IRRTargets_get_tax_investor_preflip_tax_percent,(setter)IRRTargets_set_tax_investor_preflip_tax_percent, - PyDoc_STR("*float*: Investor pre-flip tax benefit [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 98"), + PyDoc_STR("*float*: Investor pre-flip tax benefit [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 98 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5996,11 +5996,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6210,7 +6210,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6222,28 +6222,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6358,11 +6358,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6510,11 +6510,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6607,22 +6607,22 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6737,11 +6737,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11793,34 +11793,34 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lppa_nom", (getter)Outputs_get_lppa_nom,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price nominal [cents/kWh]"), NULL}, {"lppa_real", (getter)Outputs_get_lppa_real,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (real) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price real [cents/kWh]"), NULL}, {"min_dscr", (getter)Outputs_get_min_dscr,(setter)0, PyDoc_STR("*float*: Minimum DSCR"), @@ -11841,16 +11841,16 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_ppa_revenue", (getter)Outputs_get_npv_ppa_revenue,(setter)0, PyDoc_STR("*float*: Present value of PPA revenue [$]"), NULL}, {"ppa", (getter)Outputs_get_ppa,(setter)0, - PyDoc_STR("*float*: PPA price (Year 1) [cents/kWh]"), + PyDoc_STR("*float*: PPA price in Year 1 [cents/kWh]"), NULL}, {"ppa_escalation", (getter)Outputs_get_ppa_escalation,(setter)0, PyDoc_STR("*float*: PPA price escalation [%/year]"), @@ -11928,7 +11928,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Iinvestor pre-tax NPV [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -12327,12 +12327,11 @@ static PyMethodDef LevpartflipModule_methods[] = { {"new", Levpartflip_new, METH_VARARGS, PyDoc_STR("new() -> Levpartflip")}, {"default", Levpartflip_default, METH_VARARGS, - PyDoc_STR("default(config) -> Levpartflip\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerLeveragedPartnershipFlip\"\n- \"DSLFLeveragedPartnershipFlip\"\n- \"EmpiricalTroughLeveragedPartnershipFlip\"\n- \"FlatPlatePVLeveragedPartnershipFlip\"\n- \"GenericBatteryLeveragedPartnershipFlip\"\n- \"GenericCSPSystemLeveragedPartnershipFlip\"\n- \"GenericSystemLeveragedPartnershipFlip\"\n- \"GeothermalPowerLeveragedPartnershipFlip\"\n- \"HighXConcentratingPVLeveragedPartnershipFlip\"\n- \"MSLFLeveragedPartnershipFlip\"\n- \"MSPTLeveragedPartnershipFlip\"\n- \"PVBatteryLeveragedPartnershipFlip\"\n- \"PVWattsLeveragedPartnershipFlip\"\n- \"PhysicalTroughLeveragedPartnershipFlip\"\n- \"StandaloneBatteryLeveragedPartnershipFlip\"\n- \"WindPowerLeveragedPartnershipFlip\"")}, + PyDoc_STR("default(config) -> Levpartflip\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerLeveragedPartnershipFlip\"*\n\n - *\"DSLFLeveragedPartnershipFlip\"*\n\n - *\"EmpiricalTroughLeveragedPartnershipFlip\"*\n\n - *\"FlatPlatePVLeveragedPartnershipFlip\"*\n\n - *\"GenericBatteryLeveragedPartnershipFlip\"*\n\n - *\"GenericCSPSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericSystemLeveragedPartnershipFlip\"*\n\n - *\"GeothermalPowerLeveragedPartnershipFlip\"*\n\n - *\"HighXConcentratingPVLeveragedPartnershipFlip\"*\n\n - *\"MSLFLeveragedPartnershipFlip\"*\n\n - *\"MSPTLeveragedPartnershipFlip\"*\n\n - *\"PVBatteryLeveragedPartnershipFlip\"*\n\n - *\"PVWattsLeveragedPartnershipFlip\"*\n\n - *\"PhysicalTroughLeveragedPartnershipFlip\"*\n\n - *\"StandaloneBatteryLeveragedPartnershipFlip\"*\n\n - *\"WindPowerLeveragedPartnershipFlip\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Levpartflip_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Levpartflip\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Levpartflip\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Levpartflip_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Levpartflip\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Levpartflip\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/LinearFresnelDsgIph.c b/modules/LinearFresnelDsgIph.c index 57b102bb..768f9aea 100644 --- a/modules/LinearFresnelDsgIph.c +++ b/modules/LinearFresnelDsgIph.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ Weather_set_solar_resource_data(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef Weather_getset[] = { {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"solar_resource_data", (getter)Weather_get_solar_resource_data,(setter)Weather_set_solar_resource_data, - PyDoc_STR("*dict*: Weather resource data in memory\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather resource data in memory\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ Solarfield_export(VarGroupObject *self, PyObject *args) static PyMethodDef Solarfield_methods[] = { {"assign", (PyCFunction)Solarfield_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Solarfield_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Solarfield_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Solarfield_vals = { var: val, ...}``")}, {"export", (PyCFunction)Solarfield_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -733,6 +733,18 @@ Solarfield_set_b_eps_HCE4(VarGroupObject *self, PyObject *value, void *closure) return PySAM_matrix_setter(value, SAM_LinearFresnelDsgIph_Solarfield_b_eps_HCE4_mset, self->data_ptr); } +static PyObject * +Solarfield_get_deltaT_subcooled(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_LinearFresnelDsgIph_Solarfield_deltaT_subcooled_nget, self->data_ptr); +} + +static int +Solarfield_set_deltaT_subcooled(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_LinearFresnelDsgIph_Solarfield_deltaT_subcooled_nset, self->data_ptr); +} + static PyObject * Solarfield_get_dirt_mirror(VarGroupObject *self, void *closure) { @@ -949,6 +961,18 @@ Solarfield_set_theta_stow(VarGroupObject *self, PyObject *value, void *closure) return PySAM_double_setter(value, SAM_LinearFresnelDsgIph_Solarfield_theta_stow_nset, self->data_ptr); } +static PyObject * +Solarfield_get_use_quality_or_subcooled(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_LinearFresnelDsgIph_Solarfield_use_quality_or_subcooled_nget, self->data_ptr); +} + +static int +Solarfield_set_use_quality_or_subcooled(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_LinearFresnelDsgIph_Solarfield_use_quality_or_subcooled_nset, self->data_ptr); +} + static PyObject * Solarfield_get_x_b_des(VarGroupObject *self, void *closure) { @@ -963,187 +987,193 @@ Solarfield_set_x_b_des(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Solarfield_getset[] = { {"A_aperture", (getter)Solarfield_get_A_aperture,(setter)Solarfield_set_A_aperture, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Reflective aperture area of the collector module [m^2]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Reflective aperture area of the collector module [m^2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)Solarfield_get_AbsorberMaterial,(setter)Solarfield_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)Solarfield_get_AnnulusGas,(setter)Solarfield_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas type {1=air; 26=Ar; 27=H2} (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas type {1=air; 26=Ar; 27=H2} (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"ColAz", (getter)Solarfield_get_ColAz,(setter)Solarfield_set_ColAz, - PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n**Required:**\nTrue"), NULL}, {"D_2", (getter)Solarfield_get_D_2,(setter)Solarfield_set_D_2, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)Solarfield_get_D_3,(setter)Solarfield_set_D_3, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)Solarfield_get_D_4,(setter)Solarfield_set_D_4, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)Solarfield_get_D_5,(setter)Solarfield_set_D_5, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)Solarfield_get_D_p,(setter)Solarfield_set_D_p, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)Solarfield_get_Design_loss,(setter)Solarfield_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver heat loss at design (4: # field fracs) [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver heat loss at design (4: # field fracs) [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)Solarfield_get_Dirt_HCE,(setter)Solarfield_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Loss due to dirt on the receiver envelope (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Loss due to dirt on the receiver envelope (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)Solarfield_get_EPSILON_4,(setter)Solarfield_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Inner glass envelope emissivities (Pyrex) (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Inner glass envelope emissivities (Pyrex) (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)Solarfield_get_Flow_type,(setter)Solarfield_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)Solarfield_get_GeomEffects,(setter)Solarfield_set_GeomEffects, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)Solarfield_get_GlazingIntactIn,(setter)Solarfield_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The glazing intact flag {true=0; false=1} (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The glazing intact flag {true=0; false=1} (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)Solarfield_get_HCE_FieldFrac,(setter)Solarfield_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The fraction of the field occupied by this HCE type (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The fraction of the field occupied by this HCE type (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"HLCharType", (getter)Solarfield_get_HLCharType,(setter)Solarfield_set_HLCharType, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Flag indicating the heat loss model type {1=poly.; 2=Forristall} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Flag indicating the heat loss model type {1=poly.; 2=Forristall} [none]\n\n**Required:**\nTrue"), NULL}, {"HL_W", (getter)Solarfield_get_HL_W,(setter)Solarfield_set_HL_W, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coef adj wind velocity (0,1,2,3,4 order terms) [1/(m/s)^order]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coef adj wind velocity (0,1,2,3,4 order terms) [1/(m/s)^order]\n\n**Required:**\nTrue"), NULL}, {"HL_dT", (getter)Solarfield_get_HL_dT,(setter)Solarfield_set_HL_dT, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coefficient - HTF temperature (0,1,2,3,4 order terms) [W/m-K^order]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coefficient - HTF temperature (0,1,2,3,4 order terms) [W/m-K^order]\n\n**Required:**\nTrue"), NULL}, {"IAM_L", (getter)Solarfield_get_IAM_L,(setter)Solarfield_set_IAM_L, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Longitudinal Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Longitudinal Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n**Required:**\nTrue"), NULL}, {"IAM_T", (getter)Solarfield_get_IAM_T,(setter)Solarfield_set_IAM_T, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Transverse Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Transverse Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)Solarfield_get_I_bn_des,(setter)Solarfield_set_I_bn_des, - PyDoc_STR("*float*: Design point irradiation value [W/m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), + PyDoc_STR("*float*: Design point irradiation value [W/m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``I_bn_des``:\n\n\t - nLoops\n"), NULL}, {"L_col", (getter)Solarfield_get_L_col,(setter)Solarfield_set_L_col, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Active length of the superheater section collector module [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Active length of the superheater section collector module [m]\n\n**Required:**\nTrue"), NULL}, {"OptCharType", (getter)Solarfield_get_OptCharType,(setter)Solarfield_set_OptCharType, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The optical characterization method [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The optical characterization method [none]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)Solarfield_get_P_a,(setter)Solarfield_set_P_a, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas pressure (4: # field fracs) [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas pressure (4: # field fracs) [torr]\n\n**Required:**\nTrue"), NULL}, {"P_turb_des", (getter)Solarfield_get_P_turb_des,(setter)Solarfield_set_P_turb_des, - PyDoc_STR("*float*: Design-point turbine inlet pressure [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point turbine inlet pressure [bar]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``P_turb_des``:\n\n\t - nLoops\n"), NULL}, {"Pipe_hl_coef", (getter)Solarfield_get_Pipe_hl_coef,(setter)Solarfield_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header.. runner pipe.. and non-HCE pipin [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header.. runner pipe.. and non-HCE pipin [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)Solarfield_get_Rough,(setter)Solarfield_set_Rough, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Roughness of the internal surface [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Roughness of the internal surface [m]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)Solarfield_get_SCA_drives_elec,(setter)Solarfield_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power.. in Watts per m2 [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power.. in Watts per m2 [W/m2]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)Solarfield_get_Shadowing,(setter)Solarfield_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver bellows shadowing loss factor (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver bellows shadowing loss factor (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"T_amb_des_sf", (getter)Solarfield_get_T_amb_des_sf,(setter)Solarfield_set_T_amb_des_sf, - PyDoc_STR("*float*: Design-point ambient temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), + PyDoc_STR("*float*: Design-point ambient temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_amb_des_sf``:\n\n\t - nLoops\n"), NULL}, {"T_fp", (getter)Solarfield_get_T_fp,(setter)Solarfield_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)Solarfield_get_Tau_envelope,(setter)Solarfield_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope transmittance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope transmittance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)Solarfield_get_TrackingError,(setter)Solarfield_set_TrackingError, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"V_wind_max", (getter)Solarfield_get_V_wind_max,(setter)Solarfield_set_V_wind_max, - PyDoc_STR("*float*: Maximum allowable wind velocity before safety stow [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum allowable wind velocity before safety stow [m/s]\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)Solarfield_get_alpha_abs,(setter)Solarfield_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber absorptance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber absorptance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)Solarfield_get_alpha_env,(setter)Solarfield_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope absorptance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope absorptance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"b_OpticalTable", (getter)Solarfield_get_b_OpticalTable,(setter)Solarfield_set_b_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE1", (getter)Solarfield_get_b_eps_HCE1,(setter)Solarfield_set_b_eps_HCE1, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE2", (getter)Solarfield_get_b_eps_HCE2,(setter)Solarfield_set_b_eps_HCE2, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE3", (getter)Solarfield_get_b_eps_HCE3,(setter)Solarfield_set_b_eps_HCE3, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE4", (getter)Solarfield_get_b_eps_HCE4,(setter)Solarfield_set_b_eps_HCE4, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), + NULL}, +{"deltaT_subcooled", (getter)Solarfield_get_deltaT_subcooled,(setter)Solarfield_set_deltaT_subcooled, + PyDoc_STR("*float*: Subcooled temperature difference from saturation temp [C]\n\n**Required:**\nFalse. Automatically set to 1.23 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``deltaT_subcooled``:\n\n\t - nLoops\n"), NULL}, {"dirt_mirror", (getter)Solarfield_get_dirt_mirror,(setter)Solarfield_set_dirt_mirror, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"e_startup", (getter)Solarfield_get_e_startup,(setter)Solarfield_set_e_startup, - PyDoc_STR("*float*: Thermal inertia contribution per sq meter of solar field [kJ/K-m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal inertia contribution per sq meter of solar field [kJ/K-m2]\n\n**Required:**\nTrue"), NULL}, {"error", (getter)Solarfield_get_error,(setter)Solarfield_set_error, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)Solarfield_get_eta_pump,(setter)Solarfield_set_eta_pump, - PyDoc_STR("*float*: Feedwater pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Feedwater pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"fP_hdr_c", (getter)Solarfield_get_fP_hdr_c,(setter)Solarfield_set_fP_hdr_c, - PyDoc_STR("*float*: Average design-point cold header pressure drop fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Average design-point cold header pressure drop fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fP_hdr_h", (getter)Solarfield_get_fP_hdr_h,(setter)Solarfield_set_fP_hdr_h, - PyDoc_STR("*float*: Average design-point hot header pressure drop fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Average design-point hot header pressure drop fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fP_sf_boil", (getter)Solarfield_get_fP_sf_boil,(setter)Solarfield_set_fP_sf_boil, - PyDoc_STR("*float*: Design-point pressure drop across the solar field boiler fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point pressure drop across the solar field boiler fraction [none]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)Solarfield_get_nLoops,(setter)Solarfield_set_nLoops, - PyDoc_STR("*float*: Number of loops [none]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - I_bn_des\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - nModBoil\n\t - q_pb_des\n"), + PyDoc_STR("*float*: Number of loops [none]\n\n**Required:**\nTrue\n\nThe value of ``nLoops`` depends on the following variables:\n\n\t - I_bn_des\n\t - P_turb_des\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - deltaT_subcooled\n\t - nModBoil\n\t - q_pb_des\n\t - use_quality_or_subcooled\n"), NULL}, {"nModBoil", (getter)Solarfield_get_nModBoil,(setter)Solarfield_set_nModBoil, - PyDoc_STR("*float*: Number of modules in the boiler section [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), + PyDoc_STR("*float*: Number of modules in the boiler section [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nModBoil``:\n\n\t - nLoops\n"), NULL}, {"q_pb_des", (getter)Solarfield_get_q_pb_des,(setter)Solarfield_set_q_pb_des, - PyDoc_STR("*float*: Design heat input to the power block [MW]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), + PyDoc_STR("*float*: Design heat input to the power block [MW]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``q_pb_des``:\n\n\t - nLoops\n"), NULL}, {"rho_mirror_clean", (getter)Solarfield_get_rho_mirror_clean,(setter)Solarfield_set_rho_mirror_clean, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"sh_OpticalTable", (getter)Solarfield_get_sh_OpticalTable,(setter)Solarfield_set_sh_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE1", (getter)Solarfield_get_sh_eps_HCE1,(setter)Solarfield_set_sh_eps_HCE1, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE2", (getter)Solarfield_get_sh_eps_HCE2,(setter)Solarfield_set_sh_eps_HCE2, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE3", (getter)Solarfield_get_sh_eps_HCE3,(setter)Solarfield_set_sh_eps_HCE3, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE4", (getter)Solarfield_get_sh_eps_HCE4,(setter)Solarfield_set_sh_eps_HCE4, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)Solarfield_get_theta_dep,(setter)Solarfield_set_theta_dep, - PyDoc_STR("*float*: deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)Solarfield_get_theta_stow,(setter)Solarfield_set_theta_stow, - PyDoc_STR("*float*: stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: stow angle [deg]\n\n**Required:**\nTrue"), + NULL}, +{"use_quality_or_subcooled", (getter)Solarfield_get_use_quality_or_subcooled,(setter)Solarfield_set_use_quality_or_subcooled, + PyDoc_STR("*float*: 0 = 2 phase outlet, 1 = subcooled\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``use_quality_or_subcooled``:\n\n\t - nLoops\n"), NULL}, {"x_b_des", (getter)Solarfield_get_x_b_des,(setter)Solarfield_set_x_b_des, - PyDoc_STR("*float*: Design point boiler outlet steam quality [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design point boiler outlet steam quality [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1258,11 +1288,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1278,24 +1308,9 @@ Powerblock_set_T_cold_ref(VarGroupObject *self, PyObject *value, void *closure) return PySAM_double_setter(value, SAM_LinearFresnelDsgIph_Powerblock_T_cold_ref_nset, self->data_ptr); } -static PyObject * -Powerblock_get_T_hot(VarGroupObject *self, void *closure) -{ - return PySAM_double_getter(SAM_LinearFresnelDsgIph_Powerblock_T_hot_nget, self->data_ptr); -} - -static int -Powerblock_set_T_hot(VarGroupObject *self, PyObject *value, void *closure) -{ - return PySAM_double_setter(value, SAM_LinearFresnelDsgIph_Powerblock_T_hot_nset, self->data_ptr); -} - static PyGetSetDef Powerblock_getset[] = { {"T_cold_ref", (getter)Powerblock_get_T_cold_ref,(setter)Powerblock_set_T_cold_ref, - PyDoc_STR("*float*: Reference HTF outlet temperature at design [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), - NULL}, -{"T_hot", (getter)Powerblock_get_T_hot,(setter)Powerblock_set_T_hot, - PyDoc_STR("*float*: Hot HTF inlet temperature, from storage tank [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n"), + PyDoc_STR("*float*: Reference HTF outlet temperature at design [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_cold_ref``:\n\n\t - nLoops\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1410,11 +1425,11 @@ Heliostat_export(VarGroupObject *self, PyObject *args) static PyMethodDef Heliostat_methods[] = { {"assign", (PyCFunction)Heliostat_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Heliostat_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Heliostat_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Heliostat_vals = { var: val, ...}``")}, {"export", (PyCFunction)Heliostat_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1444,10 +1459,10 @@ Heliostat_set_csp_lf_sf_water_per_wash(VarGroupObject *self, PyObject *value, vo static PyGetSetDef Heliostat_getset[] = { {"csp_lf_sf_washes_per_year", (getter)Heliostat_get_csp_lf_sf_washes_per_year,(setter)Heliostat_set_csp_lf_sf_washes_per_year, - PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n**Required:**\nTrue"), NULL}, {"csp_lf_sf_water_per_wash", (getter)Heliostat_get_csp_lf_sf_water_per_wash,(setter)Heliostat_set_csp_lf_sf_water_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1562,11 +1577,11 @@ HeatSink_export(VarGroupObject *self, PyObject *args) static PyMethodDef HeatSink_methods[] = { {"assign", (PyCFunction)HeatSink_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HeatSink_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HeatSink_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HeatSink_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HeatSink_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HeatSink_vals = { var: val, ...}``")}, {"export", (PyCFunction)HeatSink_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1584,7 +1599,7 @@ HeatSink_set_heat_sink_dP_frac(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef HeatSink_getset[] = { {"heat_sink_dP_frac", (getter)HeatSink_get_heat_sink_dP_frac,(setter)HeatSink_set_heat_sink_dP_frac, - PyDoc_STR("*float*: Fractional pressure drop through heat sink\n\n*Required*: True"), + PyDoc_STR("*float*: Fractional pressure drop through heat sink\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1699,11 +1714,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2496,12 +2511,11 @@ static PyMethodDef LinearFresnelDsgIphModule_methods[] = { {"new", LinearFresnelDsgIph_new, METH_VARARGS, PyDoc_STR("new() -> LinearFresnelDsgIph")}, {"default", LinearFresnelDsgIph_default, METH_VARARGS, - PyDoc_STR("default(config) -> LinearFresnelDsgIph\n\nUse default attributes\n" - "`config` options:\n\n- \"DSGLIPHLCOHCalculator\"\n- \"DSGLIPHNone\"")}, + PyDoc_STR("default(config) -> LinearFresnelDsgIph\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"DSGLIPHLCOHCalculator\"*\n\n - *\"DSGLIPHNone\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", LinearFresnelDsgIph_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> LinearFresnelDsgIph\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> LinearFresnelDsgIph\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", LinearFresnelDsgIph_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> LinearFresnelDsgIph\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> LinearFresnelDsgIph\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Merchantplant.c b/modules/Merchantplant.c index f2b51fd6..497f92c3 100644 --- a/modules/Merchantplant.c +++ b/modules/Merchantplant.c @@ -69,11 +69,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -535,118 +535,118 @@ FinancialParameters_set_term_tenor(VarGroupObject *self, PyObject *value, void * static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_salvage_percentage", (getter)FinancialParameters_get_batt_salvage_percentage,(setter)FinancialParameters_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"construction_financing_cost", (getter)FinancialParameters_get_construction_financing_cost,(setter)FinancialParameters_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {"cost_debt_closing", (getter)FinancialParameters_get_cost_debt_closing,(setter)FinancialParameters_set_cost_debt_closing, - PyDoc_STR("*float*: Debt closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Debt closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_fee", (getter)FinancialParameters_get_cost_debt_fee,(setter)FinancialParameters_set_cost_debt_fee, - PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)FinancialParameters_get_cost_other_financing,(setter)FinancialParameters_set_cost_other_financing, - PyDoc_STR("*float*: Other financing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Other financing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_option", (getter)FinancialParameters_get_debt_option,(setter)FinancialParameters_set_debt_option, - PyDoc_STR("*float*: Debt option [0/1]\n\n*Options*: 0=debt percent,1=dscr\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Debt option [0/1]\n\n**Options:**\n0=debt percent,1=dscr\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_percent", (getter)FinancialParameters_get_debt_percent,(setter)FinancialParameters_set_debt_percent, - PyDoc_STR("*float*: Debt percent [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Debt percent [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr", (getter)FinancialParameters_get_dscr,(setter)FinancialParameters_set_dscr, - PyDoc_STR("*float*: Debt service coverage ratio\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt service coverage ratio\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_limit_debt_fraction", (getter)FinancialParameters_get_dscr_limit_debt_fraction,(setter)FinancialParameters_set_dscr_limit_debt_fraction, - PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_maximum_debt_fraction", (getter)FinancialParameters_get_dscr_maximum_debt_fraction,(setter)FinancialParameters_set_dscr_maximum_debt_fraction, - PyDoc_STR("*float*: Maximum debt fraction [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Maximum debt fraction [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_reserve_months", (getter)FinancialParameters_get_dscr_reserve_months,(setter)FinancialParameters_set_dscr_reserve_months, - PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_moratorium", (getter)FinancialParameters_get_loan_moratorium,(setter)FinancialParameters_set_loan_moratorium, - PyDoc_STR("*float*: Loan moratorium period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan moratorium period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)FinancialParameters_get_months_receivables_reserve,(setter)FinancialParameters_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)FinancialParameters_get_months_working_reserve,(setter)FinancialParameters_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"payment_option", (getter)FinancialParameters_get_payment_option,(setter)FinancialParameters_set_payment_option, - PyDoc_STR("*float*: Debt repayment option [0/1]\n\n*Options*: 0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt repayment option [0/1]\n\n**Options:**\n0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"term_int_rate", (getter)FinancialParameters_get_term_int_rate,(setter)FinancialParameters_set_term_int_rate, - PyDoc_STR("*float*: Term financing interest rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 8.5"), + PyDoc_STR("*float*: Term financing interest rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 8.5 if not assigned explicitly or loaded from defaults."), NULL}, {"term_tenor", (getter)FinancialParameters_get_term_tenor,(setter)FinancialParameters_set_term_tenor, - PyDoc_STR("*float*: Term financing period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Term financing period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -761,11 +761,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1203,112 +1203,112 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_lifetime_recapitalize", (getter)SystemCosts_get_system_lifetime_recapitalize,(setter)SystemCosts_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)SystemCosts_get_system_recapitalization_cost,(setter)SystemCosts_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)SystemCosts_get_system_recapitalization_escalation,(setter)SystemCosts_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)SystemCosts_get_system_use_recapitalization,(setter)SystemCosts_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1423,11 +1423,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1469,13 +1469,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1590,11 +1590,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1840,64 +1840,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2012,11 +2012,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2502,124 +2502,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2734,11 +2734,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3848,280 +3848,280 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_for_ds", (getter)PaymentIncentives_get_pbi_fed_for_ds,(setter)PaymentIncentives_set_pbi_fed_for_ds, - PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_for_ds", (getter)PaymentIncentives_get_pbi_oth_for_ds,(setter)PaymentIncentives_set_pbi_oth_for_ds, - PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_for_ds", (getter)PaymentIncentives_get_pbi_sta_for_ds,(setter)PaymentIncentives_set_pbi_sta_for_ds, - PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_for_ds", (getter)PaymentIncentives_get_pbi_uti_for_ds,(setter)PaymentIncentives_set_pbi_uti_for_ds, - PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4236,11 +4236,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4570,85 +4570,85 @@ Revenue_set_mp_market_percent_gen(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef Revenue_getset[] = { {"flip_target_percent", (getter)Revenue_get_flip_target_percent,(setter)Revenue_set_flip_target_percent, - PyDoc_STR("*float*: After-tax IRR target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax IRR target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)Revenue_get_flip_target_year,(setter)Revenue_set_flip_target_year, - PyDoc_STR("*float*: IRR target year [Year]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: IRR target year [Year]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"mp_ancserv1_percent_gen", (getter)Revenue_get_mp_ancserv1_percent_gen,(setter)Revenue_set_mp_ancserv1_percent_gen, - PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if mp_enable_ancserv1_percent_gen=1"), + PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if mp_enable_ancserv1_percent_gen=1"), NULL}, {"mp_ancserv1_revenue", (getter)Revenue_get_mp_ancserv1_revenue,(setter)Revenue_set_mp_ancserv1_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nTrue"), NULL}, {"mp_ancserv1_revenue_single", (getter)Revenue_get_mp_ancserv1_revenue_single,(setter)Revenue_set_mp_ancserv1_revenue_single, - PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n*Info*: Lifetime x 1[Price($/MWh)]\n\n*Required*: True if mp_enable_ancserv1_percent_gen=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if mp_enable_ancserv1_percent_gen=1"), NULL}, {"mp_ancserv2_percent_gen", (getter)Revenue_get_mp_ancserv2_percent_gen,(setter)Revenue_set_mp_ancserv2_percent_gen, - PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if mp_enable_ancserv2_percent_gen=1"), + PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if mp_enable_ancserv2_percent_gen=1"), NULL}, {"mp_ancserv2_revenue", (getter)Revenue_get_mp_ancserv2_revenue,(setter)Revenue_set_mp_ancserv2_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nTrue"), NULL}, {"mp_ancserv2_revenue_single", (getter)Revenue_get_mp_ancserv2_revenue_single,(setter)Revenue_set_mp_ancserv2_revenue_single, - PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n*Info*: Lifetime x 1[Price($/MWh)]\n\n*Required*: True if mp_enable_ancserv2_percent_gen=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if mp_enable_ancserv2_percent_gen=1"), NULL}, {"mp_ancserv3_percent_gen", (getter)Revenue_get_mp_ancserv3_percent_gen,(setter)Revenue_set_mp_ancserv3_percent_gen, - PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if mp_enable_ancserv3_percent_gen=1"), + PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if mp_enable_ancserv3_percent_gen=1"), NULL}, {"mp_ancserv3_revenue", (getter)Revenue_get_mp_ancserv3_revenue,(setter)Revenue_set_mp_ancserv3_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n*Info*: Lifetime x 2 [Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n**Info:**\nLifetime x 2 [Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nTrue"), NULL}, {"mp_ancserv3_revenue_single", (getter)Revenue_get_mp_ancserv3_revenue_single,(setter)Revenue_set_mp_ancserv3_revenue_single, - PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n*Info*: Lifetime x 1[Price($/MWh)]\n\n*Required*: True if mp_enable_ancserv3_percent_gen=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if mp_enable_ancserv3_percent_gen=1"), NULL}, {"mp_ancserv4_percent_gen", (getter)Revenue_get_mp_ancserv4_percent_gen,(setter)Revenue_set_mp_ancserv4_percent_gen, - PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if mp_enable_ancserv4_percent_gen=1"), + PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if mp_enable_ancserv4_percent_gen=1"), NULL}, {"mp_ancserv4_revenue", (getter)Revenue_get_mp_ancserv4_revenue,(setter)Revenue_set_mp_ancserv4_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n*Info*: Lifetime x 2 [Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n**Info:**\nLifetime x 2 [Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nTrue"), NULL}, {"mp_ancserv4_revenue_single", (getter)Revenue_get_mp_ancserv4_revenue_single,(setter)Revenue_set_mp_ancserv4_revenue_single, - PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n*Info*: Lifetime x 1[Price($/MWh)]\n\n*Required*: True if mp_enable_ancserv4_percent_gen=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if mp_enable_ancserv4_percent_gen=1"), NULL}, {"mp_enable_ancserv1", (getter)Revenue_get_mp_enable_ancserv1,(setter)Revenue_set_mp_enable_ancserv1, - PyDoc_STR("*float*: Enable ancillary services 1 Revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable ancillary services 1 Revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv1_percent_gen", (getter)Revenue_get_mp_enable_ancserv1_percent_gen,(setter)Revenue_set_mp_enable_ancserv1_percent_gen, - PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 1 [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 1 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv2", (getter)Revenue_get_mp_enable_ancserv2,(setter)Revenue_set_mp_enable_ancserv2, - PyDoc_STR("*float*: Enable ancillary services 2 Revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable ancillary services 2 Revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv2_percent_gen", (getter)Revenue_get_mp_enable_ancserv2_percent_gen,(setter)Revenue_set_mp_enable_ancserv2_percent_gen, - PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 2 [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 2 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv3", (getter)Revenue_get_mp_enable_ancserv3,(setter)Revenue_set_mp_enable_ancserv3, - PyDoc_STR("*float*: Enable ancillary services 3 Revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable ancillary services 3 Revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv3_percent_gen", (getter)Revenue_get_mp_enable_ancserv3_percent_gen,(setter)Revenue_set_mp_enable_ancserv3_percent_gen, - PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 3 [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 3 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv4", (getter)Revenue_get_mp_enable_ancserv4,(setter)Revenue_set_mp_enable_ancserv4, - PyDoc_STR("*float*: Enable ancillary services 4 Revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable ancillary services 4 Revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_ancserv4_percent_gen", (getter)Revenue_get_mp_enable_ancserv4_percent_gen,(setter)Revenue_set_mp_enable_ancserv4_percent_gen, - PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 4 [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 4 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_energy_market_revenue", (getter)Revenue_get_mp_enable_energy_market_revenue,(setter)Revenue_set_mp_enable_energy_market_revenue, - PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_enable_market_percent_gen", (getter)Revenue_get_mp_enable_market_percent_gen,(setter)Revenue_set_mp_enable_market_percent_gen, - PyDoc_STR("*float*: Enable percent demand cleared capacity option for market revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Enable percent demand cleared capacity option for market revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mp_energy_market_revenue", (getter)Revenue_get_mp_energy_market_revenue,(setter)Revenue_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nTrue"), NULL}, {"mp_energy_market_revenue_single", (getter)Revenue_get_mp_energy_market_revenue_single,(setter)Revenue_set_mp_energy_market_revenue_single, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n*Info*: Lifetime x 1 [Price($/MWh)]\n\n*Required*: True if mp_enable_market_percent_gen=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 1 [Price($/MWh)]\n\n**Required:**\nRequired if mp_enable_market_percent_gen=1"), NULL}, {"mp_market_percent_gen", (getter)Revenue_get_mp_market_percent_gen,(setter)Revenue_set_mp_market_percent_gen, - PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if mp_enable_market_percent_gen=1"), + PyDoc_STR("*float*: Percent of demand to copy to cleared capacity array [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if mp_enable_market_percent_gen=1"), NULL}, {NULL} /* Sentinel */ }; @@ -4763,11 +4763,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4884,25 +4884,25 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_meter_position", (getter)BatterySystem_get_batt_meter_position,(setter)BatterySystem_set_batt_meter_position, PyDoc_STR("*float*: Position of battery relative to electric meter"), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_to_batt", (getter)BatterySystem_get_grid_to_batt,(setter)BatterySystem_set_grid_to_batt, PyDoc_STR("*sequence*: Electricity to battery from grid [kW]"), @@ -5020,11 +5020,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5042,7 +5042,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5157,11 +5157,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5213,6 +5213,18 @@ SystemOutput_set_gen_purchases(VarGroupObject *self, PyObject *value, void *clos return PySAM_array_setter(value, SAM_Merchantplant_SystemOutput_gen_purchases_aset, self->data_ptr); } +static PyObject * +SystemOutput_get_gen_without_battery(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_SystemOutput_gen_without_battery_aget, self->data_ptr); +} + +static int +SystemOutput_set_gen_without_battery(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_array_setter(value, SAM_Merchantplant_SystemOutput_gen_without_battery_aset, self->data_ptr); +} + static PyObject * SystemOutput_get_system_capacity(VarGroupObject *self, void *closure) { @@ -5239,22 +5251,25 @@ SystemOutput_set_system_pre_curtailment_kwac(VarGroupObject *self, PyObject *val static PyGetSetDef SystemOutput_getset[] = { {"annual_energy_pre_curtailment_ac", (getter)SystemOutput_get_annual_energy_pre_curtailment_ac,(setter)SystemOutput_set_annual_energy_pre_curtailment_ac, - PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), NULL}, +{"gen_without_battery", (getter)SystemOutput_get_gen_without_battery,(setter)SystemOutput_set_gen_without_battery, + PyDoc_STR("*sequence*: Electricity to or from the renewable system, without the battery [kW]"), + NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), NULL}, {"system_pre_curtailment_kwac", (getter)SystemOutput_get_system_pre_curtailment_kwac,(setter)SystemOutput_set_system_pre_curtailment_kwac, - PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n*Info*: System generation"), + PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n**Info:**\nSystem generation"), NULL}, {NULL} /* Sentinel */ }; @@ -5369,11 +5384,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5506,11 +5521,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5528,7 +5543,7 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5643,11 +5658,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5725,19 +5740,19 @@ FuelCell_set_fuelcell_replacement_schedule(VarGroupObject *self, PyObject *value static PyGetSetDef FuelCell_getset[] = { {"en_fuelcell", (getter)FuelCell_get_en_fuelcell,(setter)FuelCell_set_en_fuelcell, - PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_computed_bank_capacity", (getter)FuelCell_get_fuelcell_computed_bank_capacity,(setter)FuelCell_set_fuelcell_computed_bank_capacity, - PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_per_kWh", (getter)FuelCell_get_fuelcell_per_kWh,(setter)FuelCell_set_fuelcell_per_kWh, - PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_replacement", (getter)FuelCell_get_fuelcell_replacement,(setter)FuelCell_set_fuelcell_replacement, PyDoc_STR("*sequence*: Fuel cell replacements per year [number/year]"), NULL}, {"fuelcell_replacement_option", (getter)FuelCell_get_fuelcell_replacement_option,(setter)FuelCell_set_fuelcell_replacement_option, - PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2"), + PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2"), NULL}, {"fuelcell_replacement_schedule", (getter)FuelCell_get_fuelcell_replacement_schedule,(setter)FuelCell_set_fuelcell_replacement_schedule, PyDoc_STR("*sequence*: Fuel cell replacements per year (user specified) [number/year]"), @@ -5855,11 +5870,11 @@ CapacityPayments_export(VarGroupObject *self, PyObject *args) static PyMethodDef CapacityPayments_methods[] = { {"assign", (PyCFunction)CapacityPayments_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CapacityPayments_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CapacityPayments_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CapacityPayments_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CapacityPayments_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CapacityPayments_vals = { var: val, ...}``")}, {"export", (PyCFunction)CapacityPayments_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5937,22 +5952,22 @@ CapacityPayments_set_cp_system_nameplate(VarGroupObject *self, PyObject *value, static PyGetSetDef CapacityPayments_getset[] = { {"cp_battery_nameplate", (getter)CapacityPayments_get_cp_battery_nameplate,(setter)CapacityPayments_set_cp_battery_nameplate, - PyDoc_STR("*float*: Battery nameplate [MW]\n\n*Constraints*: MIN=0\n\n*Required*: True if cp_capacity_payment_type=0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - cp_system_nameplate\n"), + PyDoc_STR("*float*: Battery nameplate [MW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if cp_capacity_payment_type=0\n\nThe value of ``cp_battery_nameplate`` depends on the following variables:\n\n\t - cp_system_nameplate\n"), NULL}, {"cp_capacity_credit_percent", (getter)CapacityPayments_get_cp_capacity_credit_percent,(setter)CapacityPayments_set_cp_capacity_credit_percent, - PyDoc_STR("*sequence*: Capacity credit (eligible portion of nameplate) [%]\n\n*Required*: True if cp_capacity_payment_type=0"), + PyDoc_STR("*sequence*: Capacity credit (eligible portion of nameplate) [%]\n\n**Required:**\nRequired if cp_capacity_payment_type=0"), NULL}, {"cp_capacity_payment_amount", (getter)CapacityPayments_get_cp_capacity_payment_amount,(setter)CapacityPayments_set_cp_capacity_payment_amount, - PyDoc_STR("*sequence*: Capacity payment amount [$ or $/MW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Capacity payment amount [$ or $/MW]\n\n**Required:**\nTrue"), NULL}, {"cp_capacity_payment_esc", (getter)CapacityPayments_get_cp_capacity_payment_esc,(setter)CapacityPayments_set_cp_capacity_payment_esc, - PyDoc_STR("*float*: Capacity payment escalation [%/year]\n\n*Required*: True"), + PyDoc_STR("*float*: Capacity payment escalation [%/year]\n\n**Required:**\nTrue"), NULL}, {"cp_capacity_payment_type", (getter)CapacityPayments_get_cp_capacity_payment_type,(setter)CapacityPayments_set_cp_capacity_payment_type, - PyDoc_STR("*float*: Capacity payment type\n\n*Options*: 0=Energy basis,1=Fixed amount\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Capacity payment type\n\n**Options:**\n0=Energy basis,1=Fixed amount\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"cp_system_nameplate", (getter)CapacityPayments_get_cp_system_nameplate,(setter)CapacityPayments_set_cp_system_nameplate, - PyDoc_STR("*float*: System nameplate [MW]\n\n*Constraints*: MIN=0\n\n*Required*: True if cp_capacity_payment_type=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n"), + PyDoc_STR("*float*: System nameplate [MW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if cp_capacity_payment_type=0\n\nThe value of the following variables depends on ``cp_system_nameplate``:\n\n\t - cp_battery_nameplate\n"), NULL}, {NULL} /* Sentinel */ }; @@ -6067,11 +6082,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6281,7 +6296,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6293,28 +6308,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6429,11 +6444,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6581,11 +6596,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6615,10 +6630,10 @@ GridLimits_set_grid_curtailment_price_esc(VarGroupObject *self, PyObject *value, static PyGetSetDef GridLimits_getset[] = { {"grid_curtailment_price", (getter)GridLimits_get_grid_curtailment_price,(setter)GridLimits_set_grid_curtailment_price, - PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_curtailment_price_esc", (getter)GridLimits_get_grid_curtailment_price_esc,(setter)GridLimits_set_grid_curtailment_price_esc, - PyDoc_STR("*float*: Curtailment price escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Curtailment price escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6733,11 +6748,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6999,6 +7014,12 @@ Outputs_get_cf_energy_sales(VarGroupObject *self, void *closure) return PySAM_array_getter(SAM_Merchantplant_Outputs_cf_energy_sales_aget, self->data_ptr); } +static PyObject * +Outputs_get_cf_energy_without_battery(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_cf_energy_without_battery_aget, self->data_ptr); +} + static PyObject * Outputs_get_cf_feddepr_custom(VarGroupObject *self, void *closure) { @@ -9381,6 +9402,12 @@ Outputs_get_mp_ancillary_services1_cleared_capacity(VarGroupObject *self, void * return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services1_cleared_capacity_aget, self->data_ptr); } +static PyObject * +Outputs_get_mp_ancillary_services1_consumed_cost(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services1_consumed_cost_aget, self->data_ptr); +} + static PyObject * Outputs_get_mp_ancillary_services1_generated_revenue(VarGroupObject *self, void *closure) { @@ -9399,6 +9426,12 @@ Outputs_get_mp_ancillary_services2_cleared_capacity(VarGroupObject *self, void * return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services2_cleared_capacity_aget, self->data_ptr); } +static PyObject * +Outputs_get_mp_ancillary_services2_consumed_cost(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services2_consumed_cost_aget, self->data_ptr); +} + static PyObject * Outputs_get_mp_ancillary_services2_generated_revenue(VarGroupObject *self, void *closure) { @@ -9417,6 +9450,12 @@ Outputs_get_mp_ancillary_services3_cleared_capacity(VarGroupObject *self, void * return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services3_cleared_capacity_aget, self->data_ptr); } +static PyObject * +Outputs_get_mp_ancillary_services3_consumed_cost(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services3_consumed_cost_aget, self->data_ptr); +} + static PyObject * Outputs_get_mp_ancillary_services3_generated_revenue(VarGroupObject *self, void *closure) { @@ -9435,6 +9474,12 @@ Outputs_get_mp_ancillary_services4_cleared_capacity(VarGroupObject *self, void * return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services4_cleared_capacity_aget, self->data_ptr); } +static PyObject * +Outputs_get_mp_ancillary_services4_consumed_cost(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_ancillary_services4_consumed_cost_aget, self->data_ptr); +} + static PyObject * Outputs_get_mp_ancillary_services4_generated_revenue(VarGroupObject *self, void *closure) { @@ -9453,6 +9498,12 @@ Outputs_get_mp_energy_market_cleared_capacity(VarGroupObject *self, void *closur return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_energy_market_cleared_capacity_aget, self->data_ptr); } +static PyObject * +Outputs_get_mp_energy_market_consumed_cost(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Merchantplant_Outputs_mp_energy_market_consumed_cost_aget, self->data_ptr); +} + static PyObject * Outputs_get_mp_energy_market_generated_revenue(VarGroupObject *self, void *closure) { @@ -9805,6 +9856,9 @@ static PyGetSetDef Outputs_getset[] = { {"cf_energy_sales", (getter)Outputs_get_cf_energy_sales,(setter)0, PyDoc_STR("*sequence*: Electricity to grid [kWh]"), NULL}, +{"cf_energy_without_battery", (getter)Outputs_get_cf_energy_without_battery,(setter)0, + PyDoc_STR("*sequence*: Electricity generated without storage [kWh]"), + NULL}, {"cf_feddepr_custom", (getter)Outputs_get_cf_feddepr_custom,(setter)0, PyDoc_STR("*sequence*: Federal depreciation from custom [$]"), NULL}, @@ -10967,28 +11021,28 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"min_dscr", (getter)Outputs_get_min_dscr,(setter)0, PyDoc_STR("*float*: Minimum DSCR"), @@ -10996,6 +11050,9 @@ static PyGetSetDef Outputs_getset[] = { {"mp_ancillary_services1_cleared_capacity", (getter)Outputs_get_mp_ancillary_services1_cleared_capacity,(setter)0, PyDoc_STR("*sequence*: Ancillary services 1 cleared capacity [MW]"), NULL}, +{"mp_ancillary_services1_consumed_cost", (getter)Outputs_get_mp_ancillary_services1_consumed_cost,(setter)0, + PyDoc_STR("*sequence*: Ancillary services 1 electricity purchases [$]"), + NULL}, {"mp_ancillary_services1_generated_revenue", (getter)Outputs_get_mp_ancillary_services1_generated_revenue,(setter)0, PyDoc_STR("*sequence*: Ancillary services 1 generated revenue [$]"), NULL}, @@ -11005,6 +11062,9 @@ static PyGetSetDef Outputs_getset[] = { {"mp_ancillary_services2_cleared_capacity", (getter)Outputs_get_mp_ancillary_services2_cleared_capacity,(setter)0, PyDoc_STR("*sequence*: Ancillary services 2 cleared capacity [MW]"), NULL}, +{"mp_ancillary_services2_consumed_cost", (getter)Outputs_get_mp_ancillary_services2_consumed_cost,(setter)0, + PyDoc_STR("*sequence*: Ancillary services 2 electricity purchases [$]"), + NULL}, {"mp_ancillary_services2_generated_revenue", (getter)Outputs_get_mp_ancillary_services2_generated_revenue,(setter)0, PyDoc_STR("*sequence*: Ancillary services 2 generated revenue [$]"), NULL}, @@ -11014,6 +11074,9 @@ static PyGetSetDef Outputs_getset[] = { {"mp_ancillary_services3_cleared_capacity", (getter)Outputs_get_mp_ancillary_services3_cleared_capacity,(setter)0, PyDoc_STR("*sequence*: Ancillary services 3 cleared capacity [MW]"), NULL}, +{"mp_ancillary_services3_consumed_cost", (getter)Outputs_get_mp_ancillary_services3_consumed_cost,(setter)0, + PyDoc_STR("*sequence*: Ancillary services 3 electricity purchases [$]"), + NULL}, {"mp_ancillary_services3_generated_revenue", (getter)Outputs_get_mp_ancillary_services3_generated_revenue,(setter)0, PyDoc_STR("*sequence*: Ancillary services 3 generated revenue [$]"), NULL}, @@ -11023,6 +11086,9 @@ static PyGetSetDef Outputs_getset[] = { {"mp_ancillary_services4_cleared_capacity", (getter)Outputs_get_mp_ancillary_services4_cleared_capacity,(setter)0, PyDoc_STR("*sequence*: Ancillary services 4 cleared capacity [MW]"), NULL}, +{"mp_ancillary_services4_consumed_cost", (getter)Outputs_get_mp_ancillary_services4_consumed_cost,(setter)0, + PyDoc_STR("*sequence*: Ancillary services 4 electricity purchases [$]"), + NULL}, {"mp_ancillary_services4_generated_revenue", (getter)Outputs_get_mp_ancillary_services4_generated_revenue,(setter)0, PyDoc_STR("*sequence*: Ancillary services 4 generated revenue [$]"), NULL}, @@ -11032,6 +11098,9 @@ static PyGetSetDef Outputs_getset[] = { {"mp_energy_market_cleared_capacity", (getter)Outputs_get_mp_energy_market_cleared_capacity,(setter)0, PyDoc_STR("*sequence*: Energy market cleared capacity [MW]"), NULL}, +{"mp_energy_market_consumed_cost", (getter)Outputs_get_mp_energy_market_consumed_cost,(setter)0, + PyDoc_STR("*sequence*: Energy market electricity purchases [$]"), + NULL}, {"mp_energy_market_generated_revenue", (getter)Outputs_get_mp_energy_market_generated_revenue,(setter)0, PyDoc_STR("*sequence*: Energy market generated revenue [$]"), NULL}, @@ -11078,10 +11147,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of energy market revenue [$]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_fed_pbi_income", (getter)Outputs_get_npv_fed_pbi_income,(setter)0, PyDoc_STR("*float*: Present value of federal PBI income [$]"), @@ -11114,10 +11183,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of non-fuel O&M [$]"), NULL}, {"project_return_aftertax_irr", (getter)Outputs_get_project_return_aftertax_irr,(setter)0, - PyDoc_STR("*float*: Internal rate of return (after-tax) [%]"), + PyDoc_STR("*float*: IRR Internal rate of return [%]"), NULL}, {"project_return_aftertax_npv", (getter)Outputs_get_project_return_aftertax_npv,(setter)0, - PyDoc_STR("*float*: Net present value (after-tax) [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"prop_tax_assessed_value", (getter)Outputs_get_prop_tax_assessed_value,(setter)0, PyDoc_STR("*float*: Assessed value of property for tax purposes [$]"), @@ -11141,7 +11210,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Equity [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -11532,12 +11601,11 @@ static PyMethodDef MerchantplantModule_methods[] = { {"new", Merchantplant_new, METH_VARARGS, PyDoc_STR("new() -> Merchantplant")}, {"default", Merchantplant_default, METH_VARARGS, - PyDoc_STR("default(config) -> Merchantplant\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerMerchantPlant\"\n- \"DSLFMerchantPlant\"\n- \"EmpiricalTroughMerchantPlant\"\n- \"FlatPlatePVMerchantPlant\"\n- \"GenericBatteryMerchantPlant\"\n- \"GenericCSPSystemMerchantPlant\"\n- \"GenericSystemMerchantPlant\"\n- \"GeothermalPowerMerchantPlant\"\n- \"HighXConcentratingPVMerchantPlant\"\n- \"MSLFMerchantPlant\"\n- \"MSPTMerchantPlant\"\n- \"PVBatteryMerchantPlant\"\n- \"PVWattsMerchantPlant\"\n- \"PhysicalTroughMerchantPlant\"\n- \"StandaloneBatteryMerchantPlant\"\n- \"WindPowerMerchantPlant\"")}, + PyDoc_STR("default(config) -> Merchantplant\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerMerchantPlant\"*\n\n - *\"DSLFMerchantPlant\"*\n\n - *\"EmpiricalTroughMerchantPlant\"*\n\n - *\"FlatPlatePVMerchantPlant\"*\n\n - *\"GenericBatteryMerchantPlant\"*\n\n - *\"GenericCSPSystemMerchantPlant\"*\n\n - *\"GenericSystemMerchantPlant\"*\n\n - *\"GeothermalPowerMerchantPlant\"*\n\n - *\"HighXConcentratingPVMerchantPlant\"*\n\n - *\"MSLFMerchantPlant\"*\n\n - *\"MSPTMerchantPlant\"*\n\n - *\"PVBatteryMerchantPlant\"*\n\n - *\"PVWattsMerchantPlant\"*\n\n - *\"PhysicalTroughMerchantPlant\"*\n\n - *\"StandaloneBatteryMerchantPlant\"*\n\n - *\"WindPowerMerchantPlant\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Merchantplant_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Merchantplant\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Merchantplant\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Merchantplant_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Merchantplant\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Merchantplant\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/MhkCosts.c b/modules/MhkCosts.c index 33d2bc65..7a0296ae 100644 --- a/modules/MhkCosts.c +++ b/modules/MhkCosts.c @@ -69,11 +69,11 @@ MHKCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef MHKCosts_methods[] = { {"assign", (PyCFunction)MHKCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``MHKCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``MHKCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)MHKCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``MHKCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``MHKCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)MHKCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -475,103 +475,103 @@ MHKCosts_set_system_capacity(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef MHKCosts_getset[] = { {"array_cable_system_cost_input", (getter)MHKCosts_get_array_cable_system_cost_input,(setter)MHKCosts_set_array_cable_system_cost_input, - PyDoc_STR("*float*: Array cable system cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Array cable system cost [$]\n\n**Required:**\nTrue"), NULL}, {"array_cable_system_cost_method", (getter)MHKCosts_get_array_cable_system_cost_method,(setter)MHKCosts_set_array_cable_system_cost_method, - PyDoc_STR("*float*: Array cable system cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Array cable system cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"assembly_and_install_cost_input", (getter)MHKCosts_get_assembly_and_install_cost_input,(setter)MHKCosts_set_assembly_and_install_cost_input, - PyDoc_STR("*float*: Assembly and installation cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Assembly and installation cost [$]\n\n**Required:**\nTrue"), NULL}, {"assembly_and_install_cost_method", (getter)MHKCosts_get_assembly_and_install_cost_method,(setter)MHKCosts_set_assembly_and_install_cost_method, - PyDoc_STR("*float*: Assembly and installation cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Assembly and installation cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"development_cost_input", (getter)MHKCosts_get_development_cost_input,(setter)MHKCosts_set_development_cost_input, - PyDoc_STR("*float*: Development cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Development cost [$]\n\n**Required:**\nTrue"), NULL}, {"development_cost_method", (getter)MHKCosts_get_development_cost_method,(setter)MHKCosts_set_development_cost_method, - PyDoc_STR("*float*: Development cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Enter in itemized costs\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Development cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Enter in itemized costs\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"device_rated_power", (getter)MHKCosts_get_device_rated_power,(setter)MHKCosts_set_device_rated_power, - PyDoc_STR("*float*: Rated capacity of device [kW]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Rated capacity of device [kW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {"devices_per_row", (getter)MHKCosts_get_devices_per_row,(setter)MHKCosts_set_devices_per_row, - PyDoc_STR("*float*: Number of wave devices per row in array\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of wave devices per row in array\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"eng_and_mgmt_cost_input", (getter)MHKCosts_get_eng_and_mgmt_cost_input,(setter)MHKCosts_set_eng_and_mgmt_cost_input, - PyDoc_STR("*float*: Engineering and management cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Engineering and management cost [$]\n\n**Required:**\nTrue"), NULL}, {"eng_and_mgmt_cost_method", (getter)MHKCosts_get_eng_and_mgmt_cost_method,(setter)MHKCosts_set_eng_and_mgmt_cost_method, - PyDoc_STR("*float*: Engineering and management cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Enter in itemized costs\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Engineering and management cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Enter in itemized costs\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"export_cable_length", (getter)MHKCosts_get_export_cable_length,(setter)MHKCosts_set_export_cable_length, - PyDoc_STR("*float*: Export cable length [m]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Export cable length [m]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {"export_cable_system_cost_input", (getter)MHKCosts_get_export_cable_system_cost_input,(setter)MHKCosts_set_export_cable_system_cost_input, - PyDoc_STR("*float*: Export cable system cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Export cable system cost [$]\n\n**Required:**\nTrue"), NULL}, {"export_cable_system_cost_method", (getter)MHKCosts_get_export_cable_system_cost_method,(setter)MHKCosts_set_export_cable_system_cost_method, - PyDoc_STR("*float*: Export cable system cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Export cable system cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"inter_array_cable_length", (getter)MHKCosts_get_inter_array_cable_length,(setter)MHKCosts_set_inter_array_cable_length, - PyDoc_STR("*float*: Inter-array cable length [m]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Inter-array cable length [m]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {"lib_wave_device", (getter)MHKCosts_get_lib_wave_device,(setter)MHKCosts_set_lib_wave_device, - PyDoc_STR("*str*: Wave library name\n\n*Required*: True if marine_energy_tech=0"), + PyDoc_STR("*str*: Wave library name\n\n**Required:**\nRequired if marine_energy_tech=0"), NULL}, {"library_or_input_wec", (getter)MHKCosts_get_library_or_input_wec,(setter)MHKCosts_set_library_or_input_wec, - PyDoc_STR("*float*: Wave library or user input\n\n*Options*: 0=Library,1=User\n\n*Required*: True if marine_energy_tech=0"), + PyDoc_STR("*float*: Wave library or user input\n\n**Options:**\n0=Library,1=User\n\n**Required:**\nRequired if marine_energy_tech=0"), NULL}, {"marine_energy_tech", (getter)MHKCosts_get_marine_energy_tech,(setter)MHKCosts_set_marine_energy_tech, - PyDoc_STR("*float*: Marine energy technology [0/1]\n\n*Options*: 0=Wave,1=Tidal\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Marine energy technology [0/1]\n\n**Options:**\n0=Wave,1=Tidal\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"mooring_found_substruc_cost_input", (getter)MHKCosts_get_mooring_found_substruc_cost_input,(setter)MHKCosts_set_mooring_found_substruc_cost_input, - PyDoc_STR("*float*: Mooring, foundation, and substructure cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Mooring, foundation, and substructure cost [$]\n\n**Required:**\nTrue"), NULL}, {"mooring_found_substruc_cost_method", (getter)MHKCosts_get_mooring_found_substruc_cost_method,(setter)MHKCosts_set_mooring_found_substruc_cost_method, - PyDoc_STR("*float*: Mooring, foundation, and substructure cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Mooring, foundation, and substructure cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"offshore_substation_cost_input", (getter)MHKCosts_get_offshore_substation_cost_input,(setter)MHKCosts_set_offshore_substation_cost_input, - PyDoc_STR("*float*: Offshore substation cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Offshore substation cost [$]\n\n**Required:**\nTrue"), NULL}, {"offshore_substation_cost_method", (getter)MHKCosts_get_offshore_substation_cost_method,(setter)MHKCosts_set_offshore_substation_cost_method, - PyDoc_STR("*float*: Offshore substation cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Offshore substation cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"onshore_substation_cost_input", (getter)MHKCosts_get_onshore_substation_cost_input,(setter)MHKCosts_set_onshore_substation_cost_input, - PyDoc_STR("*float*: Onshore substation cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Onshore substation cost [$]\n\n**Required:**\nTrue"), NULL}, {"onshore_substation_cost_method", (getter)MHKCosts_get_onshore_substation_cost_method,(setter)MHKCosts_set_onshore_substation_cost_method, - PyDoc_STR("*float*: Onshore substation cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Onshore substation cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"other_elec_infra_cost_input", (getter)MHKCosts_get_other_elec_infra_cost_input,(setter)MHKCosts_set_other_elec_infra_cost_input, - PyDoc_STR("*float*: Other electrical infrastructure cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Other electrical infrastructure cost [$]\n\n**Required:**\nTrue"), NULL}, {"other_elec_infra_cost_method", (getter)MHKCosts_get_other_elec_infra_cost_method,(setter)MHKCosts_set_other_elec_infra_cost_method, - PyDoc_STR("*float*: Other electrical infrastructure cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Other electrical infrastructure cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"other_infrastructure_cost_input", (getter)MHKCosts_get_other_infrastructure_cost_input,(setter)MHKCosts_set_other_infrastructure_cost_input, - PyDoc_STR("*float*: Other infrastructure cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Other infrastructure cost [$]\n\n**Required:**\nTrue"), NULL}, {"other_infrastructure_cost_method", (getter)MHKCosts_get_other_infrastructure_cost_method,(setter)MHKCosts_set_other_infrastructure_cost_method, - PyDoc_STR("*float*: Other infrastructure cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Other infrastructure cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"power_takeoff_system_cost_input", (getter)MHKCosts_get_power_takeoff_system_cost_input,(setter)MHKCosts_set_power_takeoff_system_cost_input, - PyDoc_STR("*float*: Power take-off system cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Power take-off system cost [$]\n\n**Required:**\nTrue"), NULL}, {"power_takeoff_system_cost_method", (getter)MHKCosts_get_power_takeoff_system_cost_method,(setter)MHKCosts_set_power_takeoff_system_cost_method, - PyDoc_STR("*float*: Power take-off system cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Power take-off system cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"riser_cable_length", (getter)MHKCosts_get_riser_cable_length,(setter)MHKCosts_set_riser_cable_length, - PyDoc_STR("*float*: Riser cable length [m]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Riser cable length [m]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {"structural_assembly_cost_input", (getter)MHKCosts_get_structural_assembly_cost_input,(setter)MHKCosts_set_structural_assembly_cost_input, - PyDoc_STR("*float*: Structural assembly cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Structural assembly cost [$]\n\n**Required:**\nTrue"), NULL}, {"structural_assembly_cost_method", (getter)MHKCosts_get_structural_assembly_cost_method,(setter)MHKCosts_set_structural_assembly_cost_method, - PyDoc_STR("*float*: Structural assembly cost method [0/1/2]\n\n*Options*: 0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: True"), + PyDoc_STR("*float*: Structural assembly cost method [0/1/2]\n\n**Options:**\n0=Enter in $/kW,1=Enter in $,2=Use modeled value,3=Use itemized costs in $\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)MHKCosts_get_system_capacity,(setter)MHKCosts_set_system_capacity, - PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -686,11 +686,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1191,12 +1191,11 @@ static PyMethodDef MhkCostsModule_methods[] = { {"new", MhkCosts_new, METH_VARARGS, PyDoc_STR("new() -> MhkCosts")}, {"default", MhkCosts_default, METH_VARARGS, - PyDoc_STR("default(config) -> MhkCosts\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> MhkCosts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", MhkCosts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> MhkCosts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> MhkCosts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", MhkCosts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> MhkCosts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> MhkCosts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/MhkTidal.c b/modules/MhkTidal.c index c0e0902d..cbab834c 100644 --- a/modules/MhkTidal.c +++ b/modules/MhkTidal.c @@ -69,11 +69,11 @@ MHKTidal_export(VarGroupObject *self, PyObject *args) static PyMethodDef MHKTidal_methods[] = { {"assign", (PyCFunction)MHKTidal_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``MHKTidal_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``MHKTidal_vals = { var: val, ...}``")}, {"replace", (PyCFunction)MHKTidal_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``MHKTidal_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``MHKTidal_vals = { var: val, ...}``")}, {"export", (PyCFunction)MHKTidal_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -247,46 +247,46 @@ MHKTidal_set_total_operating_cost(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef MHKTidal_getset[] = { {"balance_of_system_cost_total", (getter)MHKTidal_get_balance_of_system_cost_total,(setter)MHKTidal_set_balance_of_system_cost_total, - PyDoc_STR("*float*: BOS costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: BOS costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"device_costs_total", (getter)MHKTidal_get_device_costs_total,(setter)MHKTidal_set_device_costs_total, - PyDoc_STR("*float*: Device costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Device costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"financial_cost_total", (getter)MHKTidal_get_financial_cost_total,(setter)MHKTidal_set_financial_cost_total, - PyDoc_STR("*float*: Financial costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Financial costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"fixed_charge_rate", (getter)MHKTidal_get_fixed_charge_rate,(setter)MHKTidal_set_fixed_charge_rate, - PyDoc_STR("*float*: FCR from LCOE Cost page\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: FCR from LCOE Cost page\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"loss_additional", (getter)MHKTidal_get_loss_additional,(setter)MHKTidal_set_loss_additional, - PyDoc_STR("*float*: Additional losses [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Additional losses [%]\n\n**Required:**\nTrue"), NULL}, {"loss_array_spacing", (getter)MHKTidal_get_loss_array_spacing,(setter)MHKTidal_set_loss_array_spacing, - PyDoc_STR("*float*: Array spacing loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Array spacing loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_downtime", (getter)MHKTidal_get_loss_downtime,(setter)MHKTidal_set_loss_downtime, - PyDoc_STR("*float*: Array/WEC downtime loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Array/WEC downtime loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_resource_overprediction", (getter)MHKTidal_get_loss_resource_overprediction,(setter)MHKTidal_set_loss_resource_overprediction, - PyDoc_STR("*float*: Resource overprediction loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Resource overprediction loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_transmission", (getter)MHKTidal_get_loss_transmission,(setter)MHKTidal_set_loss_transmission, - PyDoc_STR("*float*: Transmission losses [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Transmission losses [%]\n\n**Required:**\nTrue"), NULL}, {"number_devices", (getter)MHKTidal_get_number_devices,(setter)MHKTidal_set_number_devices, - PyDoc_STR("*float*: Number of tidal devices in the system\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - tidal_power_curve\n"), + PyDoc_STR("*float*: Number of tidal devices in the system\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``number_devices``:\n\n\t - system_capacity\n\n\nThe value of ``number_devices`` depends on the following variables:\n\n\t - tidal_power_curve\n"), NULL}, {"system_capacity", (getter)MHKTidal_get_system_capacity,(setter)MHKTidal_set_system_capacity, - PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - number_devices\n\t - tidal_power_curve\n"), + PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - number_devices\n\t - tidal_power_curve\n"), NULL}, {"tidal_power_curve", (getter)MHKTidal_get_tidal_power_curve,(setter)MHKTidal_set_tidal_power_curve, - PyDoc_STR("*sequence[sequence]*: Power curve of tidal energy device as function of stream speeds [kW]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - number_devices\n\t - system_capacity\n"), + PyDoc_STR("*sequence[sequence]*: Power curve of tidal energy device as function of stream speeds [kW]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``tidal_power_curve``:\n\n\t - number_devices\n\t - system_capacity\n"), NULL}, {"tidal_resource", (getter)MHKTidal_get_tidal_resource,(setter)MHKTidal_set_tidal_resource, - PyDoc_STR("*sequence[sequence]*: Frequency distribution of resource as a function of stream speeds\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Frequency distribution of resource as a function of stream speeds\n\n**Required:**\nTrue"), NULL}, {"total_operating_cost", (getter)MHKTidal_get_total_operating_cost,(setter)MHKTidal_set_total_operating_cost, - PyDoc_STR("*float*: O&M costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: O&M costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -401,11 +401,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -570,7 +570,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Annual energy production of array as function of speed [kWh]"), NULL}, {"capacity_factor", (getter)Outputs_get_capacity_factor,(setter)0, - PyDoc_STR("*float*: Capacity Factor of array [%]"), + PyDoc_STR("*float*: Capacity factor [%]"), NULL}, {"device_average_power", (getter)Outputs_get_device_average_power,(setter)0, PyDoc_STR("*float*: Average power production of a single device [kW]"), @@ -960,12 +960,11 @@ static PyMethodDef MhkTidalModule_methods[] = { {"new", MhkTidal_new, METH_VARARGS, PyDoc_STR("new() -> MhkTidal")}, {"default", MhkTidal_default, METH_VARARGS, - PyDoc_STR("default(config) -> MhkTidal\n\nUse default attributes\n" - "`config` options:\n\n- \"MEtidalLCOECalculator\"\n- \"MEtidalNone\"")}, + PyDoc_STR("default(config) -> MhkTidal\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"MEtidalLCOECalculator\"*\n\n - *\"MEtidalNone\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", MhkTidal_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> MhkTidal\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> MhkTidal\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", MhkTidal_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> MhkTidal\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> MhkTidal\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/MhkWave.c b/modules/MhkWave.c index 84292369..ed24fa1c 100644 --- a/modules/MhkWave.c +++ b/modules/MhkWave.c @@ -69,11 +69,11 @@ MHKWave_export(VarGroupObject *self, PyObject *args) static PyMethodDef MHKWave_methods[] = { {"assign", (PyCFunction)MHKWave_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``MHKWave_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``MHKWave_vals = { var: val, ...}``")}, {"replace", (PyCFunction)MHKWave_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``MHKWave_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``MHKWave_vals = { var: val, ...}``")}, {"export", (PyCFunction)MHKWave_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -391,79 +391,79 @@ MHKWave_set_year(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef MHKWave_getset[] = { {"balance_of_system_cost_total", (getter)MHKWave_get_balance_of_system_cost_total,(setter)MHKWave_set_balance_of_system_cost_total, - PyDoc_STR("*float*: BOS costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: BOS costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"day", (getter)MHKWave_get_day,(setter)MHKWave_set_day, - PyDoc_STR("*sequence*: Day [dy]\n\n*Info*: 1-365"), + PyDoc_STR("*sequence*: Day [dy]\n\n**Info:**\n1-365"), NULL}, {"device_costs_total", (getter)MHKWave_get_device_costs_total,(setter)MHKWave_set_device_costs_total, - PyDoc_STR("*float*: Device costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Device costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"device_rated_power", (getter)MHKWave_get_device_rated_power,(setter)MHKWave_set_device_rated_power, - PyDoc_STR("*float*: Rated capacity of device [kW]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - number_devices\n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wave_power_matrix\n"), + PyDoc_STR("*float*: Rated capacity of device [kW]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``device_rated_power``:\n\n\t - number_devices\n\t - system_capacity\n\n\nThe value of ``device_rated_power`` depends on the following variables:\n\n\t - wave_power_matrix\n"), NULL}, {"energy_period", (getter)MHKWave_get_energy_period,(setter)MHKWave_set_energy_period, - PyDoc_STR("*sequence*: Wave period time series data [s]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Wave period time series data [s]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"financial_cost_total", (getter)MHKWave_get_financial_cost_total,(setter)MHKWave_set_financial_cost_total, - PyDoc_STR("*float*: Financial costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Financial costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"fixed_charge_rate", (getter)MHKWave_get_fixed_charge_rate,(setter)MHKWave_set_fixed_charge_rate, - PyDoc_STR("*float*: FCR from LCOE Cost page\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: FCR from LCOE Cost page\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"hour", (getter)MHKWave_get_hour,(setter)MHKWave_set_hour, - PyDoc_STR("*sequence*: Hour [hr]\n\n*Info*: 0-23"), + PyDoc_STR("*sequence*: Hour [hr]\n\n**Info:**\n0-23"), NULL}, {"loss_additional", (getter)MHKWave_get_loss_additional,(setter)MHKWave_set_loss_additional, - PyDoc_STR("*float*: Additional losses [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Additional losses [%]\n\n**Required:**\nTrue"), NULL}, {"loss_array_spacing", (getter)MHKWave_get_loss_array_spacing,(setter)MHKWave_set_loss_array_spacing, - PyDoc_STR("*float*: Array spacing loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Array spacing loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_downtime", (getter)MHKWave_get_loss_downtime,(setter)MHKWave_set_loss_downtime, - PyDoc_STR("*float*: Array/WEC downtime loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Array/WEC downtime loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_resource_overprediction", (getter)MHKWave_get_loss_resource_overprediction,(setter)MHKWave_set_loss_resource_overprediction, - PyDoc_STR("*float*: Resource overprediction loss [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Resource overprediction loss [%]\n\n**Required:**\nTrue"), NULL}, {"loss_transmission", (getter)MHKWave_get_loss_transmission,(setter)MHKWave_set_loss_transmission, - PyDoc_STR("*float*: Transmission losses [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Transmission losses [%]\n\n**Required:**\nTrue"), NULL}, {"minute", (getter)MHKWave_get_minute,(setter)MHKWave_set_minute, - PyDoc_STR("*sequence*: Minute [min]\n\n*Info*: 0-59"), + PyDoc_STR("*sequence*: Minute [min]\n\n**Info:**\n0-59"), NULL}, {"month", (getter)MHKWave_get_month,(setter)MHKWave_set_month, - PyDoc_STR("*sequence*: Month [mn]\n\n*Info*: 1-12"), + PyDoc_STR("*sequence*: Month [mn]\n\n**Info:**\n1-12"), NULL}, {"number_devices", (getter)MHKWave_get_number_devices,(setter)MHKWave_set_number_devices, - PyDoc_STR("*float*: Number of wave devices in the system\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - device_rated_power\n\t - wave_power_matrix\n"), + PyDoc_STR("*float*: Number of wave devices in the system\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``number_devices``:\n\n\t - system_capacity\n\n\nThe value of ``number_devices`` depends on the following variables:\n\n\t - device_rated_power\n\t - wave_power_matrix\n"), NULL}, {"number_hours", (getter)MHKWave_get_number_hours,(setter)MHKWave_set_number_hours, - PyDoc_STR("*float*: Number of hours in wave time series\n\n*Required*: False"), + PyDoc_STR("*float*: Number of hours in wave time series\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"number_records", (getter)MHKWave_get_number_records,(setter)MHKWave_set_number_records, - PyDoc_STR("*float*: Number of records in wave time series\n\n*Required*: False"), + PyDoc_STR("*float*: Number of records in wave time series\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"significant_wave_height", (getter)MHKWave_get_significant_wave_height,(setter)MHKWave_set_significant_wave_height, - PyDoc_STR("*sequence*: Significant wave height time series data [m]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Significant wave height time series data [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"system_capacity", (getter)MHKWave_get_system_capacity,(setter)MHKWave_set_system_capacity, - PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - device_rated_power\n\t - number_devices\n\t - wave_power_matrix\n"), + PyDoc_STR("*float*: System Nameplate Capacity [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - device_rated_power\n\t - number_devices\n\t - wave_power_matrix\n"), NULL}, {"total_operating_cost", (getter)MHKWave_get_total_operating_cost,(setter)MHKWave_set_total_operating_cost, - PyDoc_STR("*float*: O&M costs [$]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: O&M costs [$]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"wave_power_matrix", (getter)MHKWave_get_wave_power_matrix,(setter)MHKWave_set_wave_power_matrix, - PyDoc_STR("*sequence[sequence]*: Wave Power Matrix\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - device_rated_power\n\t - number_devices\n\t - system_capacity\n"), + PyDoc_STR("*sequence[sequence]*: Wave Power Matrix\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wave_power_matrix``:\n\n\t - device_rated_power\n\t - number_devices\n\t - system_capacity\n"), NULL}, {"wave_resource_data", (getter)MHKWave_get_wave_resource_data,(setter)MHKWave_set_wave_resource_data, - PyDoc_STR("*dict*: Array input of wave_resource_matrix (JPD) or time series (significant_wave_height and energy_period) data\n\n*Required*: False"), + PyDoc_STR("*dict*: Array input of wave_resource_matrix (JPD) or time series (significant_wave_height and energy_period) data\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"wave_resource_matrix", (getter)MHKWave_get_wave_resource_matrix,(setter)MHKWave_set_wave_resource_matrix, - PyDoc_STR("*sequence[sequence]*: Frequency distribution of wave resource as a function of Hs and Te\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Frequency distribution of wave resource as a function of Hs and Te\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"wave_resource_model_choice", (getter)MHKWave_get_wave_resource_model_choice,(setter)MHKWave_set_wave_resource_model_choice, - PyDoc_STR("*float*: Hourly or JPD wave resource data [0/1]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Hourly or JPD wave resource data [0/1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"year", (getter)MHKWave_get_year,(setter)MHKWave_set_year, PyDoc_STR("*sequence*: Year [yr]"), @@ -581,11 +581,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -822,7 +822,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence[sequence]*: Annual energy production as function of Time [kWh]"), NULL}, {"capacity_factor", (getter)Outputs_get_capacity_factor,(setter)0, - PyDoc_STR("*float*: Capacity Factor [%]"), + PyDoc_STR("*float*: Capacity factor [%]"), NULL}, {"device_average_power", (getter)Outputs_get_device_average_power,(setter)0, PyDoc_STR("*float*: Average power production of a single device [kW]"), @@ -1248,12 +1248,11 @@ static PyMethodDef MhkWaveModule_methods[] = { {"new", MhkWave_new, METH_VARARGS, PyDoc_STR("new() -> MhkWave")}, {"default", MhkWave_default, METH_VARARGS, - PyDoc_STR("default(config) -> MhkWave\n\nUse default attributes\n" - "`config` options:\n\n- \"MEwaveLCOECalculator\"\n- \"MEwaveNone\"")}, + PyDoc_STR("default(config) -> MhkWave\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"MEwaveLCOECalculator\"*\n\n - *\"MEwaveNone\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", MhkWave_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> MhkWave\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> MhkWave\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", MhkWave_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> MhkWave\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> MhkWave\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Poacalib.c b/modules/Poacalib.c index a3570ee4..0bc2ea7d 100644 --- a/modules/Poacalib.c +++ b/modules/Poacalib.c @@ -69,11 +69,11 @@ POACalibrate_export(VarGroupObject *self, PyObject *args) static PyMethodDef POACalibrate_methods[] = { {"assign", (PyCFunction)POACalibrate_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``POACalibrate_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``POACalibrate_vals = { var: val, ...}``")}, {"replace", (PyCFunction)POACalibrate_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``POACalibrate_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``POACalibrate_vals = { var: val, ...}``")}, {"export", (PyCFunction)POACalibrate_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -235,43 +235,43 @@ POACalibrate_set_year(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef POACalibrate_getset[] = { {"albedo", (getter)POACalibrate_get_albedo,(setter)POACalibrate_set_albedo, - PyDoc_STR("*float*: Albedo\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Albedo\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"array_az", (getter)POACalibrate_get_array_az,(setter)POACalibrate_set_array_az, - PyDoc_STR("*float*: Array Azimuth [degrees]\n\n*Options*: 0=N, 90=E, 180=S\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: True"), + PyDoc_STR("*float*: Array Azimuth [degrees]\n\n**Options:**\n0=N, 90=E, 180=S\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\nTrue"), NULL}, {"array_tilt", (getter)POACalibrate_get_array_tilt,(setter)POACalibrate_set_array_tilt, - PyDoc_STR("*float*: Array tilt [degrees]\n\n*Info*: 0-90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: True"), + PyDoc_STR("*float*: Array tilt [degrees]\n\n**Info:**\n0-90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nTrue"), NULL}, {"beam", (getter)POACalibrate_get_beam,(setter)POACalibrate_set_beam, - PyDoc_STR("*sequence*: Beam Irradiation [W/m^2]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Beam Irradiation [W/m^2]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"diffuse", (getter)POACalibrate_get_diffuse,(setter)POACalibrate_set_diffuse, - PyDoc_STR("*sequence*: Diffuse Irradiation [W/m^2]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Diffuse Irradiation [W/m^2]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"elevation", (getter)POACalibrate_get_elevation,(setter)POACalibrate_set_elevation, - PyDoc_STR("*float*: Elevation [m]\n\n*Required*: False"), + PyDoc_STR("*float*: Elevation [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"latitude", (getter)POACalibrate_get_latitude,(setter)POACalibrate_set_latitude, - PyDoc_STR("*float*: Latitude [decimal degrees]\n\n*Options*: N= positive\n\n*Required*: True"), + PyDoc_STR("*float*: Latitude [decimal degrees]\n\n**Options:**\nN= positive\n\n**Required:**\nTrue"), NULL}, {"longitude", (getter)POACalibrate_get_longitude,(setter)POACalibrate_set_longitude, - PyDoc_STR("*float*: Longitude [decimal degrees]\n\n*Options*: E= positive\n\n*Required*: True"), + PyDoc_STR("*float*: Longitude [decimal degrees]\n\n**Options:**\nE= positive\n\n**Required:**\nTrue"), NULL}, {"poa", (getter)POACalibrate_get_poa,(setter)POACalibrate_set_poa, - PyDoc_STR("*sequence*: Plane of Array [W/m^2]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Plane of Array [W/m^2]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"pressure", (getter)POACalibrate_get_pressure,(setter)POACalibrate_set_pressure, - PyDoc_STR("*float*: Pressure [millibars]\n\n*Required*: False"), + PyDoc_STR("*float*: Pressure [millibars]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"tamb", (getter)POACalibrate_get_tamb,(setter)POACalibrate_set_tamb, - PyDoc_STR("*float*: Ambient Temperature (dry bulb temperature) [°C]\n\n*Required*: False"), + PyDoc_STR("*float*: Ambient Temperature (dry bulb temperature) [°C]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"time_zone", (getter)POACalibrate_get_time_zone,(setter)POACalibrate_set_time_zone, - PyDoc_STR("*float*: Time Zone\n\n*Options*: -7= Denver\n\n*Constraints*: MIN=-12,MAX=12\n\n*Required*: True"), + PyDoc_STR("*float*: Time Zone\n\n**Options:**\n-7= Denver\n\n**Constraints:**\nMIN=-12,MAX=12\n\n**Required:**\nTrue"), NULL}, {"year", (getter)POACalibrate_get_year,(setter)POACalibrate_set_year, - PyDoc_STR("*float*: Year\n\n*Required*: True"), + PyDoc_STR("*float*: Year\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -386,11 +386,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -729,12 +729,11 @@ static PyMethodDef PoacalibModule_methods[] = { {"new", Poacalib_new, METH_VARARGS, PyDoc_STR("new() -> Poacalib")}, {"default", Poacalib_default, METH_VARARGS, - PyDoc_STR("default(config) -> Poacalib\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Poacalib\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Poacalib_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Poacalib\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Poacalib\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Poacalib_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Poacalib\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Poacalib\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pv6parmod.c b/modules/Pv6parmod.c index 1f0e781c..6eea9fa8 100644 --- a/modules/Pv6parmod.c +++ b/modules/Pv6parmod.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,34 +199,34 @@ Weather_set_wspd(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"elev", (getter)Weather_get_elev,(setter)Weather_set_elev, - PyDoc_STR("*float*: Site elevation [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Site elevation [m]\n\n**Required:**\nTrue"), NULL}, {"incidence", (getter)Weather_get_incidence,(setter)Weather_set_incidence, - PyDoc_STR("*sequence*: Incidence angle to surface [deg]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incidence angle to surface [deg]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"poa_beam", (getter)Weather_get_poa_beam,(setter)Weather_set_poa_beam, - PyDoc_STR("*sequence*: Incident direct normal radiation [W/m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident direct normal radiation [W/m2]\n\n**Required:**\nTrue"), NULL}, {"poa_gnddiff", (getter)Weather_get_poa_gnddiff,(setter)Weather_set_poa_gnddiff, - PyDoc_STR("*sequence*: Incident ground diffuse irradiance [W/m2]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident ground diffuse irradiance [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"poa_skydiff", (getter)Weather_get_poa_skydiff,(setter)Weather_set_poa_skydiff, - PyDoc_STR("*sequence*: Incident sky diffuse radiation [W/m2]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident sky diffuse radiation [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"sun_zen", (getter)Weather_get_sun_zen,(setter)Weather_set_sun_zen, - PyDoc_STR("*sequence*: Sun zenith angle [deg]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Sun zenith angle [deg]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"surf_tilt", (getter)Weather_get_surf_tilt,(setter)Weather_set_surf_tilt, - PyDoc_STR("*sequence*: Surface tilt angle [deg]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Surface tilt angle [deg]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"tdry", (getter)Weather_get_tdry,(setter)Weather_set_tdry, - PyDoc_STR("*sequence*: Dry bulb temperature ['C]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dry bulb temperature ['C]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"wdir", (getter)Weather_get_wdir,(setter)Weather_set_wdir, - PyDoc_STR("*sequence*: Wind direction [deg]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind direction [deg]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {"wspd", (getter)Weather_get_wspd,(setter)Weather_set_wspd, - PyDoc_STR("*sequence*: Wind speed [m/s]\n\n*Constraints*: LENGTH_EQUAL=poa_beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind speed [m/s]\n\n**Constraints:**\nLENGTH_EQUAL=poa_beam\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ CEC6ParameterPVModuleModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef CEC6ParameterPVModuleModel_methods[] = { {"assign", (PyCFunction)CEC6ParameterPVModuleModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CEC6ParameterPVModuleModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CEC6ParameterPVModuleModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CEC6ParameterPVModuleModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CEC6ParameterPVModuleModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CEC6ParameterPVModuleModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)CEC6ParameterPVModuleModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -567,58 +567,58 @@ CEC6ParameterPVModuleModel_set_tnoct(VarGroupObject *self, PyObject *value, void static PyGetSetDef CEC6ParameterPVModuleModel_getset[] = { {"Adj", (getter)CEC6ParameterPVModuleModel_get_Adj,(setter)CEC6ParameterPVModuleModel_set_Adj, - PyDoc_STR("*float*: OC SC temp coeff adjustment [%]\n\n*Required*: True"), + PyDoc_STR("*float*: OC SC temp coeff adjustment [%]\n\n**Required:**\nTrue"), NULL}, {"Il", (getter)CEC6ParameterPVModuleModel_get_Il,(setter)CEC6ParameterPVModuleModel_set_Il, - PyDoc_STR("*float*: Light current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Light current [A]\n\n**Required:**\nTrue"), NULL}, {"Imp", (getter)CEC6ParameterPVModuleModel_get_Imp,(setter)CEC6ParameterPVModuleModel_set_Imp, - PyDoc_STR("*float*: Maximum power point current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum power point current [A]\n\n**Required:**\nTrue"), NULL}, {"Io", (getter)CEC6ParameterPVModuleModel_get_Io,(setter)CEC6ParameterPVModuleModel_set_Io, - PyDoc_STR("*float*: Saturation current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Saturation current [A]\n\n**Required:**\nTrue"), NULL}, {"Isc", (getter)CEC6ParameterPVModuleModel_get_Isc,(setter)CEC6ParameterPVModuleModel_set_Isc, - PyDoc_STR("*float*: Short circuit current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Short circuit current [A]\n\n**Required:**\nTrue"), NULL}, {"Rs", (getter)CEC6ParameterPVModuleModel_get_Rs,(setter)CEC6ParameterPVModuleModel_set_Rs, - PyDoc_STR("*float*: Series resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Series resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"Rsh", (getter)CEC6ParameterPVModuleModel_get_Rsh,(setter)CEC6ParameterPVModuleModel_set_Rsh, - PyDoc_STR("*float*: Shunt resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Shunt resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"Vmp", (getter)CEC6ParameterPVModuleModel_get_Vmp,(setter)CEC6ParameterPVModuleModel_set_Vmp, - PyDoc_STR("*float*: Maximum power point voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum power point voltage [V]\n\n**Required:**\nTrue"), NULL}, {"Voc", (getter)CEC6ParameterPVModuleModel_get_Voc,(setter)CEC6ParameterPVModuleModel_set_Voc, - PyDoc_STR("*float*: Open circuit voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Open circuit voltage [V]\n\n**Required:**\nTrue"), NULL}, {"a", (getter)CEC6ParameterPVModuleModel_get_a,(setter)CEC6ParameterPVModuleModel_set_a, - PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n**Required:**\nTrue"), NULL}, {"alpha_isc", (getter)CEC6ParameterPVModuleModel_get_alpha_isc,(setter)CEC6ParameterPVModuleModel_set_alpha_isc, - PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n**Required:**\nTrue"), NULL}, {"area", (getter)CEC6ParameterPVModuleModel_get_area,(setter)CEC6ParameterPVModuleModel_set_area, - PyDoc_STR("*float*: Module area [m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Module area [m2]\n\n**Required:**\nTrue"), NULL}, {"beta_voc", (getter)CEC6ParameterPVModuleModel_get_beta_voc,(setter)CEC6ParameterPVModuleModel_set_beta_voc, - PyDoc_STR("*float*: Temp coeff of voltage at OC [V/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of voltage at OC [V/'C]\n\n**Required:**\nTrue"), NULL}, {"gamma_pmp", (getter)CEC6ParameterPVModuleModel_get_gamma_pmp,(setter)CEC6ParameterPVModuleModel_set_gamma_pmp, - PyDoc_STR("*float*: Temp coeff of power at MP [%/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of power at MP [%/'C]\n\n**Required:**\nTrue"), NULL}, {"height", (getter)CEC6ParameterPVModuleModel_get_height,(setter)CEC6ParameterPVModuleModel_set_height, - PyDoc_STR("*float*: System installation height [0/1]\n\n*Options*: 0=less than 22ft, 1=more than 22ft\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: System installation height [0/1]\n\n**Options:**\n0=less than 22ft, 1=more than 22ft\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"opvoltage", (getter)CEC6ParameterPVModuleModel_get_opvoltage,(setter)CEC6ParameterPVModuleModel_set_opvoltage, - PyDoc_STR("*sequence*: Module operating voltage [Volt]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Module operating voltage [Volt]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"standoff", (getter)CEC6ParameterPVModuleModel_get_standoff,(setter)CEC6ParameterPVModuleModel_set_standoff, - PyDoc_STR("*float*: Mounting standoff option [0..6]\n\n*Options*: 0=bipv, 1= >3.5in, 2=2.5-3.5in, 3=1.5-2.5in, 4=0.5-1.5in, 5= <0.5in, 6=ground/rack\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Mounting standoff option [0..6]\n\n**Options:**\n0=bipv, 1= >3.5in, 2=2.5-3.5in, 3=1.5-2.5in, 4=0.5-1.5in, 5= <0.5in, 6=ground/rack\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"tnoct", (getter)CEC6ParameterPVModuleModel_get_tnoct,(setter)CEC6ParameterPVModuleModel_set_tnoct, - PyDoc_STR("*float*: NOCT cell temperature ['C]\n\n*Required*: True"), + PyDoc_STR("*float*: NOCT cell temperature ['C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -733,11 +733,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1116,12 +1116,11 @@ static PyMethodDef Pv6parmodModule_methods[] = { {"new", Pv6parmod_new, METH_VARARGS, PyDoc_STR("new() -> Pv6parmod")}, {"default", Pv6parmod_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pv6parmod\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pv6parmod\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pv6parmod_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pv6parmod\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pv6parmod\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pv6parmod_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pv6parmod\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pv6parmod\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/PvGetShadeLossMpp.c b/modules/PvGetShadeLossMpp.c index eef2fc09..99ea504d 100644 --- a/modules/PvGetShadeLossMpp.c +++ b/modules/PvGetShadeLossMpp.c @@ -69,11 +69,11 @@ PVShadeLossDB_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVShadeLossDB_methods[] = { {"assign", (PyCFunction)PVShadeLossDB_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVShadeLossDB_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVShadeLossDB_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVShadeLossDB_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVShadeLossDB_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVShadeLossDB_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVShadeLossDB_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -175,28 +175,28 @@ PVShadeLossDB_set_v_mppt_low(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef PVShadeLossDB_getset[] = { {"diffuse_irrad", (getter)PVShadeLossDB_get_diffuse_irrad,(setter)PVShadeLossDB_set_diffuse_irrad, - PyDoc_STR("*sequence*: Diffuse irradiance\n\n*Required*: True"), + PyDoc_STR("*sequence*: Diffuse irradiance\n\n**Required:**\nTrue"), NULL}, {"global_poa_irrad", (getter)PVShadeLossDB_get_global_poa_irrad,(setter)PVShadeLossDB_set_global_poa_irrad, - PyDoc_STR("*sequence*: Global POA irradiance\n\n*Required*: True"), + PyDoc_STR("*sequence*: Global POA irradiance\n\n**Required:**\nTrue"), NULL}, {"mods_per_string", (getter)PVShadeLossDB_get_mods_per_string,(setter)PVShadeLossDB_set_mods_per_string, - PyDoc_STR("*sequence*: Modules per string\n\n*Required*: True"), + PyDoc_STR("*sequence*: Modules per string\n\n**Required:**\nTrue"), NULL}, {"pv_cell_temp", (getter)PVShadeLossDB_get_pv_cell_temp,(setter)PVShadeLossDB_set_pv_cell_temp, - PyDoc_STR("*sequence*: PV cell temperature\n\n*Required*: True"), + PyDoc_STR("*sequence*: PV cell temperature\n\n**Required:**\nTrue"), NULL}, {"str_shade_fracs", (getter)PVShadeLossDB_get_str_shade_fracs,(setter)PVShadeLossDB_set_str_shade_fracs, - PyDoc_STR("*sequence[sequence]*: Shading fractions for each string\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Shading fractions for each string\n\n**Required:**\nTrue"), NULL}, {"str_vmp_stc", (getter)PVShadeLossDB_get_str_vmp_stc,(setter)PVShadeLossDB_set_str_vmp_stc, - PyDoc_STR("*sequence*: Unshaded Vmp of the string at STC\n\n*Required*: True"), + PyDoc_STR("*sequence*: Unshaded Vmp of the string at STC\n\n**Required:**\nTrue"), NULL}, {"v_mppt_high", (getter)PVShadeLossDB_get_v_mppt_high,(setter)PVShadeLossDB_set_v_mppt_high, - PyDoc_STR("*sequence*: Upper bound of inverter MPPT range\n\n*Required*: True"), + PyDoc_STR("*sequence*: Upper bound of inverter MPPT range\n\n**Required:**\nTrue"), NULL}, {"v_mppt_low", (getter)PVShadeLossDB_get_v_mppt_low,(setter)PVShadeLossDB_set_v_mppt_low, - PyDoc_STR("*sequence*: Lower bound of inverter MPPT range\n\n*Required*: True"), + PyDoc_STR("*sequence*: Lower bound of inverter MPPT range\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -311,11 +311,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -690,12 +690,11 @@ static PyMethodDef PvGetShadeLossMppModule_methods[] = { {"new", PvGetShadeLossMpp_new, METH_VARARGS, PyDoc_STR("new() -> PvGetShadeLossMpp")}, {"default", PvGetShadeLossMpp_default, METH_VARARGS, - PyDoc_STR("default(config) -> PvGetShadeLossMpp\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> PvGetShadeLossMpp\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", PvGetShadeLossMpp_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> PvGetShadeLossMpp\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> PvGetShadeLossMpp\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", PvGetShadeLossMpp_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> PvGetShadeLossMpp\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> PvGetShadeLossMpp\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvsamv1.c b/modules/Pvsamv1.c index 18e686cd..8b54db1b 100644 --- a/modules/Pvsamv1.c +++ b/modules/Pvsamv1.c @@ -71,11 +71,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -153,22 +153,22 @@ SolarResource_set_use_wf_albedo(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SolarResource_getset[] = { {"albedo", (getter)SolarResource_get_albedo,(setter)SolarResource_set_albedo, - PyDoc_STR("*sequence*: User specified ground albedo [0..1]\n\n*Constraints*: LENGTH=12\n\n*Required*: True"), + PyDoc_STR("*sequence*: User specified ground albedo [0..1]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nTrue"), NULL}, {"irrad_mode", (getter)SolarResource_get_irrad_mode,(setter)SolarResource_set_irrad_mode, - PyDoc_STR("*float*: Irradiance input translation mode\n\n*Options*: 0=beam&diffuse,1=total&beam,2=total&diffuse,3=poa_reference,4=poa_pyranometer\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Irradiance input translation mode\n\n**Options:**\n0=beam&diffuse,1=total&beam,2=total&diffuse,3=poa_reference,4=poa_pyranometer\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"sky_model", (getter)SolarResource_get_sky_model,(setter)SolarResource_set_sky_model, - PyDoc_STR("*float*: Diffuse sky model\n\n*Options*: 0=isotropic,1=hkdr,2=perez\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Diffuse sky model\n\n**Options:**\n0=isotropic,1=hkdr,2=perez\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather data\n\n*Info*: lat,lon,tz,elev,year,month,hour,minute,gh,dn,df,poa,tdry,twet,tdew,rhum,pres,snow,alb,aod,wspd,wdir\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather data\n\n**Info:**\nlat,lon,tz,elev,year,month,hour,minute,gh,dn,df,poa,tdry,twet,tdew,rhum,pres,snow,alb,aod,wspd,wdir\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, - PyDoc_STR("*str*: Weather file in TMY2, TMY3, EPW, or SAM CSV\n\n*Required*: False"), + PyDoc_STR("*str*: Weather file in TMY2, TMY3, EPW, or SAM CSV\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"use_wf_albedo", (getter)SolarResource_get_use_wf_albedo,(setter)SolarResource_set_use_wf_albedo, - PyDoc_STR("*float*: Use albedo in weather file if provided [0/1]\n\n*Options*: 0=user-specified,1=weatherfile\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Use albedo in weather file if provided [0/1]\n\n**Options:**\n0=user-specified,1=weatherfile\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -283,11 +283,11 @@ Losses_export(VarGroupObject *self, PyObject *args) static PyMethodDef Losses_methods[] = { {"assign", (PyCFunction)Losses_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Losses_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Losses_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Losses_vals = { var: val, ...}``")}, {"export", (PyCFunction)Losses_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -701,106 +701,106 @@ Losses_set_transmission_loss(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef Losses_getset[] = { {"acwiring_loss", (getter)Losses_get_acwiring_loss,(setter)Losses_set_acwiring_loss, - PyDoc_STR("*float*: AC wiring loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: AC wiring loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"dcoptimizer_loss", (getter)Losses_get_dcoptimizer_loss,(setter)Losses_set_dcoptimizer_loss, - PyDoc_STR("*float*: DC power optimizer loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: DC power optimizer loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"en_snow_model", (getter)Losses_get_en_snow_model,(setter)Losses_set_en_snow_model, - PyDoc_STR("*float*: Toggle snow loss estimation [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Toggle snow loss estimation [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_dcwiring_loss", (getter)Losses_get_subarray1_dcwiring_loss,(setter)Losses_set_subarray1_dcwiring_loss, - PyDoc_STR("*float*: Sub-array 1 DC wiring loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 DC wiring loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray1_diodeconn_loss", (getter)Losses_get_subarray1_diodeconn_loss,(setter)Losses_set_subarray1_diodeconn_loss, - PyDoc_STR("*float*: Sub-array 1 DC diodes and connections loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 DC diodes and connections loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray1_mismatch_loss", (getter)Losses_get_subarray1_mismatch_loss,(setter)Losses_set_subarray1_mismatch_loss, - PyDoc_STR("*float*: Sub-array 1 DC mismatch loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 DC mismatch loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray1_nameplate_loss", (getter)Losses_get_subarray1_nameplate_loss,(setter)Losses_set_subarray1_nameplate_loss, - PyDoc_STR("*float*: Sub-array 1 DC nameplate loss [%]\n\n*Constraints*: MIN=-5,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 DC nameplate loss [%]\n\n**Constraints:**\nMIN=-5,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray1_rear_irradiance_loss", (getter)Losses_get_subarray1_rear_irradiance_loss,(setter)Losses_set_subarray1_rear_irradiance_loss, - PyDoc_STR("*float*: Sub-array 1 rear irradiance loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 rear irradiance loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray1_soiling", (getter)Losses_get_subarray1_soiling,(setter)Losses_set_subarray1_soiling, - PyDoc_STR("*sequence*: Sub-array 1 Monthly soiling loss [%]\n\n*Constraints*: LENGTH=12\n\n*Required*: True"), + PyDoc_STR("*sequence*: Sub-array 1 Monthly soiling loss [%]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nTrue"), NULL}, {"subarray1_tracking_loss", (getter)Losses_get_subarray1_tracking_loss,(setter)Losses_set_subarray1_tracking_loss, - PyDoc_STR("*float*: Sub-array 1 DC tracking error loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 DC tracking error loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {"subarray2_dcwiring_loss", (getter)Losses_get_subarray2_dcwiring_loss,(setter)Losses_set_subarray2_dcwiring_loss, - PyDoc_STR("*float*: Sub-array 2 DC wiring loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 DC wiring loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_diodeconn_loss", (getter)Losses_get_subarray2_diodeconn_loss,(setter)Losses_set_subarray2_diodeconn_loss, - PyDoc_STR("*float*: Sub-array 2 DC diodes and connections loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 DC diodes and connections loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_mismatch_loss", (getter)Losses_get_subarray2_mismatch_loss,(setter)Losses_set_subarray2_mismatch_loss, - PyDoc_STR("*float*: Sub-array 2 DC mismatch loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 DC mismatch loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_nameplate_loss", (getter)Losses_get_subarray2_nameplate_loss,(setter)Losses_set_subarray2_nameplate_loss, - PyDoc_STR("*float*: Sub-array 2 DC nameplate loss [%]\n\n*Constraints*: MIN=-5,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 DC nameplate loss [%]\n\n**Constraints:**\nMIN=-5,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_rear_irradiance_loss", (getter)Losses_get_subarray2_rear_irradiance_loss,(setter)Losses_set_subarray2_rear_irradiance_loss, - PyDoc_STR("*float*: Sub-array 2 rear irradiance loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 rear irradiance loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray2_soiling", (getter)Losses_get_subarray2_soiling,(setter)Losses_set_subarray2_soiling, - PyDoc_STR("*sequence*: Sub-array 2 Monthly soiling loss [%]\n\n*Constraints*: LENGTH=12\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*sequence*: Sub-array 2 Monthly soiling loss [%]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray2_tracking_loss", (getter)Losses_get_subarray2_tracking_loss,(setter)Losses_set_subarray2_tracking_loss, - PyDoc_STR("*float*: Sub-array 2 DC tracking error loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 DC tracking error loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_dcwiring_loss", (getter)Losses_get_subarray3_dcwiring_loss,(setter)Losses_set_subarray3_dcwiring_loss, - PyDoc_STR("*float*: Sub-array 3 DC wiring loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 DC wiring loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_diodeconn_loss", (getter)Losses_get_subarray3_diodeconn_loss,(setter)Losses_set_subarray3_diodeconn_loss, - PyDoc_STR("*float*: Sub-array 3 DC diodes and connections loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 DC diodes and connections loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_mismatch_loss", (getter)Losses_get_subarray3_mismatch_loss,(setter)Losses_set_subarray3_mismatch_loss, - PyDoc_STR("*float*: Sub-array 3 DC mismatch loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 DC mismatch loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_nameplate_loss", (getter)Losses_get_subarray3_nameplate_loss,(setter)Losses_set_subarray3_nameplate_loss, - PyDoc_STR("*float*: Sub-array 3 DC nameplate loss [%]\n\n*Constraints*: MIN=-5,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 DC nameplate loss [%]\n\n**Constraints:**\nMIN=-5,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_rear_irradiance_loss", (getter)Losses_get_subarray3_rear_irradiance_loss,(setter)Losses_set_subarray3_rear_irradiance_loss, - PyDoc_STR("*float*: Sub-array 3 rear irradiance loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 rear irradiance loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray3_soiling", (getter)Losses_get_subarray3_soiling,(setter)Losses_set_subarray3_soiling, - PyDoc_STR("*sequence*: Sub-array 3 Monthly soiling loss [%]\n\n*Constraints*: LENGTH=12\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*sequence*: Sub-array 3 Monthly soiling loss [%]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray3_tracking_loss", (getter)Losses_get_subarray3_tracking_loss,(setter)Losses_set_subarray3_tracking_loss, - PyDoc_STR("*float*: Sub-array 3 DC tracking error loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 DC tracking error loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_dcwiring_loss", (getter)Losses_get_subarray4_dcwiring_loss,(setter)Losses_set_subarray4_dcwiring_loss, - PyDoc_STR("*float*: Sub-array 4 DC wiring loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 DC wiring loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_diodeconn_loss", (getter)Losses_get_subarray4_diodeconn_loss,(setter)Losses_set_subarray4_diodeconn_loss, - PyDoc_STR("*float*: Sub-array 4 DC diodes and connections loss [%]\n\n*Info*: ?\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 DC diodes and connections loss [%]\n\n**Info:**\n?\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_mismatch_loss", (getter)Losses_get_subarray4_mismatch_loss,(setter)Losses_set_subarray4_mismatch_loss, - PyDoc_STR("*float*: Sub-array 4 DC mismatch loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 DC mismatch loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_nameplate_loss", (getter)Losses_get_subarray4_nameplate_loss,(setter)Losses_set_subarray4_nameplate_loss, - PyDoc_STR("*float*: Sub-array 4 DC nameplate loss [%]\n\n*Constraints*: MIN=-5,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 DC nameplate loss [%]\n\n**Constraints:**\nMIN=-5,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_rear_irradiance_loss", (getter)Losses_get_subarray4_rear_irradiance_loss,(setter)Losses_set_subarray4_rear_irradiance_loss, - PyDoc_STR("*float*: Sub-array 4 rear irradiance loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 rear irradiance loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"subarray4_soiling", (getter)Losses_get_subarray4_soiling,(setter)Losses_set_subarray4_soiling, - PyDoc_STR("*sequence*: Sub-array 4 Monthly soiling loss [%]\n\n*Constraints*: LENGTH=12\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*sequence*: Sub-array 4 Monthly soiling loss [%]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"subarray4_tracking_loss", (getter)Losses_get_subarray4_tracking_loss,(setter)Losses_set_subarray4_tracking_loss, - PyDoc_STR("*float*: Sub-array 4 DC tracking error loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 DC tracking error loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"transformer_load_loss", (getter)Losses_get_transformer_load_loss,(setter)Losses_set_transformer_load_loss, - PyDoc_STR("*float*: Power transformer load loss [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Power transformer load loss [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"transformer_no_load_loss", (getter)Losses_get_transformer_no_load_loss,(setter)Losses_set_transformer_no_load_loss, - PyDoc_STR("*float*: Power transformer no load loss [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Power transformer no load loss [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"transmission_loss", (getter)Losses_get_transmission_loss,(setter)Losses_set_transmission_loss, - PyDoc_STR("*float*: Transmission loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True"), + PyDoc_STR("*float*: Transmission loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -915,11 +915,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1033,31 +1033,31 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"ac_lifetime_losses", (getter)Lifetime_get_ac_lifetime_losses,(setter)Lifetime_set_ac_lifetime_losses, - PyDoc_STR("*sequence*: Lifetime daily AC losses [%]\n\n*Required*: True if en_ac_lifetime_losses=1"), + PyDoc_STR("*sequence*: Lifetime daily AC losses [%]\n\n**Required:**\nRequired if en_ac_lifetime_losses=1"), NULL}, {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Lifetime analysis period [years]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Lifetime analysis period [years]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"dc_degradation", (getter)Lifetime_get_dc_degradation,(setter)Lifetime_set_dc_degradation, - PyDoc_STR("*sequence*: Annual DC degradation [%/year]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*sequence*: Annual DC degradation [%/year]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"dc_lifetime_losses", (getter)Lifetime_get_dc_lifetime_losses,(setter)Lifetime_set_dc_lifetime_losses, - PyDoc_STR("*sequence*: Lifetime daily DC losses [%]\n\n*Required*: True if en_dc_lifetime_losses=1"), + PyDoc_STR("*sequence*: Lifetime daily DC losses [%]\n\n**Required:**\nRequired if en_dc_lifetime_losses=1"), NULL}, {"en_ac_lifetime_losses", (getter)Lifetime_get_en_ac_lifetime_losses,(setter)Lifetime_set_en_ac_lifetime_losses, - PyDoc_STR("*float*: Enable lifetime daily AC losses [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable lifetime daily AC losses [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_dc_lifetime_losses", (getter)Lifetime_get_en_dc_lifetime_losses,(setter)Lifetime_set_en_dc_lifetime_losses, - PyDoc_STR("*float*: Enable lifetime daily DC losses [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable lifetime daily DC losses [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"inflation_rate", (getter)Lifetime_get_inflation_rate,(setter)Lifetime_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"save_full_lifetime_variables", (getter)Lifetime_get_save_full_lifetime_variables,(setter)Lifetime_set_save_full_lifetime_variables, - PyDoc_STR("*float*: Save and display vars for full lifetime [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Save and display vars for full lifetime [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: PV lifetime simulation [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PV lifetime simulation [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1172,11 +1172,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1878,178 +1878,178 @@ SystemDesign_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemDesign_getset[] = { {"enable_mismatch_vmax_calc", (getter)SystemDesign_get_enable_mismatch_vmax_calc,(setter)SystemDesign_set_enable_mismatch_vmax_calc, - PyDoc_STR("*float*: Enable mismatched subarray Vmax calculation\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable mismatched subarray Vmax calculation\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"inverter_count", (getter)SystemDesign_get_inverter_count,(setter)SystemDesign_set_inverter_count, - PyDoc_STR("*float*: Number of inverters\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Number of inverters\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue\n\nThe value of ``inverter_count`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray1_azimuth", (getter)SystemDesign_get_subarray1_azimuth,(setter)SystemDesign_set_subarray1_azimuth, - PyDoc_STR("*float*: Sub-array 1 Azimuth [deg]\n\n*Options*: 0=N,90=E,180=S,270=W\n\n*Constraints*: MIN=0,MAX=359.9"), + PyDoc_STR("*float*: Sub-array 1 Azimuth [deg]\n\n**Options:**\n0=N,90=E,180=S,270=W\n\n**Constraints:**\nMIN=0,MAX=359.9"), NULL}, {"subarray1_backtrack", (getter)SystemDesign_get_subarray1_backtrack,(setter)SystemDesign_set_subarray1_backtrack, - PyDoc_STR("*float*: Sub-array 1 Backtracking enabled\n\n*Options*: 0=no backtracking,1=backtrack\n\n*Constraints*: BOOLEAN\n\n*Required*: True if subarray1_track_mode=1"), + PyDoc_STR("*float*: Sub-array 1 Backtracking enabled\n\n**Options:**\n0=no backtracking,1=backtrack\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if subarray1_track_mode=1"), NULL}, {"subarray1_gcr", (getter)SystemDesign_get_subarray1_gcr,(setter)SystemDesign_set_subarray1_gcr, - PyDoc_STR("*float*: Sub-array 1 Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Sub-array 1 Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_modules_per_string", (getter)SystemDesign_get_subarray1_modules_per_string,(setter)SystemDesign_set_subarray1_modules_per_string, - PyDoc_STR("*float*: Sub-array 1 Modules per string\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Sub-array 1 Modules per string\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``subarray1_modules_per_string``:\n\n\t - system_capacity\n\n\nThe value of ``subarray1_modules_per_string`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray1_monthly_tilt", (getter)SystemDesign_get_subarray1_monthly_tilt,(setter)SystemDesign_set_subarray1_monthly_tilt, - PyDoc_STR("*sequence*: Sub-array 1 monthly tilt input [deg]\n\n*Constraints*: LENGTH=12\n\n*Required*: True if subarray1_track_mode=4"), + PyDoc_STR("*sequence*: Sub-array 1 monthly tilt input [deg]\n\n**Constraints:**\nLENGTH=12\n\n**Required:**\nRequired if subarray1_track_mode=4"), NULL}, {"subarray1_mppt_input", (getter)SystemDesign_get_subarray1_mppt_input,(setter)SystemDesign_set_subarray1_mppt_input, - PyDoc_STR("*float*: Sub-array 1 Inverter MPPT input number\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Sub-array 1 Inverter MPPT input number\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_nstrings", (getter)SystemDesign_get_subarray1_nstrings,(setter)SystemDesign_set_subarray1_nstrings, - PyDoc_STR("*float*: Sub-array 1 Number of parallel strings\n\n*Constraints*: INTEGER\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Sub-array 1 Number of parallel strings\n\n**Constraints:**\nINTEGER\n\nThe value of the following variables depends on ``subarray1_nstrings``:\n\n\t - system_capacity\n\n\nThe value of ``subarray1_nstrings`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray1_rotlim", (getter)SystemDesign_get_subarray1_rotlim,(setter)SystemDesign_set_subarray1_rotlim, - PyDoc_STR("*float*: Sub-array 1 Tracker rotation limit [deg]\n\n*Constraints*: MIN=0,MAX=85\n\n*Required*: If not provided, assumed to be 45"), + PyDoc_STR("*float*: Sub-array 1 Tracker rotation limit [deg]\n\n**Constraints:**\nMIN=0,MAX=85\n\n**Required:**\nFalse. Automatically set to 45 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_slope_azm", (getter)SystemDesign_get_subarray1_slope_azm,(setter)SystemDesign_set_subarray1_slope_azm, - PyDoc_STR("*float*: Sub-array 1 terrain azimuth [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 1 terrain azimuth [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_slope_tilt", (getter)SystemDesign_get_subarray1_slope_tilt,(setter)SystemDesign_set_subarray1_slope_tilt, - PyDoc_STR("*float*: Sub-array 1 terrain tilt [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 1 terrain tilt [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_tilt", (getter)SystemDesign_get_subarray1_tilt,(setter)SystemDesign_set_subarray1_tilt, - PyDoc_STR("*float*: Sub-array 1 Tilt [deg]\n\n*Options*: 0=horizontal,90=vertical\n\n*Constraints*: MIN=0,MAX=90"), + PyDoc_STR("*float*: Sub-array 1 Tilt [deg]\n\n**Options:**\n0=horizontal,90=vertical\n\n**Constraints:**\nMIN=0,MAX=90"), NULL}, {"subarray1_tilt_eq_lat", (getter)SystemDesign_get_subarray1_tilt_eq_lat,(setter)SystemDesign_set_subarray1_tilt_eq_lat, - PyDoc_STR("*float*: Sub-array 1 Tilt=latitude override [0/1]\n\n*Options*: 0=false,1=override\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 1 Tilt=latitude override [0/1]\n\n**Options:**\n0=false,1=override\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray1_track_mode", (getter)SystemDesign_get_subarray1_track_mode,(setter)SystemDesign_set_subarray1_track_mode, - PyDoc_STR("*float*: Sub-array 1 Tracking mode\n\n*Options*: 0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 Tracking mode\n\n**Options:**\n0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nTrue"), NULL}, {"subarray2_azimuth", (getter)SystemDesign_get_subarray2_azimuth,(setter)SystemDesign_set_subarray2_azimuth, - PyDoc_STR("*float*: Sub-array 2 Azimuth [deg]\n\n*Options*: 0=N,90=E,180=S,270=W\n\n*Constraints*: MIN=0,MAX=359.9"), + PyDoc_STR("*float*: Sub-array 2 Azimuth [deg]\n\n**Options:**\n0=N,90=E,180=S,270=W\n\n**Constraints:**\nMIN=0,MAX=359.9"), NULL}, {"subarray2_backtrack", (getter)SystemDesign_get_subarray2_backtrack,(setter)SystemDesign_set_subarray2_backtrack, - PyDoc_STR("*float*: Sub-array 2 Backtracking enabled\n\n*Options*: 0=no backtracking,1=backtrack\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 2 Backtracking enabled\n\n**Options:**\n0=no backtracking,1=backtrack\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray2_enable", (getter)SystemDesign_get_subarray2_enable,(setter)SystemDesign_set_subarray2_enable, - PyDoc_STR("*float*: Sub-array 2 Enable [0/1]\n\n*Options*: 0=disabled,1=enabled\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Sub-array 2 Enable [0/1]\n\n**Options:**\n0=disabled,1=enabled\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``subarray2_enable``:\n\n\t - system_capacity\n\n\nThe value of ``subarray2_enable`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray2_gcr", (getter)SystemDesign_get_subarray2_gcr,(setter)SystemDesign_set_subarray2_gcr, - PyDoc_STR("*float*: Sub-array 2 Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Sub-array 2 Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_modules_per_string", (getter)SystemDesign_get_subarray2_modules_per_string,(setter)SystemDesign_set_subarray2_modules_per_string, - PyDoc_STR("*float*: Sub-array 2 Modules per string\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray2_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 2 Modules per string\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray2_enable=1\n\nThe value of the following variables depends on ``subarray2_modules_per_string``:\n\n\t - system_capacity\n"), NULL}, {"subarray2_monthly_tilt", (getter)SystemDesign_get_subarray2_monthly_tilt,(setter)SystemDesign_set_subarray2_monthly_tilt, - PyDoc_STR("*sequence*: Sub-array 2 Monthly tilt input [deg]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Sub-array 2 Monthly tilt input [deg]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"subarray2_mppt_input", (getter)SystemDesign_get_subarray2_mppt_input,(setter)SystemDesign_set_subarray2_mppt_input, - PyDoc_STR("*float*: Sub-array 2 Inverter MPPT input number\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Sub-array 2 Inverter MPPT input number\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_nstrings", (getter)SystemDesign_get_subarray2_nstrings,(setter)SystemDesign_set_subarray2_nstrings, - PyDoc_STR("*float*: Sub-array 2 Number of parallel strings\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray2_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 2 Number of parallel strings\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray2_enable=1\n\nThe value of the following variables depends on ``subarray2_nstrings``:\n\n\t - system_capacity\n"), NULL}, {"subarray2_rotlim", (getter)SystemDesign_get_subarray2_rotlim,(setter)SystemDesign_set_subarray2_rotlim, - PyDoc_STR("*float*: Sub-array 2 Tracker rotation limit [deg]\n\n*Constraints*: MIN=0,MAX=85\n\n*Required*: If not provided, assumed to be 45"), + PyDoc_STR("*float*: Sub-array 2 Tracker rotation limit [deg]\n\n**Constraints:**\nMIN=0,MAX=85\n\n**Required:**\nFalse. Automatically set to 45 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_slope_azm", (getter)SystemDesign_get_subarray2_slope_azm,(setter)SystemDesign_set_subarray2_slope_azm, - PyDoc_STR("*float*: Sub-array 2 terrain azimuth [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 2 terrain azimuth [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_slope_tilt", (getter)SystemDesign_get_subarray2_slope_tilt,(setter)SystemDesign_set_subarray2_slope_tilt, - PyDoc_STR("*float*: Sub-array 2 terrain tilt [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 2 terrain tilt [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_tilt", (getter)SystemDesign_get_subarray2_tilt,(setter)SystemDesign_set_subarray2_tilt, - PyDoc_STR("*float*: Sub-array 2 Tilt [deg]\n\n*Options*: 0=horizontal,90=vertical\n\n*Constraints*: MIN=0,MAX=90"), + PyDoc_STR("*float*: Sub-array 2 Tilt [deg]\n\n**Options:**\n0=horizontal,90=vertical\n\n**Constraints:**\nMIN=0,MAX=90"), NULL}, {"subarray2_tilt_eq_lat", (getter)SystemDesign_get_subarray2_tilt_eq_lat,(setter)SystemDesign_set_subarray2_tilt_eq_lat, - PyDoc_STR("*float*: Sub-array 2 Tilt=latitude override [0/1]\n\n*Options*: 0=false,1=override\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 2 Tilt=latitude override [0/1]\n\n**Options:**\n0=false,1=override\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray2_track_mode", (getter)SystemDesign_get_subarray2_track_mode,(setter)SystemDesign_set_subarray2_track_mode, - PyDoc_STR("*float*: Sub-array 2 Tracking mode\n\n*Options*: 0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 Tracking mode\n\n**Options:**\n0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray3_azimuth", (getter)SystemDesign_get_subarray3_azimuth,(setter)SystemDesign_set_subarray3_azimuth, - PyDoc_STR("*float*: Sub-array 3 Azimuth [deg]\n\n*Options*: 0=N,90=E,180=S,270=W\n\n*Constraints*: MIN=0,MAX=359.9"), + PyDoc_STR("*float*: Sub-array 3 Azimuth [deg]\n\n**Options:**\n0=N,90=E,180=S,270=W\n\n**Constraints:**\nMIN=0,MAX=359.9"), NULL}, {"subarray3_backtrack", (getter)SystemDesign_get_subarray3_backtrack,(setter)SystemDesign_set_subarray3_backtrack, - PyDoc_STR("*float*: Sub-array 3 Backtracking enabled\n\n*Options*: 0=no backtracking,1=backtrack\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 3 Backtracking enabled\n\n**Options:**\n0=no backtracking,1=backtrack\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray3_enable", (getter)SystemDesign_get_subarray3_enable,(setter)SystemDesign_set_subarray3_enable, - PyDoc_STR("*float*: Sub-array 3 Enable [0/1]\n\n*Options*: 0=disabled,1=enabled\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Sub-array 3 Enable [0/1]\n\n**Options:**\n0=disabled,1=enabled\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``subarray3_enable``:\n\n\t - system_capacity\n\n\nThe value of ``subarray3_enable`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray3_gcr", (getter)SystemDesign_get_subarray3_gcr,(setter)SystemDesign_set_subarray3_gcr, - PyDoc_STR("*float*: Sub-array 3 Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Sub-array 3 Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_modules_per_string", (getter)SystemDesign_get_subarray3_modules_per_string,(setter)SystemDesign_set_subarray3_modules_per_string, - PyDoc_STR("*float*: Sub-array 3 Modules per string\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray3_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 3 Modules per string\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray3_enable=1\n\nThe value of the following variables depends on ``subarray3_modules_per_string``:\n\n\t - system_capacity\n"), NULL}, {"subarray3_monthly_tilt", (getter)SystemDesign_get_subarray3_monthly_tilt,(setter)SystemDesign_set_subarray3_monthly_tilt, - PyDoc_STR("*sequence*: Sub-array 3 Monthly tilt input [deg]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Sub-array 3 Monthly tilt input [deg]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"subarray3_mppt_input", (getter)SystemDesign_get_subarray3_mppt_input,(setter)SystemDesign_set_subarray3_mppt_input, - PyDoc_STR("*float*: Sub-array 3 Inverter MPPT input number\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Sub-array 3 Inverter MPPT input number\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_nstrings", (getter)SystemDesign_get_subarray3_nstrings,(setter)SystemDesign_set_subarray3_nstrings, - PyDoc_STR("*float*: Sub-array 3 Number of parallel strings\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray3_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 3 Number of parallel strings\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray3_enable=1\n\nThe value of the following variables depends on ``subarray3_nstrings``:\n\n\t - system_capacity\n"), NULL}, {"subarray3_rotlim", (getter)SystemDesign_get_subarray3_rotlim,(setter)SystemDesign_set_subarray3_rotlim, - PyDoc_STR("*float*: Sub-array 3 Tracker rotation limit [deg]\n\n*Constraints*: MIN=0,MAX=85\n\n*Required*: If not provided, assumed to be 45"), + PyDoc_STR("*float*: Sub-array 3 Tracker rotation limit [deg]\n\n**Constraints:**\nMIN=0,MAX=85\n\n**Required:**\nFalse. Automatically set to 45 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_slope_azm", (getter)SystemDesign_get_subarray3_slope_azm,(setter)SystemDesign_set_subarray3_slope_azm, - PyDoc_STR("*float*: Sub-array 3 terrain azimuth [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 3 terrain azimuth [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_slope_tilt", (getter)SystemDesign_get_subarray3_slope_tilt,(setter)SystemDesign_set_subarray3_slope_tilt, - PyDoc_STR("*float*: Sub-array 3 terrain tilt [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 3 terrain tilt [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_tilt", (getter)SystemDesign_get_subarray3_tilt,(setter)SystemDesign_set_subarray3_tilt, - PyDoc_STR("*float*: Sub-array 3 Tilt [deg]\n\n*Options*: 0=horizontal,90=vertical\n\n*Constraints*: MIN=0,MAX=90"), + PyDoc_STR("*float*: Sub-array 3 Tilt [deg]\n\n**Options:**\n0=horizontal,90=vertical\n\n**Constraints:**\nMIN=0,MAX=90"), NULL}, {"subarray3_tilt_eq_lat", (getter)SystemDesign_get_subarray3_tilt_eq_lat,(setter)SystemDesign_set_subarray3_tilt_eq_lat, - PyDoc_STR("*float*: Sub-array 3 Tilt=latitude override [0/1]\n\n*Options*: 0=false,1=override\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 3 Tilt=latitude override [0/1]\n\n**Options:**\n0=false,1=override\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray3_track_mode", (getter)SystemDesign_get_subarray3_track_mode,(setter)SystemDesign_set_subarray3_track_mode, - PyDoc_STR("*float*: Sub-array 3 Tracking mode\n\n*Options*: 0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 Tracking mode\n\n**Options:**\n0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray4_azimuth", (getter)SystemDesign_get_subarray4_azimuth,(setter)SystemDesign_set_subarray4_azimuth, - PyDoc_STR("*float*: Sub-array 4 Azimuth [deg]\n\n*Options*: 0=N,90=E,180=S,270=W\n\n*Constraints*: MIN=0,MAX=359.9"), + PyDoc_STR("*float*: Sub-array 4 Azimuth [deg]\n\n**Options:**\n0=N,90=E,180=S,270=W\n\n**Constraints:**\nMIN=0,MAX=359.9"), NULL}, {"subarray4_backtrack", (getter)SystemDesign_get_subarray4_backtrack,(setter)SystemDesign_set_subarray4_backtrack, - PyDoc_STR("*float*: Sub-array 4 Backtracking enabled\n\n*Options*: 0=no backtracking,1=backtrack\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 4 Backtracking enabled\n\n**Options:**\n0=no backtracking,1=backtrack\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray4_enable", (getter)SystemDesign_get_subarray4_enable,(setter)SystemDesign_set_subarray4_enable, - PyDoc_STR("*float*: Sub-array 4 Enable [0/1]\n\n*Options*: 0=disabled,1=enabled\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Sub-array 4 Enable [0/1]\n\n**Options:**\n0=disabled,1=enabled\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``subarray4_enable``:\n\n\t - system_capacity\n\n\nThe value of ``subarray4_enable`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"subarray4_gcr", (getter)SystemDesign_get_subarray4_gcr,(setter)SystemDesign_set_subarray4_gcr, - PyDoc_STR("*float*: Sub-array 4 Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Sub-array 4 Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_modules_per_string", (getter)SystemDesign_get_subarray4_modules_per_string,(setter)SystemDesign_set_subarray4_modules_per_string, - PyDoc_STR("*float*: Sub-array 4 Modules per string\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray4_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 4 Modules per string\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray4_enable=1\n\nThe value of the following variables depends on ``subarray4_modules_per_string``:\n\n\t - system_capacity\n"), NULL}, {"subarray4_monthly_tilt", (getter)SystemDesign_get_subarray4_monthly_tilt,(setter)SystemDesign_set_subarray4_monthly_tilt, - PyDoc_STR("*sequence*: Sub-array 4 Monthly tilt input [deg]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Sub-array 4 Monthly tilt input [deg]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"subarray4_mppt_input", (getter)SystemDesign_get_subarray4_mppt_input,(setter)SystemDesign_set_subarray4_mppt_input, - PyDoc_STR("*float*: Sub-array 4 Inverter MPPT input number\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Sub-array 4 Inverter MPPT input number\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_nstrings", (getter)SystemDesign_get_subarray4_nstrings,(setter)SystemDesign_set_subarray4_nstrings, - PyDoc_STR("*float*: Sub-array 4 Number of parallel strings\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: True if subarray4_enable=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Sub-array 4 Number of parallel strings\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nRequired if subarray4_enable=1\n\nThe value of the following variables depends on ``subarray4_nstrings``:\n\n\t - system_capacity\n"), NULL}, {"subarray4_rotlim", (getter)SystemDesign_get_subarray4_rotlim,(setter)SystemDesign_set_subarray4_rotlim, - PyDoc_STR("*float*: Sub-array 4 Tracker rotation limit [deg]\n\n*Constraints*: MIN=0,MAX=85\n\n*Required*: If not provided, assumed to be 45"), + PyDoc_STR("*float*: Sub-array 4 Tracker rotation limit [deg]\n\n**Constraints:**\nMIN=0,MAX=85\n\n**Required:**\nFalse. Automatically set to 45 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_slope_azm", (getter)SystemDesign_get_subarray4_slope_azm,(setter)SystemDesign_set_subarray4_slope_azm, - PyDoc_STR("*float*: Sub-array 4 terrain azimuth [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 4 terrain azimuth [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_slope_tilt", (getter)SystemDesign_get_subarray4_slope_tilt,(setter)SystemDesign_set_subarray4_slope_tilt, - PyDoc_STR("*float*: Sub-array 4 terrain tilt [deg]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Sub-array 4 terrain tilt [deg]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_tilt", (getter)SystemDesign_get_subarray4_tilt,(setter)SystemDesign_set_subarray4_tilt, - PyDoc_STR("*float*: Sub-array 4 Tilt [deg]\n\n*Options*: 0=horizontal,90=vertical\n\n*Constraints*: MIN=0,MAX=90"), + PyDoc_STR("*float*: Sub-array 4 Tilt [deg]\n\n**Options:**\n0=horizontal,90=vertical\n\n**Constraints:**\nMIN=0,MAX=90"), NULL}, {"subarray4_tilt_eq_lat", (getter)SystemDesign_get_subarray4_tilt_eq_lat,(setter)SystemDesign_set_subarray4_tilt_eq_lat, - PyDoc_STR("*float*: Sub-array 4 Tilt=latitude override [0/1]\n\n*Options*: 0=false,1=override\n\n*Constraints*: BOOLEAN"), + PyDoc_STR("*float*: Sub-array 4 Tilt=latitude override [0/1]\n\n**Options:**\n0=false,1=override\n\n**Constraints:**\nBOOLEAN"), NULL}, {"subarray4_track_mode", (getter)SystemDesign_get_subarray4_track_mode,(setter)SystemDesign_set_subarray4_track_mode, - PyDoc_STR("*float*: Sub-array 4 Tracking mode\n\n*Options*: 0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 Tracking mode\n\n**Options:**\n0=fixed,1=1axis,2=2axis,3=azi,4=monthly\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: DC Nameplate capacity [kWdc]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray2_modules_per_string\n\t - subarray2_nstrings\n\t - subarray3_enable\n\t - subarray3_modules_per_string\n\t - subarray3_nstrings\n\t - subarray4_enable\n\t - subarray4_modules_per_string\n\t - subarray4_nstrings\n"), + PyDoc_STR("*float*: DC Nameplate capacity [kWdc]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray2_modules_per_string\n\t - subarray2_nstrings\n\t - subarray3_enable\n\t - subarray3_modules_per_string\n\t - subarray3_nstrings\n\t - subarray4_enable\n\t - subarray4_modules_per_string\n\t - subarray4_nstrings\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2164,11 +2164,11 @@ Shading_export(VarGroupObject *self, PyObject *args) static PyMethodDef Shading_methods[] = { {"assign", (PyCFunction)Shading_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Shading_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Shading_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Shading_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Shading_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Shading_vals = { var: val, ...}``")}, {"export", (PyCFunction)Shading_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2462,76 +2462,76 @@ Shading_set_subarray4_shading_timestep(VarGroupObject *self, PyObject *value, vo static PyGetSetDef Shading_getset[] = { {"subarray1_shade_mode", (getter)Shading_get_subarray1_shade_mode,(setter)Shading_set_subarray1_shade_mode, - PyDoc_STR("*float*: Sub-array 1 shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n*Options*: 0=none,1=standard(non-linear),2=thin film(linear)\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n**Options:**\n0=none,1=standard(non-linear),2=thin film(linear)\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nTrue"), NULL}, {"subarray1_shading_azal", (getter)Shading_get_subarray1_shading_azal,(setter)Shading_set_subarray1_shading_azal, - PyDoc_STR("*sequence[sequence]*: Sub-array 1 Azimuth x altitude beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 1 Azimuth x altitude beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray1_shading_diff", (getter)Shading_get_subarray1_shading_diff,(setter)Shading_set_subarray1_shading_diff, - PyDoc_STR("*float*: Sub-array 1 Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 1 Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray1_shading_mxh", (getter)Shading_get_subarray1_shading_mxh,(setter)Shading_set_subarray1_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Sub-array 1 Month x Hour beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 1 Month x Hour beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray1_shading_string_option", (getter)Shading_get_subarray1_shading_string_option,(setter)Shading_set_subarray1_shading_string_option, - PyDoc_STR("*float*: Sub-array 1 shading string option\n\n*Options*: 0=shadingdb,1=average,2=maximum,3=minimum\n\n*Constraints*: INTEGER,MIN=-1,MAX=4\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Sub-array 1 shading string option\n\n**Options:**\n0=shadingdb,1=average,2=maximum,3=minimum\n\n**Constraints:**\nINTEGER,MIN=-1,MAX=4\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_shading_timestep", (getter)Shading_get_subarray1_shading_timestep,(setter)Shading_set_subarray1_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Sub-array 1 timestep beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 1 timestep beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_shade_mode", (getter)Shading_get_subarray2_shade_mode,(setter)Shading_set_subarray2_shade_mode, - PyDoc_STR("*float*: Sub-array 2 Shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n*Options*: 0=none,1=standard(non-linear),2=thin film(linear)\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 Shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n**Options:**\n0=none,1=standard(non-linear),2=thin film(linear)\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray2_shading_azal", (getter)Shading_get_subarray2_shading_azal,(setter)Shading_set_subarray2_shading_azal, - PyDoc_STR("*sequence[sequence]*: Sub-array 2 Azimuth x altitude beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 2 Azimuth x altitude beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_shading_diff", (getter)Shading_get_subarray2_shading_diff,(setter)Shading_set_subarray2_shading_diff, - PyDoc_STR("*float*: Sub-array 2 Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 2 Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_shading_mxh", (getter)Shading_get_subarray2_shading_mxh,(setter)Shading_set_subarray2_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Sub-array 2 Month x Hour beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 2 Month x Hour beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray2_shading_string_option", (getter)Shading_get_subarray2_shading_string_option,(setter)Shading_set_subarray2_shading_string_option, - PyDoc_STR("*float*: Sub-array 2 Shading string option\n\n*Options*: 0=shadingdb,1=average,2=maximum,3=minimum\n\n*Constraints*: INTEGER,MIN=-1,MAX=4\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Sub-array 2 Shading string option\n\n**Options:**\n0=shadingdb,1=average,2=maximum,3=minimum\n\n**Constraints:**\nINTEGER,MIN=-1,MAX=4\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray2_shading_timestep", (getter)Shading_get_subarray2_shading_timestep,(setter)Shading_set_subarray2_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Sub-array 2 Timestep beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 2 Timestep beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_shade_mode", (getter)Shading_get_subarray3_shade_mode,(setter)Shading_set_subarray3_shade_mode, - PyDoc_STR("*float*: Sub-array 3 Shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n*Options*: 0=none,1=standard(non-linear),2=thin film(linear)\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 Shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n**Options:**\n0=none,1=standard(non-linear),2=thin film(linear)\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray3_shading_azal", (getter)Shading_get_subarray3_shading_azal,(setter)Shading_set_subarray3_shading_azal, - PyDoc_STR("*sequence[sequence]*: Sub-array 3 Azimuth x altitude beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 3 Azimuth x altitude beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_shading_diff", (getter)Shading_get_subarray3_shading_diff,(setter)Shading_set_subarray3_shading_diff, - PyDoc_STR("*float*: Sub-array 3 Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 3 Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_shading_mxh", (getter)Shading_get_subarray3_shading_mxh,(setter)Shading_set_subarray3_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Sub-array 3 Month x Hour beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 3 Month x Hour beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray3_shading_string_option", (getter)Shading_get_subarray3_shading_string_option,(setter)Shading_set_subarray3_shading_string_option, - PyDoc_STR("*float*: Sub-array 3 Shading string option\n\n*Options*: 0=shadingdb,1=average,2=maximum,3=minimum\n\n*Constraints*: INTEGER,MIN=-1,MAX=4\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Sub-array 3 Shading string option\n\n**Options:**\n0=shadingdb,1=average,2=maximum,3=minimum\n\n**Constraints:**\nINTEGER,MIN=-1,MAX=4\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray3_shading_timestep", (getter)Shading_get_subarray3_shading_timestep,(setter)Shading_set_subarray3_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Sub-array 3 Timestep beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 3 Timestep beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_shade_mode", (getter)Shading_get_subarray4_shade_mode,(setter)Shading_set_subarray4_shade_mode, - PyDoc_STR("*float*: Sub-array 4 shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n*Options*: 0=none,1=standard(non-linear),2=thin film(linear)\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 shading mode (fixed tilt or 1x tracking) [0/1/2]\n\n**Options:**\n0=none,1=standard(non-linear),2=thin film(linear)\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"subarray4_shading_azal", (getter)Shading_get_subarray4_shading_azal,(setter)Shading_set_subarray4_shading_azal, - PyDoc_STR("*sequence[sequence]*: Sub-array 4 Azimuth x altitude beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 4 Azimuth x altitude beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_shading_diff", (getter)Shading_get_subarray4_shading_diff,(setter)Shading_set_subarray4_shading_diff, - PyDoc_STR("*float*: Sub-array 4 Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Sub-array 4 Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_shading_mxh", (getter)Shading_get_subarray4_shading_mxh,(setter)Shading_set_subarray4_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Sub-array 4 Month x Hour beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 4 Month x Hour beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"subarray4_shading_string_option", (getter)Shading_get_subarray4_shading_string_option,(setter)Shading_set_subarray4_shading_string_option, - PyDoc_STR("*float*: Sub-array 4 Shading string option\n\n*Options*: 0=shadingdb,1=average,2=maximum,3=minimum\n\n*Constraints*: INTEGER,MIN=-1,MAX=4\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Sub-array 4 Shading string option\n\n**Options:**\n0=shadingdb,1=average,2=maximum,3=minimum\n\n**Constraints:**\nINTEGER,MIN=-1,MAX=4\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray4_shading_timestep", (getter)Shading_get_subarray4_shading_timestep,(setter)Shading_set_subarray4_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Sub-array 4 Timestep beam shading losses [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Sub-array 4 Timestep beam shading losses [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -2646,11 +2646,11 @@ Layout_export(VarGroupObject *self, PyObject *args) static PyMethodDef Layout_methods[] = { {"assign", (PyCFunction)Layout_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Layout_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Layout_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Layout_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Layout_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Layout_vals = { var: val, ...}``")}, {"export", (PyCFunction)Layout_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2812,43 +2812,43 @@ Layout_set_subarray4_nmody(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Layout_getset[] = { {"module_aspect_ratio", (getter)Layout_get_module_aspect_ratio,(setter)Layout_set_module_aspect_ratio, - PyDoc_STR("*float*: Module aspect ratio\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1.7"), + PyDoc_STR("*float*: Module aspect ratio\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1.7 if not assigned explicitly or loaded from defaults."), NULL}, {"subarray1_mod_orient", (getter)Layout_get_subarray1_mod_orient,(setter)Layout_set_subarray1_mod_orient, - PyDoc_STR("*float*: Sub-array 1 Module orientation [0/1]\n\n*Options*: 0=portrait,1=landscape\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 Module orientation [0/1]\n\n**Options:**\n0=portrait,1=landscape\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"subarray1_nmodx", (getter)Layout_get_subarray1_nmodx,(setter)Layout_set_subarray1_nmodx, - PyDoc_STR("*float*: Sub-array 1 Number of modules along bottom of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 Number of modules along bottom of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"subarray1_nmody", (getter)Layout_get_subarray1_nmody,(setter)Layout_set_subarray1_nmody, - PyDoc_STR("*float*: Sub-array 1 Number of modules along side of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Sub-array 1 Number of modules along side of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"subarray2_mod_orient", (getter)Layout_get_subarray2_mod_orient,(setter)Layout_set_subarray2_mod_orient, - PyDoc_STR("*float*: Sub-array 2 Module orientation [0/1]\n\n*Options*: 0=portrait,1=landscape\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 Module orientation [0/1]\n\n**Options:**\n0=portrait,1=landscape\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray2_nmodx", (getter)Layout_get_subarray2_nmodx,(setter)Layout_set_subarray2_nmodx, - PyDoc_STR("*float*: Sub-array 2 Number of modules along bottom of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 Number of modules along bottom of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray2_nmody", (getter)Layout_get_subarray2_nmody,(setter)Layout_set_subarray2_nmody, - PyDoc_STR("*float*: Sub-array 2 Number of modules along side of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray2_enable=1"), + PyDoc_STR("*float*: Sub-array 2 Number of modules along side of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray2_enable=1"), NULL}, {"subarray3_mod_orient", (getter)Layout_get_subarray3_mod_orient,(setter)Layout_set_subarray3_mod_orient, - PyDoc_STR("*float*: Sub-array 3 Module orientation [0/1]\n\n*Options*: 0=portrait,1=landscape\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 Module orientation [0/1]\n\n**Options:**\n0=portrait,1=landscape\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray3_nmodx", (getter)Layout_get_subarray3_nmodx,(setter)Layout_set_subarray3_nmodx, - PyDoc_STR("*float*: Sub-array 3 Number of modules along bottom of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 Number of modules along bottom of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray3_nmody", (getter)Layout_get_subarray3_nmody,(setter)Layout_set_subarray3_nmody, - PyDoc_STR("*float*: Sub-array 3 Number of modules along side of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray3_enable=1"), + PyDoc_STR("*float*: Sub-array 3 Number of modules along side of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray3_enable=1"), NULL}, {"subarray4_mod_orient", (getter)Layout_get_subarray4_mod_orient,(setter)Layout_set_subarray4_mod_orient, - PyDoc_STR("*float*: Sub-array 4 Module orientation [0/1]\n\n*Options*: 0=portrait,1=landscape\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 Module orientation [0/1]\n\n**Options:**\n0=portrait,1=landscape\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"subarray4_nmodx", (getter)Layout_get_subarray4_nmodx,(setter)Layout_set_subarray4_nmodx, - PyDoc_STR("*float*: Sub-array 4 Number of modules along bottom of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 Number of modules along bottom of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {"subarray4_nmody", (getter)Layout_get_subarray4_nmody,(setter)Layout_set_subarray4_nmody, - PyDoc_STR("*float*: Sub-array 4 Number of modules along side of row\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if subarray4_enable=1"), + PyDoc_STR("*float*: Sub-array 4 Number of modules along side of row\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if subarray4_enable=1"), NULL}, {NULL} /* Sentinel */ }; @@ -2963,11 +2963,11 @@ Module_export(VarGroupObject *self, PyObject *args) static PyMethodDef Module_methods[] = { {"assign", (PyCFunction)Module_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Module_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Module_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Module_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Module_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Module_vals = { var: val, ...}``")}, {"export", (PyCFunction)Module_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2985,7 +2985,7 @@ Module_set_module_model(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Module_getset[] = { {"module_model", (getter)Module_get_module_model,(setter)Module_set_module_model, - PyDoc_STR("*float*: Photovoltaic module model specifier\n\n*Options*: 0=spe,1=cec,2=6par_user,3=snl,4=sd11-iec61853,5=PVYield\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Photovoltaic module model specifier\n\n**Options:**\n0=spe,1=cec,2=6par_user,3=snl,4=sd11-iec61853,5=PVYield\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``module_model``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -3100,11 +3100,11 @@ SimpleEfficiencyModuleModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef SimpleEfficiencyModuleModel_methods[] = { {"assign", (PyCFunction)SimpleEfficiencyModuleModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SimpleEfficiencyModuleModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SimpleEfficiencyModuleModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SimpleEfficiencyModuleModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SimpleEfficiencyModuleModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SimpleEfficiencyModuleModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)SimpleEfficiencyModuleModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3398,76 +3398,76 @@ SimpleEfficiencyModuleModel_set_spe_voc(VarGroupObject *self, PyObject *value, v static PyGetSetDef SimpleEfficiencyModuleModel_getset[] = { {"spe_a", (getter)SimpleEfficiencyModuleModel_get_spe_a,(setter)SimpleEfficiencyModuleModel_set_spe_a, - PyDoc_STR("*float*: Cell temp parameter a\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Cell temp parameter a\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_area", (getter)SimpleEfficiencyModuleModel_get_spe_area,(setter)SimpleEfficiencyModuleModel_set_spe_area, - PyDoc_STR("*float*: Module area [m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Module area [m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_area``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_b", (getter)SimpleEfficiencyModuleModel_get_spe_b,(setter)SimpleEfficiencyModuleModel_set_spe_b, - PyDoc_STR("*float*: Cell temp parameter b\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Cell temp parameter b\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_bifacial_ground_clearance_height", (getter)SimpleEfficiencyModuleModel_get_spe_bifacial_ground_clearance_height,(setter)SimpleEfficiencyModuleModel_set_spe_bifacial_ground_clearance_height, - PyDoc_STR("*float*: Module ground clearance height [m]\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Module ground clearance height [m]\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_bifacial_transmission_factor", (getter)SimpleEfficiencyModuleModel_get_spe_bifacial_transmission_factor,(setter)SimpleEfficiencyModuleModel_set_spe_bifacial_transmission_factor, - PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_bifaciality", (getter)SimpleEfficiencyModuleModel_get_spe_bifaciality,(setter)SimpleEfficiencyModuleModel_set_spe_bifaciality, - PyDoc_STR("*float*: Bifaciality factor [%]\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Bifaciality factor [%]\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_dT", (getter)SimpleEfficiencyModuleModel_get_spe_dT,(setter)SimpleEfficiencyModuleModel_set_spe_dT, - PyDoc_STR("*float*: Cell temp parameter dT\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Cell temp parameter dT\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_eff0", (getter)SimpleEfficiencyModuleModel_get_spe_eff0,(setter)SimpleEfficiencyModuleModel_set_spe_eff0, - PyDoc_STR("*float*: Efficiency at irradiance level 0 [%]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Efficiency at irradiance level 0 [%]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_eff0``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_eff1", (getter)SimpleEfficiencyModuleModel_get_spe_eff1,(setter)SimpleEfficiencyModuleModel_set_spe_eff1, - PyDoc_STR("*float*: Efficiency at irradiance level 1 [%]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Efficiency at irradiance level 1 [%]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_eff1``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_eff2", (getter)SimpleEfficiencyModuleModel_get_spe_eff2,(setter)SimpleEfficiencyModuleModel_set_spe_eff2, - PyDoc_STR("*float*: Efficiency at irradiance level 2 [%]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Efficiency at irradiance level 2 [%]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_eff2``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_eff3", (getter)SimpleEfficiencyModuleModel_get_spe_eff3,(setter)SimpleEfficiencyModuleModel_set_spe_eff3, - PyDoc_STR("*float*: Efficiency at irradiance level 3 [%]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Efficiency at irradiance level 3 [%]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_eff3``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_eff4", (getter)SimpleEfficiencyModuleModel_get_spe_eff4,(setter)SimpleEfficiencyModuleModel_set_spe_eff4, - PyDoc_STR("*float*: Efficiency at irradiance level 4 [%]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Efficiency at irradiance level 4 [%]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_eff4``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_fd", (getter)SimpleEfficiencyModuleModel_get_spe_fd,(setter)SimpleEfficiencyModuleModel_set_spe_fd, - PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_is_bifacial", (getter)SimpleEfficiencyModuleModel_get_spe_is_bifacial,(setter)SimpleEfficiencyModuleModel_set_spe_is_bifacial, - PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_module_structure", (getter)SimpleEfficiencyModuleModel_get_spe_module_structure,(setter)SimpleEfficiencyModuleModel_set_spe_module_structure, - PyDoc_STR("*float*: Mounting and module structure\n\n*Options*: 0=glass/cell/polymer sheet - open rack,1=glass/cell/glass - open rack,2=polymer/thin film/steel - open rack,3=Insulated back, building-integrated PV,4=close roof mount,5=user-defined\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Mounting and module structure\n\n**Options:**\n0=glass/cell/polymer sheet - open rack,1=glass/cell/glass - open rack,2=polymer/thin film/steel - open rack,3=Insulated back, building-integrated PV,4=close roof mount,5=user-defined\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_rad0", (getter)SimpleEfficiencyModuleModel_get_spe_rad0,(setter)SimpleEfficiencyModuleModel_set_spe_rad0, - PyDoc_STR("*float*: Irradiance level 0 [W/m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance level 0 [W/m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_rad0``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_rad1", (getter)SimpleEfficiencyModuleModel_get_spe_rad1,(setter)SimpleEfficiencyModuleModel_set_spe_rad1, - PyDoc_STR("*float*: Irradiance level 1 [W/m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance level 1 [W/m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_rad1``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_rad2", (getter)SimpleEfficiencyModuleModel_get_spe_rad2,(setter)SimpleEfficiencyModuleModel_set_spe_rad2, - PyDoc_STR("*float*: Irradiance level 2 [W/m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance level 2 [W/m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_rad2``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_rad3", (getter)SimpleEfficiencyModuleModel_get_spe_rad3,(setter)SimpleEfficiencyModuleModel_set_spe_rad3, - PyDoc_STR("*float*: Irradiance level 3 [W/m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance level 3 [W/m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_rad3``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_rad4", (getter)SimpleEfficiencyModuleModel_get_spe_rad4,(setter)SimpleEfficiencyModuleModel_set_spe_rad4, - PyDoc_STR("*float*: Irradiance level 4 [W/m2]\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance level 4 [W/m2]\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_rad4``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_reference", (getter)SimpleEfficiencyModuleModel_get_spe_reference,(setter)SimpleEfficiencyModuleModel_set_spe_reference, - PyDoc_STR("*float*: Reference irradiance level\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Reference irradiance level\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_reference``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_temp_coeff", (getter)SimpleEfficiencyModuleModel_get_spe_temp_coeff,(setter)SimpleEfficiencyModuleModel_set_spe_temp_coeff, - PyDoc_STR("*float*: Temperature coefficient [%/C]\n\n*Required*: True if module_model=0"), + PyDoc_STR("*float*: Temperature coefficient [%/C]\n\n**Required:**\nRequired if module_model=0"), NULL}, {"spe_vmp", (getter)SimpleEfficiencyModuleModel_get_spe_vmp,(setter)SimpleEfficiencyModuleModel_set_spe_vmp, - PyDoc_STR("*float*: Nominal max power voltage [V]\n\n*Constraints*: POSITIVE\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Nominal max power voltage [V]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_vmp``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"spe_voc", (getter)SimpleEfficiencyModuleModel_get_spe_voc,(setter)SimpleEfficiencyModuleModel_set_spe_voc, - PyDoc_STR("*float*: Nominal open circuit voltage [V]\n\n*Constraints*: POSITIVE\n\n*Required*: True if module_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Nominal open circuit voltage [V]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nRequired if module_model=0\n\nThe value of the following variables depends on ``spe_voc``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -3582,11 +3582,11 @@ CECPerformanceModelWithModuleDatabase_export(VarGroupObject *self, PyObject *arg static PyMethodDef CECPerformanceModelWithModuleDatabase_methods[] = { {"assign", (PyCFunction)CECPerformanceModelWithModuleDatabase_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CECPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CECPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CECPerformanceModelWithModuleDatabase_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CECPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CECPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, {"export", (PyCFunction)CECPerformanceModelWithModuleDatabase_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3988,103 +3988,103 @@ CECPerformanceModelWithModuleDatabase_set_cec_v_oc_ref(VarGroupObject *self, PyO static PyGetSetDef CECPerformanceModelWithModuleDatabase_getset[] = { {"cec_a_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_a_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_a_ref, - PyDoc_STR("*float*: Nonideality factor a\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Nonideality factor a\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_adjust", (getter)CECPerformanceModelWithModuleDatabase_get_cec_adjust,(setter)CECPerformanceModelWithModuleDatabase_set_cec_adjust, - PyDoc_STR("*float*: Temperature coefficient adjustment [%]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Temperature coefficient adjustment [%]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_alpha_sc", (getter)CECPerformanceModelWithModuleDatabase_get_cec_alpha_sc,(setter)CECPerformanceModelWithModuleDatabase_set_cec_alpha_sc, - PyDoc_STR("*float*: Short circuit current temperature coefficient [A/C]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Short circuit current temperature coefficient [A/C]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_area", (getter)CECPerformanceModelWithModuleDatabase_get_cec_area,(setter)CECPerformanceModelWithModuleDatabase_set_cec_area, - PyDoc_STR("*float*: Module area [m2]\n\n*Required*: True if module_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - cec_module_length\n"), + PyDoc_STR("*float*: Module area [m2]\n\n**Required:**\nRequired if module_model=1\n\nThe value of the following variables depends on ``cec_area``:\n\n\t - cec_module_length\n"), NULL}, {"cec_array_cols", (getter)CECPerformanceModelWithModuleDatabase_get_cec_array_cols,(setter)CECPerformanceModelWithModuleDatabase_set_cec_array_cols, - PyDoc_STR("*float*: Columns of modules in array\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Columns of modules in array\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_array_rows", (getter)CECPerformanceModelWithModuleDatabase_get_cec_array_rows,(setter)CECPerformanceModelWithModuleDatabase_set_cec_array_rows, - PyDoc_STR("*float*: Rows of modules in array\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Rows of modules in array\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_backside_temp", (getter)CECPerformanceModelWithModuleDatabase_get_cec_backside_temp,(setter)CECPerformanceModelWithModuleDatabase_set_cec_backside_temp, - PyDoc_STR("*float*: Module backside temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Module backside temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_beta_oc", (getter)CECPerformanceModelWithModuleDatabase_get_cec_beta_oc,(setter)CECPerformanceModelWithModuleDatabase_set_cec_beta_oc, - PyDoc_STR("*float*: Open circuit voltage temperature coefficient [V/C]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Open circuit voltage temperature coefficient [V/C]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_bifacial_ground_clearance_height", (getter)CECPerformanceModelWithModuleDatabase_get_cec_bifacial_ground_clearance_height,(setter)CECPerformanceModelWithModuleDatabase_set_cec_bifacial_ground_clearance_height, - PyDoc_STR("*float*: Module ground clearance height [m]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Module ground clearance height [m]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_bifacial_transmission_factor", (getter)CECPerformanceModelWithModuleDatabase_get_cec_bifacial_transmission_factor,(setter)CECPerformanceModelWithModuleDatabase_set_cec_bifacial_transmission_factor, - PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_bifaciality", (getter)CECPerformanceModelWithModuleDatabase_get_cec_bifaciality,(setter)CECPerformanceModelWithModuleDatabase_set_cec_bifaciality, - PyDoc_STR("*float*: Bifaciality factor [%]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Bifaciality factor [%]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_gamma_r", (getter)CECPerformanceModelWithModuleDatabase_get_cec_gamma_r,(setter)CECPerformanceModelWithModuleDatabase_set_cec_gamma_r, - PyDoc_STR("*float*: Maximum power point temperature coefficient [%/C]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Maximum power point temperature coefficient [%/C]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_gap_spacing", (getter)CECPerformanceModelWithModuleDatabase_get_cec_gap_spacing,(setter)CECPerformanceModelWithModuleDatabase_set_cec_gap_spacing, - PyDoc_STR("*float*: Gap spacing [m]\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Gap spacing [m]\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_heat_transfer", (getter)CECPerformanceModelWithModuleDatabase_get_cec_heat_transfer,(setter)CECPerformanceModelWithModuleDatabase_set_cec_heat_transfer, - PyDoc_STR("*float*: Heat transfer dimensions\n\n*Options*: 0=module,1=array\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Heat transfer dimensions\n\n**Options:**\n0=module,1=array\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_height", (getter)CECPerformanceModelWithModuleDatabase_get_cec_height,(setter)CECPerformanceModelWithModuleDatabase_set_cec_height, - PyDoc_STR("*float*: Array mounting height\n\n*Options*: 0=one story,1=two story\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Array mounting height\n\n**Options:**\n0=one story,1=two story\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_i_l_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_i_l_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_i_l_ref, - PyDoc_STR("*float*: Light current [A]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Light current [A]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_i_mp_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_i_mp_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_i_mp_ref, - PyDoc_STR("*float*: Maximum power point current [A]\n\n*Required*: True if module_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum power point current [A]\n\n**Required:**\nRequired if module_model=1\n\nThe value of the following variables depends on ``cec_i_mp_ref``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"cec_i_o_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_i_o_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_i_o_ref, - PyDoc_STR("*float*: Saturation current [A]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Saturation current [A]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_i_sc_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_i_sc_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_i_sc_ref, - PyDoc_STR("*float*: Short circuit current [A]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Short circuit current [A]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_is_bifacial", (getter)CECPerformanceModelWithModuleDatabase_get_cec_is_bifacial,(setter)CECPerformanceModelWithModuleDatabase_set_cec_is_bifacial, - PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_module_length", (getter)CECPerformanceModelWithModuleDatabase_get_cec_module_length,(setter)CECPerformanceModelWithModuleDatabase_set_cec_module_length, - PyDoc_STR("*float*: Module height [m]\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - cec_area\n\t - cec_module_width\n"), + PyDoc_STR("*float*: Module height [m]\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1\n\nThe value of ``cec_module_length`` depends on the following variables:\n\n\t - cec_area\n\t - cec_module_width\n"), NULL}, {"cec_module_width", (getter)CECPerformanceModelWithModuleDatabase_get_cec_module_width,(setter)CECPerformanceModelWithModuleDatabase_set_cec_module_width, - PyDoc_STR("*float*: Module width [m]\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - cec_module_length\n"), + PyDoc_STR("*float*: Module width [m]\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1\n\nThe value of the following variables depends on ``cec_module_width``:\n\n\t - cec_module_length\n"), NULL}, {"cec_mounting_config", (getter)CECPerformanceModelWithModuleDatabase_get_cec_mounting_config,(setter)CECPerformanceModelWithModuleDatabase_set_cec_mounting_config, - PyDoc_STR("*float*: Mounting configuration\n\n*Options*: 0=rack,1=flush,2=integrated,3=gap\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Mounting configuration\n\n**Options:**\n0=rack,1=flush,2=integrated,3=gap\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_mounting_orientation", (getter)CECPerformanceModelWithModuleDatabase_get_cec_mounting_orientation,(setter)CECPerformanceModelWithModuleDatabase_set_cec_mounting_orientation, - PyDoc_STR("*float*: Mounting structure orientation\n\n*Options*: 0=do not impede flow,1=vertical supports,2=horizontal supports\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: True if module_model=1&cec_temp_corr_mode=1"), + PyDoc_STR("*float*: Mounting structure orientation\n\n**Options:**\n0=do not impede flow,1=vertical supports,2=horizontal supports\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nRequired if module_model=1&cec_temp_corr_mode=1"), NULL}, {"cec_n_s", (getter)CECPerformanceModelWithModuleDatabase_get_cec_n_s,(setter)CECPerformanceModelWithModuleDatabase_set_cec_n_s, - PyDoc_STR("*float*: Number of cells in series\n\n*Constraints*: POSITIVE\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Number of cells in series\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_r_s", (getter)CECPerformanceModelWithModuleDatabase_get_cec_r_s,(setter)CECPerformanceModelWithModuleDatabase_set_cec_r_s, - PyDoc_STR("*float*: Series resistance [ohm]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Series resistance [ohm]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_r_sh_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_r_sh_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_r_sh_ref, - PyDoc_STR("*float*: Shunt resistance [ohm]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Shunt resistance [ohm]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_standoff", (getter)CECPerformanceModelWithModuleDatabase_get_cec_standoff,(setter)CECPerformanceModelWithModuleDatabase_set_cec_standoff, - PyDoc_STR("*float*: Standoff mode\n\n*Options*: 0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Standoff mode\n\n**Options:**\n0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_t_noct", (getter)CECPerformanceModelWithModuleDatabase_get_cec_t_noct,(setter)CECPerformanceModelWithModuleDatabase_set_cec_t_noct, - PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_temp_corr_mode", (getter)CECPerformanceModelWithModuleDatabase_get_cec_temp_corr_mode,(setter)CECPerformanceModelWithModuleDatabase_set_cec_temp_corr_mode, - PyDoc_STR("*float*: Cell temperature model selection\n\n*Options*: 0=noct,1=mc\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Cell temperature model selection\n\n**Options:**\n0=noct,1=mc\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_transient_thermal_model_unit_mass", (getter)CECPerformanceModelWithModuleDatabase_get_cec_transient_thermal_model_unit_mass,(setter)CECPerformanceModelWithModuleDatabase_set_cec_transient_thermal_model_unit_mass, - PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n*Constraints*: POSITIVE\n\n*Required*: True if module_model=1"), + PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nRequired if module_model=1"), NULL}, {"cec_v_mp_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_v_mp_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_v_mp_ref, - PyDoc_STR("*float*: Maximum power point voltage [V]\n\n*Required*: True if module_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum power point voltage [V]\n\n**Required:**\nRequired if module_model=1\n\nThe value of the following variables depends on ``cec_v_mp_ref``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"cec_v_oc_ref", (getter)CECPerformanceModelWithModuleDatabase_get_cec_v_oc_ref,(setter)CECPerformanceModelWithModuleDatabase_set_cec_v_oc_ref, - PyDoc_STR("*float*: Open circuit voltage [V]\n\n*Required*: True if module_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Open circuit voltage [V]\n\n**Required:**\nRequired if module_model=1\n\nThe value of the following variables depends on ``cec_v_oc_ref``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -4199,11 +4199,11 @@ CECPerformanceModelWithUserEnteredSpecifications_export(VarGroupObject *self, Py static PyMethodDef CECPerformanceModelWithUserEnteredSpecifications_methods[] = { {"assign", (PyCFunction)CECPerformanceModelWithUserEnteredSpecifications_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CECPerformanceModelWithUserEnteredSpecifications_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CECPerformanceModelWithUserEnteredSpecifications_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CECPerformanceModelWithUserEnteredSpecifications_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CECPerformanceModelWithUserEnteredSpecifications_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CECPerformanceModelWithUserEnteredSpecifications_vals = { var: val, ...}``")}, {"export", (PyCFunction)CECPerformanceModelWithUserEnteredSpecifications_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4425,58 +4425,58 @@ CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_voc(VarGroupObject * static PyGetSetDef CECPerformanceModelWithUserEnteredSpecifications_getset[] = { {"sixpar_aisc", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_aisc,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_aisc, - PyDoc_STR("*float*: Short circuit current temperature coefficient [A/C]\n\n*Required*: True if module_model=2\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_isc\n"), + PyDoc_STR("*float*: Short circuit current temperature coefficient [A/C]\n\n**Required:**\nRequired if module_model=2\n\nThe value of ``sixpar_aisc`` depends on the following variables:\n\n\t - 6par_isc\n"), NULL}, {"sixpar_area", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_area,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_area, - PyDoc_STR("*float*: Module area [m2]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Module area [m2]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_bifacial_ground_clearance_height", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_bifacial_ground_clearance_height,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_bifacial_ground_clearance_height, - PyDoc_STR("*float*: Module ground clearance height [m]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Module ground clearance height [m]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_bifacial_transmission_factor", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_bifacial_transmission_factor,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_bifacial_transmission_factor, - PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_bifaciality", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_bifaciality,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_bifaciality, - PyDoc_STR("*float*: Bifaciality factor [%]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Bifaciality factor [%]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_bvoc", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_bvoc,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_bvoc, - PyDoc_STR("*float*: Open circuit voltage temperature coefficient [V/C]\n\n*Required*: True if module_model=2\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_voc\n"), + PyDoc_STR("*float*: Open circuit voltage temperature coefficient [V/C]\n\n**Required:**\nRequired if module_model=2\n\nThe value of ``sixpar_bvoc`` depends on the following variables:\n\n\t - 6par_voc\n"), NULL}, {"sixpar_celltech", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_celltech,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_celltech, - PyDoc_STR("*float*: Solar cell technology type\n\n*Options*: monoSi=0,multiSi=1,CdTe=2,CIS=3,CIGS=4,Amorphous=5\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Solar cell technology type\n\n**Options:**\nmonoSi=0,multiSi=1,CdTe=2,CIS=3,CIGS=4,Amorphous=5\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_gpmp", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_gpmp,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_gpmp, - PyDoc_STR("*float*: Maximum power point temperature coefficient [%/C]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Maximum power point temperature coefficient [%/C]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_imp", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_imp,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_imp, - PyDoc_STR("*float*: Imp [A]\n\n*Required*: True if module_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Imp [A]\n\n**Required:**\nRequired if module_model=2\n\nThe value of the following variables depends on ``sixpar_imp``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"sixpar_is_bifacial", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_is_bifacial,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_is_bifacial, - PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_isc", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_isc,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_isc, - PyDoc_STR("*float*: Isc [A]\n\n*Required*: True if module_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - 6par_aisc\n"), + PyDoc_STR("*float*: Isc [A]\n\n**Required:**\nRequired if module_model=2\n\nThe value of the following variables depends on ``sixpar_isc``:\n\n\t - 6par_aisc\n"), NULL}, {"sixpar_mounting", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_mounting,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_mounting, - PyDoc_STR("*float*: Array mounting height\n\n*Options*: 0=one story,1=two story\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Array mounting height\n\n**Options:**\n0=one story,1=two story\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_nser", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_nser,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_nser, - PyDoc_STR("*float*: Nseries\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Nseries\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_standoff", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_standoff,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_standoff, - PyDoc_STR("*float*: Standoff mode\n\n*Options*: 0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Standoff mode\n\n**Options:**\n0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_tnoct", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_tnoct,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_tnoct, - PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_transient_thermal_model_unit_mass", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_transient_thermal_model_unit_mass,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_transient_thermal_model_unit_mass, - PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n*Required*: True if module_model=2"), + PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n**Required:**\nRequired if module_model=2"), NULL}, {"sixpar_vmp", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_vmp,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_vmp, - PyDoc_STR("*float*: Maximum power point voltage [V]\n\n*Required*: True if module_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum power point voltage [V]\n\n**Required:**\nRequired if module_model=2\n\nThe value of the following variables depends on ``sixpar_vmp``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"sixpar_voc", (getter)CECPerformanceModelWithUserEnteredSpecifications_get_sixpar_voc,(setter)CECPerformanceModelWithUserEnteredSpecifications_set_sixpar_voc, - PyDoc_STR("*float*: Voc [V]\n\n*Required*: True if module_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - 6par_bvoc\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Voc [V]\n\n**Required:**\nRequired if module_model=2\n\nThe value of the following variables depends on ``sixpar_voc``:\n\n\t - 6par_bvoc\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -4591,11 +4591,11 @@ SandiaPVArrayPerformanceModelWithModuleDatabase_export(VarGroupObject *self, PyO static PyMethodDef SandiaPVArrayPerformanceModelWithModuleDatabase_methods[] = { {"assign", (PyCFunction)SandiaPVArrayPerformanceModelWithModuleDatabase_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SandiaPVArrayPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SandiaPVArrayPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SandiaPVArrayPerformanceModelWithModuleDatabase_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SandiaPVArrayPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SandiaPVArrayPerformanceModelWithModuleDatabase_vals = { var: val, ...}``")}, {"export", (PyCFunction)SandiaPVArrayPerformanceModelWithModuleDatabase_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5117,133 +5117,133 @@ SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_voco(VarGroupObject *sel static PyGetSetDef SandiaPVArrayPerformanceModelWithModuleDatabase_getset[] = { {"snl_a", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a, - PyDoc_STR("*float*: Temperature coefficient a\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Temperature coefficient a\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_a0", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a0,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a0, - PyDoc_STR("*float*: Air mass polynomial coeff 0\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass polynomial coeff 0\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a0``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_a1", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a1,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a1, - PyDoc_STR("*float*: Air mass polynomial coeff 1\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass polynomial coeff 1\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a1``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_a2", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a2,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a2, - PyDoc_STR("*float*: Air mass polynomial coeff 2\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass polynomial coeff 2\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a2``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_a3", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a3,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a3, - PyDoc_STR("*float*: Air mass polynomial coeff 3\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass polynomial coeff 3\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a3``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_a4", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_a4,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_a4, - PyDoc_STR("*float*: Air mass polynomial coeff 4\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Air mass polynomial coeff 4\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_a4``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_aimp", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_aimp,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_aimp, - PyDoc_STR("*float*: Max power point current temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Max power point current temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_aimp``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_aisc", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_aisc,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_aisc, - PyDoc_STR("*float*: Short circuit current temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Short circuit current temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_aisc``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_area", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_area,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_area, - PyDoc_STR("*float*: Module area\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Module area\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_area``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b, - PyDoc_STR("*float*: Temperature coefficient b\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Temperature coefficient b\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b0", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b0,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b0, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 0\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 0\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b0``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b1", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b1,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b1, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 1\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 1\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b1``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b2", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b2,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b2, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 2\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 2\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b2``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b3", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b3,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b3, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 3\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 3\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b3``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b4", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b4,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b4, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 4\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 4\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b4``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_b5", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_b5,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_b5, - PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 5\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Incidence angle modifier polynomial coeff 5\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_b5``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_bvmpo", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_bvmpo,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_bvmpo, - PyDoc_STR("*float*: Max power point voltage temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Max power point voltage temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_bvmpo``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_bvoco", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_bvoco,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_bvoco, - PyDoc_STR("*float*: Open circuit voltage temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Open circuit voltage temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_bvoco``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_c0", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c0,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c0, - PyDoc_STR("*float*: C0\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: C0\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_c0``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_c1", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c1,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c1, - PyDoc_STR("*float*: C1\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: C1\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_c1``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_c2", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c2,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c2, - PyDoc_STR("*float*: C2\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: C2\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_c2``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_c3", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c3,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c3, - PyDoc_STR("*float*: C3\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: C3\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_c3``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_c4", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c4,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c4, - PyDoc_STR("*float*: C4\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: C4\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_c5", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c5,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c5, - PyDoc_STR("*float*: C5\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: C5\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_c6", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c6,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c6, - PyDoc_STR("*float*: C6\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: C6\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_c7", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_c7,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_c7, - PyDoc_STR("*float*: C7\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: C7\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_dtc", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_dtc,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_dtc, - PyDoc_STR("*float*: Temperature coefficient dT\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Temperature coefficient dT\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_dtc``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_fd", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_fd,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_fd, - PyDoc_STR("*float*: Diffuse fraction\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Diffuse fraction\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_fd``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_impo", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_impo,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_impo, - PyDoc_STR("*float*: Max power point current\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Max power point current\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_impo``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_isco", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_isco,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_isco, - PyDoc_STR("*float*: Short circuit current\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Short circuit current\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_isco``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_ixo", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_ixo,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_ixo, - PyDoc_STR("*float*: Ix midpoint current\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: Ix midpoint current\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_ixxo", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_ixxo,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_ixxo, - PyDoc_STR("*float*: Ixx midpoint current\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: Ixx midpoint current\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_mbvmp", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_mbvmp,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_mbvmp, - PyDoc_STR("*float*: Irradiance dependence of Vmp temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance dependence of Vmp temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_mbvmp``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_mbvoc", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_mbvoc,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_mbvoc, - PyDoc_STR("*float*: Irradiance dependence of Voc temperature coefficient\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Irradiance dependence of Voc temperature coefficient\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_mbvoc``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_module_structure", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_module_structure,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_module_structure, - PyDoc_STR("*float*: Module and mounting structure configuration\n\n*Options*: 0=Use Database Values,1=glass/cell/polymer sheet-open rack,2=glass/cell/glass-open rack,3=polymer/thin film/steel-open rack,4=Insulated back BIPV,5=close roof mount,6=user-defined\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Module and mounting structure configuration\n\n**Options:**\n0=Use Database Values,1=glass/cell/polymer sheet-open rack,2=glass/cell/glass-open rack,3=polymer/thin film/steel-open rack,4=Insulated back BIPV,5=close roof mount,6=user-defined\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_module_structure``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_n", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_n,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_n, - PyDoc_STR("*float*: Diode factor\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Diode factor\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_n``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_ref_a", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_ref_a,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_ref_a, - PyDoc_STR("*float*: User-specified a\n\n*Required*: True if module_model=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), + PyDoc_STR("*float*: User-specified a\n\n**Required:**\nRequired if module_model=3\n\nThe value of ``snl_ref_a`` depends on the following variables:\n\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), NULL}, {"snl_ref_b", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_ref_b,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_ref_b, - PyDoc_STR("*float*: User-specified b\n\n*Required*: True if module_model=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), + PyDoc_STR("*float*: User-specified b\n\n**Required:**\nRequired if module_model=3\n\nThe value of ``snl_ref_b`` depends on the following variables:\n\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), NULL}, {"snl_ref_dT", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_ref_dT,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_ref_dT, - PyDoc_STR("*float*: User-specified dT\n\n*Required*: True if module_model=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), + PyDoc_STR("*float*: User-specified dT\n\n**Required:**\nRequired if module_model=3\n\nThe value of ``snl_ref_dT`` depends on the following variables:\n\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n"), NULL}, {"snl_series_cells", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_series_cells,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_series_cells, - PyDoc_STR("*float*: Number of cells in series\n\n*Constraints*: INTEGER\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Number of cells in series\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_series_cells``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_transient_thermal_model_unit_mass", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_transient_thermal_model_unit_mass,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_transient_thermal_model_unit_mass, - PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n*Required*: True if module_model=3"), + PyDoc_STR("*float*: Module unit mass [kg/m^2]\n\n**Required:**\nRequired if module_model=3"), NULL}, {"snl_vmpo", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_vmpo,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_vmpo, - PyDoc_STR("*float*: Max power point voltage\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Max power point voltage\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_vmpo``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"snl_voco", (getter)SandiaPVArrayPerformanceModelWithModuleDatabase_get_snl_voco,(setter)SandiaPVArrayPerformanceModelWithModuleDatabase_set_snl_voco, - PyDoc_STR("*float*: Open circuit voltage\n\n*Required*: True if module_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Open circuit voltage\n\n**Required:**\nRequired if module_model=3\n\nThe value of the following variables depends on ``snl_voco``:\n\n\t - inverter_count\n\t - snl_ref_a\n\t - snl_ref_b\n\t - snl_ref_dT\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5358,11 +5358,11 @@ IEC61853SingleDiodeModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef IEC61853SingleDiodeModel_methods[] = { {"assign", (PyCFunction)IEC61853SingleDiodeModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``IEC61853SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``IEC61853SingleDiodeModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)IEC61853SingleDiodeModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``IEC61853SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``IEC61853SingleDiodeModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)IEC61853SingleDiodeModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5680,82 +5680,82 @@ IEC61853SingleDiodeModel_set_sd11par_tnoct(VarGroupObject *self, PyObject *value static PyGetSetDef IEC61853SingleDiodeModel_getset[] = { {"sd11par_AMa0", (getter)IEC61853SingleDiodeModel_get_sd11par_AMa0,(setter)IEC61853SingleDiodeModel_set_sd11par_AMa0, - PyDoc_STR("*float*: Air mass modifier coeff 0\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Air mass modifier coeff 0\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_AMa1", (getter)IEC61853SingleDiodeModel_get_sd11par_AMa1,(setter)IEC61853SingleDiodeModel_set_sd11par_AMa1, - PyDoc_STR("*float*: Air mass modifier coeff 1\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Air mass modifier coeff 1\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_AMa2", (getter)IEC61853SingleDiodeModel_get_sd11par_AMa2,(setter)IEC61853SingleDiodeModel_set_sd11par_AMa2, - PyDoc_STR("*float*: Air mass modifier coeff 2\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Air mass modifier coeff 2\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_AMa3", (getter)IEC61853SingleDiodeModel_get_sd11par_AMa3,(setter)IEC61853SingleDiodeModel_set_sd11par_AMa3, - PyDoc_STR("*float*: Air mass modifier coeff 3\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Air mass modifier coeff 3\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_AMa4", (getter)IEC61853SingleDiodeModel_get_sd11par_AMa4,(setter)IEC61853SingleDiodeModel_set_sd11par_AMa4, - PyDoc_STR("*float*: Air mass modifier coeff 4\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Air mass modifier coeff 4\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Egref", (getter)IEC61853SingleDiodeModel_get_sd11par_Egref,(setter)IEC61853SingleDiodeModel_set_sd11par_Egref, - PyDoc_STR("*float*: Bandgap voltage [eV]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Bandgap voltage [eV]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Il", (getter)IEC61853SingleDiodeModel_get_sd11par_Il,(setter)IEC61853SingleDiodeModel_set_sd11par_Il, - PyDoc_STR("*float*: Light current [A]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Light current [A]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Imp0", (getter)IEC61853SingleDiodeModel_get_sd11par_Imp0,(setter)IEC61853SingleDiodeModel_set_sd11par_Imp0, - PyDoc_STR("*float*: Imp (STC) [A]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Imp (STC) [A]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Io", (getter)IEC61853SingleDiodeModel_get_sd11par_Io,(setter)IEC61853SingleDiodeModel_set_sd11par_Io, - PyDoc_STR("*float*: Saturation current [A]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Saturation current [A]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Isc0", (getter)IEC61853SingleDiodeModel_get_sd11par_Isc0,(setter)IEC61853SingleDiodeModel_set_sd11par_Isc0, - PyDoc_STR("*float*: Isc (STC) [A]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Isc (STC) [A]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_Vmp0", (getter)IEC61853SingleDiodeModel_get_sd11par_Vmp0,(setter)IEC61853SingleDiodeModel_set_sd11par_Vmp0, - PyDoc_STR("*float*: Vmp (STC) [V]\n\n*Required*: True if module_model=4\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Vmp (STC) [V]\n\n**Required:**\nRequired if module_model=4\n\nThe value of the following variables depends on ``sd11par_Vmp0``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"sd11par_Voc0", (getter)IEC61853SingleDiodeModel_get_sd11par_Voc0,(setter)IEC61853SingleDiodeModel_set_sd11par_Voc0, - PyDoc_STR("*float*: Voc (STC) [V]\n\n*Required*: True if module_model=4\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Voc (STC) [V]\n\n**Required:**\nRequired if module_model=4\n\nThe value of the following variables depends on ``sd11par_Voc0``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"sd11par_alphaIsc", (getter)IEC61853SingleDiodeModel_get_sd11par_alphaIsc,(setter)IEC61853SingleDiodeModel_set_sd11par_alphaIsc, - PyDoc_STR("*float*: Short curcuit current temperature coefficient [A/C]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Short curcuit current temperature coefficient [A/C]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_area", (getter)IEC61853SingleDiodeModel_get_sd11par_area,(setter)IEC61853SingleDiodeModel_set_sd11par_area, - PyDoc_STR("*float*: Module area [m2]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Module area [m2]\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_c1", (getter)IEC61853SingleDiodeModel_get_sd11par_c1,(setter)IEC61853SingleDiodeModel_set_sd11par_c1, - PyDoc_STR("*float*: Rsh fit parameter 1\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rsh fit parameter 1\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_c2", (getter)IEC61853SingleDiodeModel_get_sd11par_c2,(setter)IEC61853SingleDiodeModel_set_sd11par_c2, - PyDoc_STR("*float*: Rsh fit parameter 2\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rsh fit parameter 2\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_c3", (getter)IEC61853SingleDiodeModel_get_sd11par_c3,(setter)IEC61853SingleDiodeModel_set_sd11par_c3, - PyDoc_STR("*float*: Rsh fit parameter 3\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rsh fit parameter 3\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_d1", (getter)IEC61853SingleDiodeModel_get_sd11par_d1,(setter)IEC61853SingleDiodeModel_set_sd11par_d1, - PyDoc_STR("*float*: Rs fit parameter 1\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rs fit parameter 1\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_d2", (getter)IEC61853SingleDiodeModel_get_sd11par_d2,(setter)IEC61853SingleDiodeModel_set_sd11par_d2, - PyDoc_STR("*float*: Rs fit parameter 2\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rs fit parameter 2\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_d3", (getter)IEC61853SingleDiodeModel_get_sd11par_d3,(setter)IEC61853SingleDiodeModel_set_sd11par_d3, - PyDoc_STR("*float*: Rs fit parameter 3\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Rs fit parameter 3\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_glass", (getter)IEC61853SingleDiodeModel_get_sd11par_glass,(setter)IEC61853SingleDiodeModel_set_sd11par_glass, - PyDoc_STR("*float*: Module cover glass type\n\n*Options*: 0=normal,1=AR glass\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Module cover glass type\n\n**Options:**\n0=normal,1=AR glass\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_mounting", (getter)IEC61853SingleDiodeModel_get_sd11par_mounting,(setter)IEC61853SingleDiodeModel_set_sd11par_mounting, - PyDoc_STR("*float*: Array mounting height\n\n*Options*: 0=one story,1=two story\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Array mounting height\n\n**Options:**\n0=one story,1=two story\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_n", (getter)IEC61853SingleDiodeModel_get_sd11par_n,(setter)IEC61853SingleDiodeModel_set_sd11par_n, - PyDoc_STR("*float*: Diode nonideality factor\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Diode nonideality factor\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_nser", (getter)IEC61853SingleDiodeModel_get_sd11par_nser,(setter)IEC61853SingleDiodeModel_set_sd11par_nser, - PyDoc_STR("*float*: Nseries\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Nseries\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_standoff", (getter)IEC61853SingleDiodeModel_get_sd11par_standoff,(setter)IEC61853SingleDiodeModel_set_sd11par_standoff, - PyDoc_STR("*float*: Standoff mode\n\n*Options*: 0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Standoff mode\n\n**Options:**\n0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nRequired if module_model=4"), NULL}, {"sd11par_tnoct", (getter)IEC61853SingleDiodeModel_get_sd11par_tnoct,(setter)IEC61853SingleDiodeModel_set_sd11par_tnoct, - PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n*Required*: True if module_model=4"), + PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n**Required:**\nRequired if module_model=4"), NULL}, {NULL} /* Sentinel */ }; @@ -5870,11 +5870,11 @@ MermoudLejeuneSingleDiodeModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef MermoudLejeuneSingleDiodeModel_methods[] = { {"assign", (PyCFunction)MermoudLejeuneSingleDiodeModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``MermoudLejeuneSingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``MermoudLejeuneSingleDiodeModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)MermoudLejeuneSingleDiodeModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``MermoudLejeuneSingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``MermoudLejeuneSingleDiodeModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)MermoudLejeuneSingleDiodeModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6540,169 +6540,169 @@ MermoudLejeuneSingleDiodeModel_set_mlm_n_0(VarGroupObject *self, PyObject *value static PyGetSetDef MermoudLejeuneSingleDiodeModel_getset[] = { {"mlm_AM_c_lp0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp0, - PyDoc_STR("*float*: Coefficient 0 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 0 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_lp1", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp1,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp1, - PyDoc_STR("*float*: Coefficient 1 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 1 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_lp2", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp2,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp2, - PyDoc_STR("*float*: Coefficient 2 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 2 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_lp3", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp3,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp3, - PyDoc_STR("*float*: Coefficient 3 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 3 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_lp4", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp4,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp4, - PyDoc_STR("*float*: Coefficient 4 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 4 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_lp5", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_lp5,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_lp5, - PyDoc_STR("*float*: Coefficient 5 for Lee/Panchula Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 5 for Lee/Panchula Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_sa0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_sa0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_sa0, - PyDoc_STR("*float*: Coefficient 0 for Sandia Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 0 for Sandia Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_sa1", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_sa1,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_sa1, - PyDoc_STR("*float*: Coefficient 1 for Sandia Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 1 for Sandia Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_sa2", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_sa2,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_sa2, - PyDoc_STR("*float*: Coefficient 2 for Sandia Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 2 for Sandia Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_sa3", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_sa3,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_sa3, - PyDoc_STR("*float*: Coefficient 3 for Sandia Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 3 for Sandia Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_c_sa4", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_c_sa4,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_c_sa4, - PyDoc_STR("*float*: Coefficient 4 for Sandia Air Mass Modifier [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient 4 for Sandia Air Mass Modifier [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_AM_mode", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_AM_mode,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_AM_mode, - PyDoc_STR("*float*: Air-mass modifier mode [-]\n\n*Options*: 1: Do not consider AM effects, 2: Use Sandia polynomial [corr=f(AM)], 3: Use standard coefficients from DeSoto model [corr=f(AM)], 4: Use First Solar polynomial [corr=f(AM, p_wat)]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Air-mass modifier mode [-]\n\n**Options:**\n1: Do not consider AM effects, 2: Use Sandia polynomial [corr=f(AM)], 3: Use standard coefficients from DeSoto model [corr=f(AM)], 4: Use First Solar polynomial [corr=f(AM, p_wat)]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_D2MuTau", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_D2MuTau,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_D2MuTau, - PyDoc_STR("*float*: Coefficient for recombination losses [V]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Coefficient for recombination losses [V]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_E_g", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_E_g,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_E_g, - PyDoc_STR("*float*: Reference bandgap energy [eV]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Reference bandgap energy [eV]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_as", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_as,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_as, - PyDoc_STR("*float*: ASHRAE incidence modifier coefficient b_0 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: ASHRAE incidence modifier coefficient b_0 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_cs_iamValue", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_cs_iamValue,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_cs_iamValue, - PyDoc_STR("*sequence*: Spline IAM - IAM values [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*sequence*: Spline IAM - IAM values [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_cs_incAngle", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_cs_incAngle,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_cs_incAngle, - PyDoc_STR("*sequence*: Spline IAM - Incidence angles [deg]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*sequence*: Spline IAM - Incidence angles [deg]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa0, - PyDoc_STR("*float*: Sandia IAM coefficient 0 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 0 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa1", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa1,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa1, - PyDoc_STR("*float*: Sandia IAM coefficient 1 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 1 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa2", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa2,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa2, - PyDoc_STR("*float*: Sandia IAM coefficient 2 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 2 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa3", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa3,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa3, - PyDoc_STR("*float*: Sandia IAM coefficient 3 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 3 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa4", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa4,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa4, - PyDoc_STR("*float*: Sandia IAM coefficient 4 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 4 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_c_sa5", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_c_sa5,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_c_sa5, - PyDoc_STR("*float*: Sandia IAM coefficient 5 [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Sandia IAM coefficient 5 [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_IAM_mode", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_IAM_mode,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_IAM_mode, - PyDoc_STR("*float*: Incidence Angle Modifier mode [-]\n\n*Info*: 1: Use ASHRAE formula, 2: Use Sandia polynomial, 3: Use cubic spline with user-supplied data\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Incidence Angle Modifier mode [-]\n\n**Info:**\n1: Use ASHRAE formula, 2: Use Sandia polynomial, 3: Use cubic spline with user-supplied data\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_I_mp_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_I_mp_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_I_mp_ref, - PyDoc_STR("*float*: I_mp at STC [A]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: I_mp at STC [A]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_I_sc_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_I_sc_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_I_sc_ref, - PyDoc_STR("*float*: I_sc at STC [A]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: I_sc at STC [A]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_Length", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_Length,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_Length, - PyDoc_STR("*float*: Module length (long side) [m]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Module length (long side) [m]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_N_diodes", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_N_diodes,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_N_diodes, - PyDoc_STR("*float*: Number of diodes [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Number of diodes [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_N_parallel", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_N_parallel,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_N_parallel, - PyDoc_STR("*float*: Number of cells in parallel [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Number of cells in parallel [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_N_series", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_N_series,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_N_series, - PyDoc_STR("*float*: Number of cells in series [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Number of cells in series [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_R_s", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_R_s,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_R_s, - PyDoc_STR("*float*: Series resistance [V/A]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Series resistance [V/A]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_R_sh0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_R_sh0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_R_sh0, - PyDoc_STR("*float*: Rsh,0 [V/A]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Rsh,0 [V/A]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_R_shexp", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_R_shexp,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_R_shexp, - PyDoc_STR("*float*: Rsh exponential coefficient [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Rsh exponential coefficient [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_R_shref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_R_shref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_R_shref, - PyDoc_STR("*float*: Reference shunt resistance [V/A]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Reference shunt resistance [V/A]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_S_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_S_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_S_ref, - PyDoc_STR("*float*: Reference irradiance (Typically 1000W/m²) [W/m²]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Reference irradiance (Typically 1000W/m²) [W/m²]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_fa_U0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_fa_U0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_fa_U0, - PyDoc_STR("*float*: Extended Faiman model U_0 [W/m²K]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Extended Faiman model U_0 [W/m²K]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_fa_U1", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_fa_U1,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_fa_U1, - PyDoc_STR("*float*: Extended Faiman model U_1 [W/m³sK]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Extended Faiman model U_1 [W/m³sK]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_fa_alpha", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_fa_alpha,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_fa_alpha, - PyDoc_STR("*float*: Extended Faiman model absorptivity [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Extended Faiman model absorptivity [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_no_mounting", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_no_mounting,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_no_mounting, - PyDoc_STR("*float*: NOCT Array mounting height [-]\n\n*Options*: 0=one story,1=two story\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: NOCT Array mounting height [-]\n\n**Options:**\n0=one story,1=two story\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_no_standoff", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_no_standoff,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_no_standoff, - PyDoc_STR("*float*: NOCT standoff mode [-]\n\n*Options*: 0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: NOCT standoff mode [-]\n\n**Options:**\n0=bipv,1=>3.5in,2=2.5-3.5in,3=1.5-2.5in,4=0.5-1.5in,5=<0.5in,6=ground/rack\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_c_no_tnoct", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_c_no_tnoct,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_c_no_tnoct, - PyDoc_STR("*float*: NOCT cell temperature [°C]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: NOCT cell temperature [°C]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_mode", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_mode,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_mode, - PyDoc_STR("*float*: Cell temperature model mode [-]\n\n*Info*: 1: NOCT\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Cell temperature model mode [-]\n\n**Info:**\n1: NOCT\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_T_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_T_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_T_ref, - PyDoc_STR("*float*: Reference temperature (Typically 25°C) [°C]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Reference temperature (Typically 25°C) [°C]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_V_mp_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_V_mp_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_V_mp_ref, - PyDoc_STR("*float*: V_mp at STC [V]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: V_mp at STC [V]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_V_oc_ref", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_V_oc_ref,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_V_oc_ref, - PyDoc_STR("*float*: V_oc at STC [V]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: V_oc at STC [V]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_Width", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_Width,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_Width, - PyDoc_STR("*float*: Module width (short side) [m]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Module width (short side) [m]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_alpha_isc", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_alpha_isc,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_alpha_isc, - PyDoc_STR("*float*: Temperature coefficient for I_sc [A/K]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Temperature coefficient for I_sc [A/K]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_beta_voc_spec", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_beta_voc_spec,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_beta_voc_spec, - PyDoc_STR("*float*: Temperature coefficient for V_oc [V/K]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Temperature coefficient for V_oc [V/K]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_bifacial_ground_clearance_height", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_bifacial_ground_clearance_height,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_bifacial_ground_clearance_height, - PyDoc_STR("*float*: Module ground clearance height [m]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Module ground clearance height [m]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_bifacial_transmission_factor", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_bifacial_transmission_factor,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_bifacial_transmission_factor, - PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Bifacial transmission factor [0-1]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_bifaciality", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_bifaciality,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_bifaciality, - PyDoc_STR("*float*: Bifaciality factor [%]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Bifaciality factor [%]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_groundRelfectionFraction", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_groundRelfectionFraction,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_groundRelfectionFraction, - PyDoc_STR("*float*: Ground reflection fraction [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Ground reflection fraction [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_is_bifacial", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_is_bifacial,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_is_bifacial, - PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Modules are bifacial [0/1]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_mu_n", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_mu_n,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_mu_n, - PyDoc_STR("*float*: Temperature coefficient of gamma [1/K]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Temperature coefficient of gamma [1/K]\n\n**Required:**\nRequired if module_model=5"), NULL}, {"mlm_n_0", (getter)MermoudLejeuneSingleDiodeModel_get_mlm_n_0,(setter)MermoudLejeuneSingleDiodeModel_set_mlm_n_0, - PyDoc_STR("*float*: Gamma [-]\n\n*Required*: True if module_model=5"), + PyDoc_STR("*float*: Gamma [-]\n\n**Required:**\nRequired if module_model=5"), NULL}, {NULL} /* Sentinel */ }; @@ -6817,11 +6817,11 @@ Inverter_export(VarGroupObject *self, PyObject *args) static PyMethodDef Inverter_methods[] = { {"assign", (PyCFunction)Inverter_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Inverter_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Inverter_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Inverter_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Inverter_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Inverter_vals = { var: val, ...}``")}, {"export", (PyCFunction)Inverter_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6983,43 +6983,43 @@ Inverter_set_mppt_low_inverter(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Inverter_getset[] = { {"inv_cec_cg_eff_cec", (getter)Inverter_get_inv_cec_cg_eff_cec,(setter)Inverter_set_inv_cec_cg_eff_cec, - PyDoc_STR("*float*: Inverter Coefficient Generator CEC Efficiency [%]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inv_cec_cg_c0\n\t - inv_cec_cg_c1\n\t - inv_cec_cg_c2\n\t - inv_cec_cg_c3\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_pdco\n\t - inv_cec_cg_psco\n\t - inv_cec_cg_vdco\n"), + PyDoc_STR("*float*: Inverter Coefficient Generator CEC Efficiency [%]\n\nThe value of ``inv_cec_cg_eff_cec`` depends on the following variables:\n\n\t - inv_cec_cg_c0\n\t - inv_cec_cg_c1\n\t - inv_cec_cg_c2\n\t - inv_cec_cg_c3\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_pdco\n\t - inv_cec_cg_psco\n\t - inv_cec_cg_vdco\n"), NULL}, {"inv_cec_cg_paco", (getter)Inverter_get_inv_cec_cg_paco,(setter)Inverter_set_inv_cec_cg_paco, - PyDoc_STR("*float*: Inverter Coefficient Generator Max AC Power [Wac]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Inverter Coefficient Generator Max AC Power [Wac]\n\nThe value of the following variables depends on ``inv_cec_cg_paco``:\n\n\t - inv_cec_cg_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_ds_eff", (getter)Inverter_get_inv_ds_eff,(setter)Inverter_set_inv_ds_eff, PyDoc_STR("*float*: Inverter Datasheet Efficiency [%]"), NULL}, {"inv_ds_paco", (getter)Inverter_get_inv_ds_paco,(setter)Inverter_set_inv_ds_paco, - PyDoc_STR("*float*: Inverter Datasheet Maximum AC Power [Wac]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Inverter Datasheet Maximum AC Power [Wac]\n\nThe value of the following variables depends on ``inv_ds_paco``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_num_mppt", (getter)Inverter_get_inv_num_mppt,(setter)Inverter_set_inv_num_mppt, - PyDoc_STR("*float*: Number of MPPT inputs\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 1\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inverter_model\n"), + PyDoc_STR("*float*: Number of MPPT inputs\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults.\n\nThe value of ``inv_num_mppt`` depends on the following variables:\n\n\t - inverter_model\n"), NULL}, {"inv_pd_eff", (getter)Inverter_get_inv_pd_eff,(setter)Inverter_set_inv_pd_eff, - PyDoc_STR("*float*: Inverter Partload Efficiency [%]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_pd_pdco\n"), + PyDoc_STR("*float*: Inverter Partload Efficiency [%]\n\nThe value of the following variables depends on ``inv_pd_eff``:\n\n\t - inv_pd_pdco\n"), NULL}, {"inv_pd_paco", (getter)Inverter_get_inv_pd_paco,(setter)Inverter_set_inv_pd_paco, - PyDoc_STR("*float*: Inverter Partload Maximum AC Power [Wac]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_pd_pdco\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Inverter Partload Maximum AC Power [Wac]\n\nThe value of the following variables depends on ``inv_pd_paco``:\n\n\t - inv_pd_pdco\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_snl_eff_cec", (getter)Inverter_get_inv_snl_eff_cec,(setter)Inverter_set_inv_snl_eff_cec, - PyDoc_STR("*float*: Inverter Sandia CEC Efficiency [%]\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inv_snl_c0\n\t - inv_snl_c1\n\t - inv_snl_c2\n\t - inv_snl_c3\n\t - inv_snl_paco\n\t - inv_snl_pdco\n\t - inv_snl_pso\n\t - inv_snl_vdco\n"), + PyDoc_STR("*float*: Inverter Sandia CEC Efficiency [%]\n\nThe value of ``inv_snl_eff_cec`` depends on the following variables:\n\n\t - inv_snl_c0\n\t - inv_snl_c1\n\t - inv_snl_c2\n\t - inv_snl_c3\n\t - inv_snl_paco\n\t - inv_snl_pdco\n\t - inv_snl_pso\n\t - inv_snl_vdco\n"), NULL}, {"inv_snl_paco", (getter)Inverter_get_inv_snl_paco,(setter)Inverter_set_inv_snl_paco, - PyDoc_STR("*float*: Inverter Sandia Maximum AC Power [Wac]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Inverter Sandia Maximum AC Power [Wac]\n\nThe value of the following variables depends on ``inv_snl_paco``:\n\n\t - inv_snl_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inverter_count", (getter)Inverter_get_inverter_count,(setter)Inverter_set_inverter_count, - PyDoc_STR("*float*: Number of inverters\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), + PyDoc_STR("*float*: Number of inverters\n\nThe value of ``inverter_count`` depends on the following variables:\n\n\t - 6par_imp\n\t - 6par_vmp\n\t - 6par_voc\n\t - cec_i_mp_ref\n\t - cec_v_mp_ref\n\t - cec_v_oc_ref\n\t - inv_cec_cg_paco\n\t - inv_cec_cg_vdcmax\n\t - inv_ds_paco\n\t - inv_ds_vdcmax\n\t - inv_pd_paco\n\t - inv_pd_vdcmax\n\t - inv_snl_paco\n\t - inv_snl_vdcmax\n\t - inverter_model\n\t - module_model\n\t - sd11par_Vmp0\n\t - sd11par_Voc0\n\t - snl_a\n\t - snl_a0\n\t - snl_a1\n\t - snl_a2\n\t - snl_a3\n\t - snl_a4\n\t - snl_aimp\n\t - snl_aisc\n\t - snl_area\n\t - snl_b\n\t - snl_b0\n\t - snl_b1\n\t - snl_b2\n\t - snl_b3\n\t - snl_b4\n\t - snl_b5\n\t - snl_bvmpo\n\t - snl_bvoco\n\t - snl_c0\n\t - snl_c1\n\t - snl_c2\n\t - snl_c3\n\t - snl_dtc\n\t - snl_fd\n\t - snl_impo\n\t - snl_isco\n\t - snl_mbvmp\n\t - snl_mbvoc\n\t - snl_module_structure\n\t - snl_n\n\t - snl_series_cells\n\t - snl_vmpo\n\t - snl_voco\n\t - spe_area\n\t - spe_eff0\n\t - spe_eff1\n\t - spe_eff2\n\t - spe_eff3\n\t - spe_eff4\n\t - spe_rad0\n\t - spe_rad1\n\t - spe_rad2\n\t - spe_rad3\n\t - spe_rad4\n\t - spe_reference\n\t - spe_vmp\n\t - spe_voc\n"), NULL}, {"inverter_model", (getter)Inverter_get_inverter_model,(setter)Inverter_set_inverter_model, - PyDoc_STR("*float*: Inverter model specifier\n\n*Options*: 0=cec,1=datasheet,2=partload,3=coefficientgenerator,4=PVYield\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_num_mppt\n\t - inverter_count\n\t - mppt_hi_inverter\n\t - mppt_low_inverter\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Inverter model specifier\n\n**Options:**\n0=cec,1=datasheet,2=partload,3=coefficientgenerator,4=PVYield\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``inverter_model``:\n\n\t - inv_num_mppt\n\t - inverter_count\n\t - mppt_hi_inverter\n\t - mppt_low_inverter\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"mppt_hi_inverter", (getter)Inverter_get_mppt_hi_inverter,(setter)Inverter_set_mppt_hi_inverter, - PyDoc_STR("*float*: Maximum inverter MPPT voltage window [Vdc]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inverter_model\n"), + PyDoc_STR("*float*: Maximum inverter MPPT voltage window [Vdc]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``mppt_hi_inverter`` depends on the following variables:\n\n\t - inverter_model\n"), NULL}, {"mppt_low_inverter", (getter)Inverter_get_mppt_low_inverter,(setter)Inverter_set_mppt_low_inverter, - PyDoc_STR("*float*: Minimum inverter MPPT voltage window [Vdc]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inverter_model\n"), + PyDoc_STR("*float*: Minimum inverter MPPT voltage window [Vdc]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``mppt_low_inverter`` depends on the following variables:\n\n\t - inverter_model\n"), NULL}, {NULL} /* Sentinel */ }; @@ -7134,11 +7134,11 @@ InverterCECDatabase_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterCECDatabase_methods[] = { {"assign", (PyCFunction)InverterCECDatabase_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterCECDatabase_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterCECDatabase_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterCECDatabase_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -7276,37 +7276,37 @@ InverterCECDatabase_set_inv_tdc_cec_db(VarGroupObject *self, PyObject *value, vo static PyGetSetDef InverterCECDatabase_getset[] = { {"inv_snl_c0", (getter)InverterCECDatabase_get_inv_snl_c0,(setter)InverterCECDatabase_set_inv_snl_c0, - PyDoc_STR("*float*: Curvature between AC power and DC power at ref [1/W]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: Curvature between AC power and DC power at ref [1/W]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_c0``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_c1", (getter)InverterCECDatabase_get_inv_snl_c1,(setter)InverterCECDatabase_set_inv_snl_c1, - PyDoc_STR("*float*: Coefficient of Pdco variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Pdco variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_c1``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_c2", (getter)InverterCECDatabase_get_inv_snl_c2,(setter)InverterCECDatabase_set_inv_snl_c2, - PyDoc_STR("*float*: Coefficient of Pso variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Pso variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_c2``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_c3", (getter)InverterCECDatabase_get_inv_snl_c3,(setter)InverterCECDatabase_set_inv_snl_c3, - PyDoc_STR("*float*: Coefficient of Co variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Co variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_c3``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_paco", (getter)InverterCECDatabase_get_inv_snl_paco,(setter)InverterCECDatabase_set_inv_snl_paco, - PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_paco``:\n\n\t - inv_snl_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_snl_pdco", (getter)InverterCECDatabase_get_inv_snl_pdco,(setter)InverterCECDatabase_set_inv_snl_pdco, - PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_pdco``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_pnt", (getter)InverterCECDatabase_get_inv_snl_pnt,(setter)InverterCECDatabase_set_inv_snl_pnt, - PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n*Required*: True if inverter_model=0"), + PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n**Required:**\nRequired if inverter_model=0"), NULL}, {"inv_snl_pso", (getter)InverterCECDatabase_get_inv_snl_pso,(setter)InverterCECDatabase_set_inv_snl_pso, - PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_pso``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_snl_vdcmax", (getter)InverterCECDatabase_get_inv_snl_vdcmax,(setter)InverterCECDatabase_set_inv_snl_vdcmax, - PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_vdcmax``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_snl_vdco", (getter)InverterCECDatabase_get_inv_snl_vdco,(setter)InverterCECDatabase_set_inv_snl_vdco, - PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n*Required*: True if inverter_model=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_snl_eff_cec\n"), + PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n**Required:**\nRequired if inverter_model=0\n\nThe value of the following variables depends on ``inv_snl_vdco``:\n\n\t - inv_snl_eff_cec\n"), NULL}, {"inv_tdc_cec_db", (getter)InverterCECDatabase_get_inv_tdc_cec_db,(setter)InverterCECDatabase_set_inv_tdc_cec_db, - PyDoc_STR("*sequence[sequence]*: Temperature derate curves for CEC Database [(Vdc, C, %/C)]\n\n*Required*: True if inverter_model=0"), + PyDoc_STR("*sequence[sequence]*: Temperature derate curves for CEC Database [(Vdc, C, %/C)]\n\n**Required:**\nRequired if inverter_model=0"), NULL}, {NULL} /* Sentinel */ }; @@ -7421,11 +7421,11 @@ InverterCECCoefficientGenerator_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterCECCoefficientGenerator_methods[] = { {"assign", (PyCFunction)InverterCECCoefficientGenerator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterCECCoefficientGenerator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterCECCoefficientGenerator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterCECCoefficientGenerator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterCECCoefficientGenerator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterCECCoefficientGenerator_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterCECCoefficientGenerator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -7563,37 +7563,37 @@ InverterCECCoefficientGenerator_set_inv_tdc_cec_cg(VarGroupObject *self, PyObjec static PyGetSetDef InverterCECCoefficientGenerator_getset[] = { {"inv_cec_cg_c0", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_c0,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_c0, - PyDoc_STR("*float*: Curvature between AC power and DC power at ref [1/W]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: Curvature between AC power and DC power at ref [1/W]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_c0``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_c1", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_c1,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_c1, - PyDoc_STR("*float*: Coefficient of Pdco variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Pdco variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_c1``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_c2", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_c2,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_c2, - PyDoc_STR("*float*: Coefficient of Pso variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Pso variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_c2``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_c3", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_c3,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_c3, - PyDoc_STR("*float*: Coefficient of Co variation with DC input voltage [1/V]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: Coefficient of Co variation with DC input voltage [1/V]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_c3``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_paco", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_paco,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_paco, - PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_paco``:\n\n\t - inv_cec_cg_eff_cec\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_cec_cg_pdco", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_pdco,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_pdco, - PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_pdco``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_pnt", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_pnt,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_pnt, - PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n*Required*: True if inverter_model=3"), + PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n**Required:**\nRequired if inverter_model=3"), NULL}, {"inv_cec_cg_psco", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_psco,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_psco, - PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_psco``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_cec_cg_vdcmax", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_vdcmax,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_vdcmax, - PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_vdcmax``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_cec_cg_vdco", (getter)InverterCECCoefficientGenerator_get_inv_cec_cg_vdco,(setter)InverterCECCoefficientGenerator_set_inv_cec_cg_vdco, - PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n*Required*: True if inverter_model=3\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_cec_cg_eff_cec\n"), + PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n**Required:**\nRequired if inverter_model=3\n\nThe value of the following variables depends on ``inv_cec_cg_vdco``:\n\n\t - inv_cec_cg_eff_cec\n"), NULL}, {"inv_tdc_cec_cg", (getter)InverterCECCoefficientGenerator_get_inv_tdc_cec_cg,(setter)InverterCECCoefficientGenerator_set_inv_tdc_cec_cg, - PyDoc_STR("*sequence[sequence]*: Temperature derate curves for CEC Coef Gen [(Vdc, C, %/C)]\n\n*Required*: True if inverter_model=3"), + PyDoc_STR("*sequence[sequence]*: Temperature derate curves for CEC Coef Gen [(Vdc, C, %/C)]\n\n**Required:**\nRequired if inverter_model=3"), NULL}, {NULL} /* Sentinel */ }; @@ -7708,11 +7708,11 @@ InverterDatasheet_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterDatasheet_methods[] = { {"assign", (PyCFunction)InverterDatasheet_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterDatasheet_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterDatasheet_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterDatasheet_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterDatasheet_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterDatasheet_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterDatasheet_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -7802,25 +7802,25 @@ InverterDatasheet_set_inv_tdc_ds(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef InverterDatasheet_getset[] = { {"inv_ds_eff", (getter)InverterDatasheet_get_inv_ds_eff,(setter)InverterDatasheet_set_inv_ds_eff, - PyDoc_STR("*float*: Weighted or Peak or Nominal Efficiency [Wdc]\n\n*Required*: True if inverter_model=1"), + PyDoc_STR("*float*: Weighted or Peak or Nominal Efficiency [Wdc]\n\n**Required:**\nRequired if inverter_model=1"), NULL}, {"inv_ds_paco", (getter)InverterDatasheet_get_inv_ds_paco,(setter)InverterDatasheet_set_inv_ds_paco, - PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n*Required*: True if inverter_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n**Required:**\nRequired if inverter_model=1\n\nThe value of the following variables depends on ``inv_ds_paco``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_ds_pnt", (getter)InverterDatasheet_get_inv_ds_pnt,(setter)InverterDatasheet_set_inv_ds_pnt, - PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n*Required*: True if inverter_model=1"), + PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n**Required:**\nRequired if inverter_model=1"), NULL}, {"inv_ds_pso", (getter)InverterDatasheet_get_inv_ds_pso,(setter)InverterDatasheet_set_inv_ds_pso, - PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n*Required*: True if inverter_model=1"), + PyDoc_STR("*float*: DC power required to enable the inversion process [Wdc]\n\n**Required:**\nRequired if inverter_model=1"), NULL}, {"inv_ds_vdcmax", (getter)InverterDatasheet_get_inv_ds_vdcmax,(setter)InverterDatasheet_set_inv_ds_vdcmax, - PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n*Required*: True if inverter_model=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n**Required:**\nRequired if inverter_model=1\n\nThe value of the following variables depends on ``inv_ds_vdcmax``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_ds_vdco", (getter)InverterDatasheet_get_inv_ds_vdco,(setter)InverterDatasheet_set_inv_ds_vdco, - PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n*Required*: True if inverter_model=1"), + PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n**Required:**\nRequired if inverter_model=1"), NULL}, {"inv_tdc_ds", (getter)InverterDatasheet_get_inv_tdc_ds,(setter)InverterDatasheet_set_inv_tdc_ds, - PyDoc_STR("*sequence[sequence]*: Temperature derate curves for Inv Datasheet [(Vdc, C, %/C)]\n\n*Required*: True if inverter_model=1"), + PyDoc_STR("*sequence[sequence]*: Temperature derate curves for Inv Datasheet [(Vdc, C, %/C)]\n\n**Required:**\nRequired if inverter_model=1"), NULL}, {NULL} /* Sentinel */ }; @@ -7935,11 +7935,11 @@ InverterPartLoadCurve_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterPartLoadCurve_methods[] = { {"assign", (PyCFunction)InverterPartLoadCurve_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterPartLoadCurve_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterPartLoadCurve_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterPartLoadCurve_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterPartLoadCurve_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterPartLoadCurve_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterPartLoadCurve_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8041,28 +8041,28 @@ InverterPartLoadCurve_set_inv_tdc_plc(VarGroupObject *self, PyObject *value, voi static PyGetSetDef InverterPartLoadCurve_getset[] = { {"inv_pd_efficiency", (getter)InverterPartLoadCurve_get_inv_pd_efficiency,(setter)InverterPartLoadCurve_set_inv_pd_efficiency, - PyDoc_STR("*sequence*: Partload curve efficiency values [%]\n\n*Required*: True if inverter_model=2"), + PyDoc_STR("*sequence*: Partload curve efficiency values [%]\n\n**Required:**\nRequired if inverter_model=2"), NULL}, {"inv_pd_paco", (getter)InverterPartLoadCurve_get_inv_pd_paco,(setter)InverterPartLoadCurve_set_inv_pd_paco, - PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n*Required*: True if inverter_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - inv_pd_pdco\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: AC maximum power rating [Wac]\n\n**Required:**\nRequired if inverter_model=2\n\nThe value of the following variables depends on ``inv_pd_paco``:\n\n\t - inv_pd_pdco\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_pd_partload", (getter)InverterPartLoadCurve_get_inv_pd_partload,(setter)InverterPartLoadCurve_set_inv_pd_partload, - PyDoc_STR("*sequence*: Partload curve partload values [%]\n\n*Required*: True if inverter_model=2"), + PyDoc_STR("*sequence*: Partload curve partload values [%]\n\n**Required:**\nRequired if inverter_model=2"), NULL}, {"inv_pd_pdco", (getter)InverterPartLoadCurve_get_inv_pd_pdco,(setter)InverterPartLoadCurve_set_inv_pd_pdco, - PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n*Required*: True if inverter_model=2\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - inv_pd_eff\n\t - inv_pd_paco\n"), + PyDoc_STR("*float*: DC input power at which AC power rating is achieved [Wdc]\n\n**Required:**\nRequired if inverter_model=2\n\nThe value of ``inv_pd_pdco`` depends on the following variables:\n\n\t - inv_pd_eff\n\t - inv_pd_paco\n"), NULL}, {"inv_pd_pnt", (getter)InverterPartLoadCurve_get_inv_pd_pnt,(setter)InverterPartLoadCurve_set_inv_pd_pnt, - PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n*Required*: True if inverter_model=2"), + PyDoc_STR("*float*: AC power consumed by inverter at night [Wac]\n\n**Required:**\nRequired if inverter_model=2"), NULL}, {"inv_pd_vdcmax", (getter)InverterPartLoadCurve_get_inv_pd_vdcmax,(setter)InverterPartLoadCurve_set_inv_pd_vdcmax, - PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n*Required*: True if inverter_model=2\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Maximum DC input operating voltage [Vdc]\n\n**Required:**\nRequired if inverter_model=2\n\nThe value of the following variables depends on ``inv_pd_vdcmax``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"inv_pd_vdco", (getter)InverterPartLoadCurve_get_inv_pd_vdco,(setter)InverterPartLoadCurve_set_inv_pd_vdco, - PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n*Required*: True if inverter_model=2"), + PyDoc_STR("*float*: DC input voltage for the rated AC power rating [Vdc]\n\n**Required:**\nRequired if inverter_model=2"), NULL}, {"inv_tdc_plc", (getter)InverterPartLoadCurve_get_inv_tdc_plc,(setter)InverterPartLoadCurve_set_inv_tdc_plc, - PyDoc_STR("*sequence[sequence]*: Temperature derate curves for Part Load Curve [(Vdc, C, %/C)]\n\n*Required*: True if inverter_model=2"), + PyDoc_STR("*sequence[sequence]*: Temperature derate curves for Part Load Curve [(Vdc, C, %/C)]\n\n**Required:**\nRequired if inverter_model=2"), NULL}, {NULL} /* Sentinel */ }; @@ -8177,11 +8177,11 @@ InverterMermoudLejeuneModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef InverterMermoudLejeuneModel_methods[] = { {"assign", (PyCFunction)InverterMermoudLejeuneModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``InverterMermoudLejeuneModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``InverterMermoudLejeuneModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)InverterMermoudLejeuneModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``InverterMermoudLejeuneModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``InverterMermoudLejeuneModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)InverterMermoudLejeuneModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8619,112 +8619,112 @@ InverterMermoudLejeuneModel_set_ond_lossRDc(VarGroupObject *self, PyObject *valu static PyGetSetDef InverterMermoudLejeuneModel_getset[] = { {"ond_Aux_Loss", (getter)InverterMermoudLejeuneModel_get_ond_Aux_Loss,(setter)InverterMermoudLejeuneModel_set_ond_Aux_Loss, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_CompPMax", (getter)InverterMermoudLejeuneModel_get_ond_CompPMax,(setter)InverterMermoudLejeuneModel_set_ond_CompPMax, - PyDoc_STR("*str*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*str*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_CompVMax", (getter)InverterMermoudLejeuneModel_get_ond_CompVMax,(setter)InverterMermoudLejeuneModel_set_ond_CompVMax, - PyDoc_STR("*str*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*str*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_IMaxAC", (getter)InverterMermoudLejeuneModel_get_ond_IMaxAC,(setter)InverterMermoudLejeuneModel_set_ond_IMaxAC, - PyDoc_STR("*float*: [A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_IMaxDC", (getter)InverterMermoudLejeuneModel_get_ond_IMaxDC,(setter)InverterMermoudLejeuneModel_set_ond_IMaxDC, - PyDoc_STR("*float*: [A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_INomAC", (getter)InverterMermoudLejeuneModel_get_ond_INomAC,(setter)InverterMermoudLejeuneModel_set_ond_INomAC, - PyDoc_STR("*float*: [A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_INomDC", (getter)InverterMermoudLejeuneModel_get_ond_INomDC,(setter)InverterMermoudLejeuneModel_set_ond_INomDC, - PyDoc_STR("*float*: [A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_ModeAffEnum", (getter)InverterMermoudLejeuneModel_get_ond_ModeAffEnum,(setter)InverterMermoudLejeuneModel_set_ond_ModeAffEnum, - PyDoc_STR("*str*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*str*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_ModeOper", (getter)InverterMermoudLejeuneModel_get_ond_ModeOper,(setter)InverterMermoudLejeuneModel_set_ond_ModeOper, - PyDoc_STR("*str*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*str*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_NbInputs", (getter)InverterMermoudLejeuneModel_get_ond_NbInputs,(setter)InverterMermoudLejeuneModel_set_ond_NbInputs, - PyDoc_STR("*float*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_NbMPPT", (getter)InverterMermoudLejeuneModel_get_ond_NbMPPT,(setter)InverterMermoudLejeuneModel_set_ond_NbMPPT, - PyDoc_STR("*float*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_Night_Loss", (getter)InverterMermoudLejeuneModel_get_ond_Night_Loss,(setter)InverterMermoudLejeuneModel_set_ond_Night_Loss, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PLim1", (getter)InverterMermoudLejeuneModel_get_ond_PLim1,(setter)InverterMermoudLejeuneModel_set_ond_PLim1, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PLimAbs", (getter)InverterMermoudLejeuneModel_get_ond_PLimAbs,(setter)InverterMermoudLejeuneModel_set_ond_PLimAbs, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PMaxDC", (getter)InverterMermoudLejeuneModel_get_ond_PMaxDC,(setter)InverterMermoudLejeuneModel_set_ond_PMaxDC, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PMaxOUT", (getter)InverterMermoudLejeuneModel_get_ond_PMaxOUT,(setter)InverterMermoudLejeuneModel_set_ond_PMaxOUT, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PNomConv", (getter)InverterMermoudLejeuneModel_get_ond_PNomConv,(setter)InverterMermoudLejeuneModel_set_ond_PNomConv, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PNomDC", (getter)InverterMermoudLejeuneModel_get_ond_PNomDC,(setter)InverterMermoudLejeuneModel_set_ond_PNomDC, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_PSeuil", (getter)InverterMermoudLejeuneModel_get_ond_PSeuil,(setter)InverterMermoudLejeuneModel_set_ond_PSeuil, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_TPLim1", (getter)InverterMermoudLejeuneModel_get_ond_TPLim1,(setter)InverterMermoudLejeuneModel_set_ond_TPLim1, - PyDoc_STR("*float*: [°C]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [°C]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_TPLimAbs", (getter)InverterMermoudLejeuneModel_get_ond_TPLimAbs,(setter)InverterMermoudLejeuneModel_set_ond_TPLimAbs, - PyDoc_STR("*float*: [°C]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [°C]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_TPMax", (getter)InverterMermoudLejeuneModel_get_ond_TPMax,(setter)InverterMermoudLejeuneModel_set_ond_TPMax, - PyDoc_STR("*float*: [°C]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [°C]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_TPNom", (getter)InverterMermoudLejeuneModel_get_ond_TPNom,(setter)InverterMermoudLejeuneModel_set_ond_TPNom, - PyDoc_STR("*float*: [°C]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [°C]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_VAbsMax", (getter)InverterMermoudLejeuneModel_get_ond_VAbsMax,(setter)InverterMermoudLejeuneModel_set_ond_VAbsMax, - PyDoc_STR("*float*: [V]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [V]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_VMPPMax", (getter)InverterMermoudLejeuneModel_get_ond_VMPPMax,(setter)InverterMermoudLejeuneModel_set_ond_VMPPMax, - PyDoc_STR("*float*: [V]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [V]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_VMppMin", (getter)InverterMermoudLejeuneModel_get_ond_VMppMin,(setter)InverterMermoudLejeuneModel_set_ond_VMppMin, - PyDoc_STR("*float*: [V]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [V]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_VNomEff", (getter)InverterMermoudLejeuneModel_get_ond_VNomEff,(setter)InverterMermoudLejeuneModel_set_ond_VNomEff, - PyDoc_STR("*sequence*: [V]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*sequence*: [V]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_VOutConv", (getter)InverterMermoudLejeuneModel_get_ond_VOutConv,(setter)InverterMermoudLejeuneModel_set_ond_VOutConv, - PyDoc_STR("*float*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_doAllowOverpower", (getter)InverterMermoudLejeuneModel_get_ond_doAllowOverpower,(setter)InverterMermoudLejeuneModel_set_ond_doAllowOverpower, - PyDoc_STR("*float*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_doUseTemperatureLimit", (getter)InverterMermoudLejeuneModel_get_ond_doUseTemperatureLimit,(setter)InverterMermoudLejeuneModel_set_ond_doUseTemperatureLimit, - PyDoc_STR("*float*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_effCurve_Pac", (getter)InverterMermoudLejeuneModel_get_ond_effCurve_Pac,(setter)InverterMermoudLejeuneModel_set_ond_effCurve_Pac, - PyDoc_STR("*sequence[sequence]*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*sequence[sequence]*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_effCurve_Pdc", (getter)InverterMermoudLejeuneModel_get_ond_effCurve_Pdc,(setter)InverterMermoudLejeuneModel_set_ond_effCurve_Pdc, - PyDoc_STR("*sequence[sequence]*: [W]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*sequence[sequence]*: [W]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_effCurve_elements", (getter)InverterMermoudLejeuneModel_get_ond_effCurve_elements,(setter)InverterMermoudLejeuneModel_set_ond_effCurve_elements, - PyDoc_STR("*float*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_effCurve_eta", (getter)InverterMermoudLejeuneModel_get_ond_effCurve_eta,(setter)InverterMermoudLejeuneModel_set_ond_effCurve_eta, - PyDoc_STR("*sequence[sequence]*: [-]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*sequence[sequence]*: [-]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_lossRAc", (getter)InverterMermoudLejeuneModel_get_ond_lossRAc,(setter)InverterMermoudLejeuneModel_set_ond_lossRAc, - PyDoc_STR("*float*: [A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {"ond_lossRDc", (getter)InverterMermoudLejeuneModel_get_ond_lossRDc,(setter)InverterMermoudLejeuneModel_set_ond_lossRDc, - PyDoc_STR("*float*: [V/A]\n\n*Required*: True if inverter_model=4"), + PyDoc_STR("*float*: [V/A]\n\n**Required:**\nRequired if inverter_model=4"), NULL}, {NULL} /* Sentinel */ }; @@ -8839,11 +8839,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -9200,7 +9200,7 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*float*: Inverter AC to battery DC efficiency"), NULL}, {"batt_ac_or_dc", (getter)BatterySystem_get_batt_ac_or_dc,(setter)BatterySystem_set_batt_ac_or_dc, - PyDoc_STR("*float*: Battery interconnection (AC or DC)\n\n*Options*: 0=DC_Connected,1=AC_Connected\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Battery interconnection (AC or DC)\n\n**Options:**\n0=DC_Connected,1=AC_Connected\n\nThe value of the following variables depends on ``batt_ac_or_dc``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, PyDoc_STR("*float*: Battery computed bank capacity [kWh]"), @@ -9230,25 +9230,25 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*float*: Inverter efficiency at which to cut battery charge or discharge off [%]"), NULL}, {"batt_loss_choice", (getter)BatterySystem_get_batt_loss_choice,(setter)BatterySystem_set_batt_loss_choice, - PyDoc_STR("*float*: Loss power input option [0/1]\n\n*Options*: 0=Monthly,1=TimeSeries\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loss power input option [0/1]\n\n**Options:**\n0=Monthly,1=TimeSeries\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses", (getter)BatterySystem_get_batt_losses,(setter)BatterySystem_set_batt_losses, - PyDoc_STR("*sequence*: Battery system losses at each timestep (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses at each timestep (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_charging", (getter)BatterySystem_get_batt_losses_charging,(setter)BatterySystem_set_batt_losses_charging, - PyDoc_STR("*sequence*: Battery system losses when charging (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when charging (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_discharging", (getter)BatterySystem_get_batt_losses_discharging,(setter)BatterySystem_set_batt_losses_discharging, - PyDoc_STR("*sequence*: Battery system losses when discharging (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when discharging (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_losses_idle", (getter)BatterySystem_get_batt_losses_idle,(setter)BatterySystem_set_batt_losses_idle, - PyDoc_STR("*sequence*: Battery system losses when idle (kW DC for DC connected, AC for AC connected) [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery system losses when idle (kW DC for DC connected, AC for AC connected) [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_mass", (getter)BatterySystem_get_batt_mass,(setter)BatterySystem_set_batt_mass, PyDoc_STR("*float*: Battery mass [kg]"), NULL}, {"batt_meter_position", (getter)BatterySystem_get_batt_meter_position,(setter)BatterySystem_set_batt_meter_position, - PyDoc_STR("*float*: Position of battery relative to electric meter\n\n*Options*: 0=BehindTheMeter,1=FrontOfMeter"), + PyDoc_STR("*float*: Position of battery relative to electric meter\n\n**Options:**\n0=BehindTheMeter,1=FrontOfMeter"), NULL}, {"batt_power_charge_max_kwac", (getter)BatterySystem_get_batt_power_charge_max_kwac,(setter)BatterySystem_set_batt_power_charge_max_kwac, PyDoc_STR("*float*: Battery maximum charge power (AC) [kWac]"), @@ -9260,25 +9260,25 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*float*: Battery maximum discharge power (AC) [kWac]"), NULL}, {"batt_power_discharge_max_kwdc", (getter)BatterySystem_get_batt_power_discharge_max_kwdc,(setter)BatterySystem_set_batt_power_discharge_max_kwdc, - PyDoc_STR("*float*: Battery maximum discharge power (DC) [kWdc]\n\n*Changes to this variable may require updating the values of the following*: \n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), + PyDoc_STR("*float*: Battery maximum discharge power (DC) [kWdc]\n\nThe value of the following variables depends on ``batt_power_discharge_max_kwdc``:\n\n\t - inverter_count\n\t - subarray1_modules_per_string\n\t - subarray1_nstrings\n\t - subarray2_enable\n\t - subarray3_enable\n\t - subarray4_enable\n\t - system_capacity\n"), NULL}, {"batt_replacement_capacity", (getter)BatterySystem_get_batt_replacement_capacity,(setter)BatterySystem_set_batt_replacement_capacity, PyDoc_STR("*float*: Capacity degradation at which to replace battery [%]"), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period\n\n*Required*: True if batt_replacement_option=2"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period\n\n**Required:**\nRequired if batt_replacement_option=2"), NULL}, {"batt_surface_area", (getter)BatterySystem_get_batt_surface_area,(setter)BatterySystem_set_batt_surface_area, PyDoc_STR("*float*: Battery surface area [m^2]"), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost1", (getter)BatterySystem_get_om_replacement_cost1,(setter)BatterySystem_set_om_replacement_cost1, PyDoc_STR("*sequence*: Cost to replace battery per kWh [$/kWh]"), @@ -9396,11 +9396,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -9481,19 +9481,19 @@ static PyGetSetDef Load_getset[] = { PyDoc_STR("*sequence*: Critical Electricity load (year 1) [kW]"), NULL}, {"crit_load_escalation", (getter)Load_get_crit_load_escalation,(setter)Load_set_crit_load_escalation, - PyDoc_STR("*sequence*: Annual critical load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual critical load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_outage", (getter)Load_get_grid_outage,(setter)Load_set_grid_outage, - PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n*Options*: 0=GridAvailable,1=GridUnavailable,Length=load"), + PyDoc_STR("*sequence*: Grid outage in this time step [0/1]\n\n**Options:**\n0=GridAvailable,1=GridUnavailable,Length=load"), NULL}, {"load", (getter)Load_get_load,(setter)Load_set_load, - PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"load_escalation", (getter)Load_get_load_escalation,(setter)Load_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"run_resiliency_calcs", (getter)Load_get_run_resiliency_calcs,(setter)Load_set_run_resiliency_calcs, - PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n*Options*: 0=DisableCalcs,1=EnableCalcs\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable resilence calculations for every timestep [0/1]\n\n**Options:**\n0=DisableCalcs,1=EnableCalcs\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -9608,11 +9608,11 @@ BatteryCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatteryCell_methods[] = { {"assign", (PyCFunction)BatteryCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatteryCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatteryCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatteryCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatteryCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatteryCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatteryCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -10068,7 +10068,7 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Cell capacity at end of nominal zone [Ah]"), NULL}, {"batt_Vcut", (getter)BatteryCell_get_batt_Vcut,(setter)BatteryCell_set_batt_Vcut, - PyDoc_STR("*float*: Cutoff voltage for battery rated capacity [V]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Cutoff voltage for battery rated capacity [V]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_Vexp", (getter)BatteryCell_get_batt_Vexp,(setter)BatteryCell_set_batt_Vexp, PyDoc_STR("*float*: Cell voltage at end of exponential zone [V]"), @@ -10083,25 +10083,25 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Default nominal cell voltage [V]"), NULL}, {"batt_calendar_a", (getter)BatteryCell_get_batt_calendar_a,(setter)BatteryCell_set_batt_calendar_a, - PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [1/sqrt(day)]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_b", (getter)BatteryCell_get_batt_calendar_b,(setter)BatteryCell_set_batt_calendar_b, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_c", (getter)BatteryCell_get_batt_calendar_c,(setter)BatteryCell_set_batt_calendar_c, - PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model coefficient [K]\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_calendar_choice", (getter)BatteryCell_get_batt_calendar_choice,(setter)BatteryCell_set_batt_calendar_choice, - PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n*Options*: 0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable\n\n*Required*: True if en_batt=1&batt_life_model=0"), + PyDoc_STR("*float*: Calendar life degradation input option [0/1/2]\n\n**Options:**\n0=NoCalendarDegradation,1=LithiomIonModel,2=InputLossTable\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0"), NULL}, {"batt_calendar_lifetime_matrix", (getter)BatteryCell_get_batt_calendar_lifetime_matrix,(setter)BatteryCell_set_batt_calendar_lifetime_matrix, - PyDoc_STR("*sequence[sequence]*: Days vs capacity\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=2"), + PyDoc_STR("*sequence[sequence]*: Days vs capacity\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=2"), NULL}, {"batt_calendar_q0", (getter)BatteryCell_get_batt_calendar_q0,(setter)BatteryCell_set_batt_calendar_q0, - PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n*Required*: True if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), + PyDoc_STR("*float*: Calendar life model initial capacity cofficient\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0&batt_calendar_choice=1"), NULL}, {"batt_chem", (getter)BatteryCell_get_batt_chem,(setter)BatteryCell_set_batt_chem, - PyDoc_STR("*float*: Battery chemistry\n\n*Options*: 0=LeadAcid,1=LiIon"), + PyDoc_STR("*float*: Battery chemistry\n\n**Options:**\n0=LeadAcid,1=LiIon"), NULL}, {"batt_h_to_ambient", (getter)BatteryCell_get_batt_h_to_ambient,(setter)BatteryCell_set_batt_h_to_ambient, PyDoc_STR("*float*: Heat transfer between battery and environment [W/m2K]"), @@ -10110,10 +10110,10 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Initial state-of-charge [%]"), NULL}, {"batt_life_model", (getter)BatteryCell_get_batt_life_model,(setter)BatteryCell_set_batt_life_model, - PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n*Options*: 0=calendar/cycle,1=NMC,2=LMO/LTO\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery life model specifier [0/1/2]\n\n**Options:**\n0=calendar/cycle,1=NMC,2=LMO/LTO\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_lifetime_matrix", (getter)BatteryCell_get_batt_lifetime_matrix,(setter)BatteryCell_set_batt_lifetime_matrix, - PyDoc_STR("*sequence[sequence]*: Cycles vs capacity at different depths-of-discharge\n\n*Required*: True if en_batt=1&batt_life_model=0"), + PyDoc_STR("*sequence[sequence]*: Cycles vs capacity at different depths-of-discharge\n\n**Required:**\nRequired if en_batt=1&batt_life_model=0"), NULL}, {"batt_maximum_SOC", (getter)BatteryCell_get_batt_maximum_SOC,(setter)BatteryCell_set_batt_maximum_SOC, PyDoc_STR("*float*: Maximum allowed state-of-charge [%]"), @@ -10131,10 +10131,10 @@ static PyGetSetDef BatteryCell_getset[] = { PyDoc_STR("*float*: Internal resistance [Ohm]"), NULL}, {"batt_room_temperature_celsius", (getter)BatteryCell_get_batt_room_temperature_celsius,(setter)BatteryCell_set_batt_room_temperature_celsius, - PyDoc_STR("*sequence*: Temperature of storage room [C]\n\n*Options*: length=1 for fixed, # of weatherfile records otherwise"), + PyDoc_STR("*sequence*: Temperature of storage room [C]\n\n**Options:**\nlength=1 for fixed, # of weatherfile records otherwise"), NULL}, {"batt_voltage_choice", (getter)BatteryCell_get_batt_voltage_choice,(setter)BatteryCell_set_batt_voltage_choice, - PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n*Options*: 0=UseVoltageModel,1=InputVoltageTable\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery voltage input option [0/1]\n\n**Options:**\n0=UseVoltageModel,1=InputVoltageTable\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_voltage_matrix", (getter)BatteryCell_get_batt_voltage_matrix,(setter)BatteryCell_set_batt_voltage_matrix, PyDoc_STR("*sequence[sequence]*: Battery voltage vs. depth-of-discharge"), @@ -10255,11 +10255,11 @@ BatteryDispatch_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatteryDispatch_methods[] = { {"assign", (PyCFunction)BatteryDispatch_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatteryDispatch_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatteryDispatch_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatteryDispatch_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatteryDispatch_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatteryDispatch_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatteryDispatch_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -10817,13 +10817,13 @@ BatteryDispatch_set_dispatch_manual_sched_weekend(VarGroupObject *self, PyObject static PyGetSetDef BatteryDispatch_getset[] = { {"batt_custom_dispatch", (getter)BatteryDispatch_get_batt_custom_dispatch,(setter)BatteryDispatch_set_batt_custom_dispatch, - PyDoc_STR("*sequence*: Custom battery power for every time step [kW]\n\n*Info*: kWAC if AC-connected, else kWDC\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=2"), + PyDoc_STR("*sequence*: Custom battery power for every time step [kW]\n\n**Info:**\nkWAC if AC-connected, else kWDC\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=2"), NULL}, {"batt_cycle_cost", (getter)BatteryDispatch_get_batt_cycle_cost,(setter)BatteryDispatch_set_batt_cycle_cost, - PyDoc_STR("*sequence*: Input battery cycle degradaton penalty per year [$/cycle-kWh]\n\n*Info*: length 1 or analysis_period, length 1 will be extended using inflation\n\n*Required*: True if batt_cycle_cost_choice=1"), + PyDoc_STR("*sequence*: Input battery cycle degradaton penalty per year [$/cycle-kWh]\n\n**Info:**\nlength 1 or analysis_period, length 1 will be extended using inflation\n\n**Required:**\nRequired if batt_cycle_cost_choice=1"), NULL}, {"batt_cycle_cost_choice", (getter)BatteryDispatch_get_batt_cycle_cost_choice,(setter)BatteryDispatch_set_batt_cycle_cost_choice, - PyDoc_STR("*float*: Use SAM cost model for degradaton penalty or input custom via batt_cycle_cost [0/1]\n\n*Options*: 0=UseCostModel,1=InputCost\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use SAM cost model for degradaton penalty or input custom via batt_cycle_cost [0/1]\n\n**Options:**\n0=UseCostModel,1=InputCost\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_dispatch_auto_btm_can_discharge_to_grid", (getter)BatteryDispatch_get_batt_dispatch_auto_btm_can_discharge_to_grid,(setter)BatteryDispatch_set_batt_dispatch_auto_btm_can_discharge_to_grid, PyDoc_STR("*float*: Behind the meter battery can discharge to grid? [0/1]"), @@ -10841,118 +10841,118 @@ static PyGetSetDef BatteryDispatch_getset[] = { PyDoc_STR("*float*: Grid charging allowed for automated dispatch? [0/1]"), NULL}, {"batt_dispatch_charge_only_system_exceeds_load", (getter)BatteryDispatch_get_batt_dispatch_charge_only_system_exceeds_load,(setter)BatteryDispatch_set_batt_dispatch_charge_only_system_exceeds_load, - PyDoc_STR("*float*: Battery can charge from system only when system output exceeds load [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), + PyDoc_STR("*float*: Battery can charge from system only when system output exceeds load [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), NULL}, {"batt_dispatch_choice", (getter)BatteryDispatch_get_batt_dispatch_choice,(setter)BatteryDispatch_set_batt_dispatch_choice, - PyDoc_STR("*float*: Battery dispatch algorithm [0/1/2/3/4]\n\n*Options*: If behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=PriceSignalForecast if front of meter: 0=AutomatedEconomic,1=PV_Smoothing,2=InputBatteryPower,3=ManualDispatch\n\n*Required*: True if en_batt=1"), + PyDoc_STR("*float*: Battery dispatch algorithm [0/1/2/3/4]\n\n**Options:**\nIf behind the meter: 0=PeakShaving,1=InputGridTarget,2=InputBatteryPower,3=ManualDispatch,4=PriceSignalForecast if front of meter: 0=AutomatedEconomic,1=PV_Smoothing,2=InputBatteryPower,3=ManualDispatch\n\n**Required:**\nRequired if en_batt=1"), NULL}, {"batt_dispatch_discharge_only_load_exceeds_system", (getter)BatteryDispatch_get_batt_dispatch_discharge_only_load_exceeds_system,(setter)BatteryDispatch_set_batt_dispatch_discharge_only_load_exceeds_system, - PyDoc_STR("*float*: Battery can discharge battery only when load exceeds system output [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), + PyDoc_STR("*float*: Battery can discharge battery only when load exceeds system output [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0"), NULL}, {"batt_dispatch_load_forecast_choice", (getter)BatteryDispatch_get_batt_dispatch_load_forecast_choice,(setter)BatteryDispatch_set_batt_dispatch_load_forecast_choice, - PyDoc_STR("*float*: Load forecast choice for automatic dispatch [0/1/2]\n\n*Options*: 0=LookAhead,1=LookBehind,2=InputForecast\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Load forecast choice for automatic dispatch [0/1/2]\n\n**Options:**\n0=LookAhead,1=LookBehind,2=InputForecast\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_dispatch_pvs_ac_lb", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_lb,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_lb, - PyDoc_STR("*float*: AC lower bound [fraction of nameplate]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: AC lower bound [fraction of nameplate]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_lb_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_lb_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_lb_enable, - PyDoc_STR("*float*: Enable AC lower bound [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable AC lower bound [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_ub", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_ub,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_ub, - PyDoc_STR("*float*: AC upper bound [fraction of nameplate]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: AC upper bound [fraction of nameplate]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ac_ub_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_ac_ub_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_ac_ub_enable, - PyDoc_STR("*float*: Enable AC upper bound [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable AC upper bound [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_curtail_as_control", (getter)BatteryDispatch_get_batt_dispatch_pvs_curtail_as_control,(setter)BatteryDispatch_set_batt_dispatch_pvs_curtail_as_control, - PyDoc_STR("*float*: Correct up-ramp violations [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Correct up-ramp violations [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_curtail_if_violation", (getter)BatteryDispatch_get_batt_dispatch_pvs_curtail_if_violation,(setter)BatteryDispatch_set_batt_dispatch_pvs_curtail_if_violation, - PyDoc_STR("*float*: Curtail violations [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Curtail violations [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_forecast_shift_periods", (getter)BatteryDispatch_get_batt_dispatch_pvs_forecast_shift_periods,(setter)BatteryDispatch_set_batt_dispatch_pvs_forecast_shift_periods, - PyDoc_STR("*float*: Forecasting window [periods of ramp intervals]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Forecasting window [periods of ramp intervals]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_kf", (getter)BatteryDispatch_get_batt_dispatch_pvs_kf,(setter)BatteryDispatch_set_batt_dispatch_pvs_kf, - PyDoc_STR("*float*: Forecast accumulation error multiplier (kf)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Forecast accumulation error multiplier (kf)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_ki", (getter)BatteryDispatch_get_batt_dispatch_pvs_ki,(setter)BatteryDispatch_set_batt_dispatch_pvs_ki, - PyDoc_STR("*float*: Return to rest SOC multiplier (ki)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Return to rest SOC multiplier (ki)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_kp", (getter)BatteryDispatch_get_batt_dispatch_pvs_kp,(setter)BatteryDispatch_set_batt_dispatch_pvs_kp, - PyDoc_STR("*float*: Track PV power multiplier (kp)\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Track PV power multiplier (kp)\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_max_ramp", (getter)BatteryDispatch_get_batt_dispatch_pvs_max_ramp,(setter)BatteryDispatch_set_batt_dispatch_pvs_max_ramp, - PyDoc_STR("*float*: Maximum ramp rate [% of nameplate per ramp interval]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Maximum ramp rate [% of nameplate per ramp interval]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_nameplate_ac", (getter)BatteryDispatch_get_batt_dispatch_pvs_nameplate_ac,(setter)BatteryDispatch_set_batt_dispatch_pvs_nameplate_ac, - PyDoc_STR("*float*: Nameplate for pv smoothing [kWac]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Nameplate for pv smoothing [kWac]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_short_forecast_enable", (getter)BatteryDispatch_get_batt_dispatch_pvs_short_forecast_enable,(setter)BatteryDispatch_set_batt_dispatch_pvs_short_forecast_enable, - PyDoc_STR("*float*: Enable short term power forecast [0/1]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Enable short term power forecast [0/1]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_soc_rest", (getter)BatteryDispatch_get_batt_dispatch_pvs_soc_rest,(setter)BatteryDispatch_set_batt_dispatch_pvs_soc_rest, - PyDoc_STR("*float*: Battery resting SOC [%]\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Battery resting SOC [%]\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_pvs_timestep_multiplier", (getter)BatteryDispatch_get_batt_dispatch_pvs_timestep_multiplier,(setter)BatteryDispatch_set_batt_dispatch_pvs_timestep_multiplier, - PyDoc_STR("*float*: Ramp timestep multiplier\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Ramp timestep multiplier\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=1&batt_dispatch_choice=1"), NULL}, {"batt_dispatch_update_frequency_hours", (getter)BatteryDispatch_get_batt_dispatch_update_frequency_hours,(setter)BatteryDispatch_set_batt_dispatch_update_frequency_hours, PyDoc_STR("*float*: Frequency to update the look-ahead dispatch [hours]"), NULL}, {"batt_dispatch_wf_forecast_choice", (getter)BatteryDispatch_get_batt_dispatch_wf_forecast_choice,(setter)BatteryDispatch_set_batt_dispatch_wf_forecast_choice, - PyDoc_STR("*float*: Weather forecast choice for automatic dispatch [0/1/2]\n\n*Options*: 0=LookAhead,1=LookBehind,2=InputForecast\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Weather forecast choice for automatic dispatch [0/1/2]\n\n**Options:**\n0=LookAhead,1=LookBehind,2=InputForecast\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_load_ac_forecast", (getter)BatteryDispatch_get_batt_load_ac_forecast,(setter)BatteryDispatch_set_batt_load_ac_forecast, - PyDoc_STR("*sequence*: Load ac power forecast [kW]\n\n*Info*: Length either 8760 or 8760 * steps per hour"), + PyDoc_STR("*sequence*: Load ac power forecast [kW]\n\n**Info:**\nLength either 8760 or 8760 * steps per hour"), NULL}, {"batt_load_ac_forecast_escalation", (getter)BatteryDispatch_get_batt_load_ac_forecast_escalation,(setter)BatteryDispatch_set_batt_load_ac_forecast_escalation, - PyDoc_STR("*sequence*: Annual load escalation for ac power forecast [kW]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Annual load escalation for ac power forecast [kW]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"batt_look_ahead_hours", (getter)BatteryDispatch_get_batt_look_ahead_hours,(setter)BatteryDispatch_set_batt_look_ahead_hours, PyDoc_STR("*float*: Hours to look ahead in automated dispatch [hours]"), NULL}, {"batt_pv_ac_forecast", (getter)BatteryDispatch_get_batt_pv_ac_forecast,(setter)BatteryDispatch_set_batt_pv_ac_forecast, - PyDoc_STR("*sequence*: PV ac power forecast [kW]\n\n*Info*: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), + PyDoc_STR("*sequence*: PV ac power forecast [kW]\n\n**Info:**\nLength either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), NULL}, {"batt_pv_clipping_forecast", (getter)BatteryDispatch_get_batt_pv_clipping_forecast,(setter)BatteryDispatch_set_batt_pv_clipping_forecast, - PyDoc_STR("*sequence*: PV clipping forecast [kW]\n\n*Info*: Length either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), + PyDoc_STR("*sequence*: PV clipping forecast [kW]\n\n**Info:**\nLength either 8760 * steps per hour (values repeat each year) or 8760 * steps per hour * analysis period"), NULL}, {"batt_target_choice", (getter)BatteryDispatch_get_batt_target_choice,(setter)BatteryDispatch_set_batt_target_choice, - PyDoc_STR("*float*: Target power input option [0/1]\n\n*Options*: 0=InputMonthlyTarget,1=InputFullTimeSeries\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*float*: Target power input option [0/1]\n\n**Options:**\n0=InputMonthlyTarget,1=InputFullTimeSeries\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"batt_target_power", (getter)BatteryDispatch_get_batt_target_power,(setter)BatteryDispatch_set_batt_target_power, - PyDoc_STR("*sequence*: Grid target power for every time step [kW]\n\n*Required*: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*sequence*: Grid target power for every time step [kW]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"batt_target_power_monthly", (getter)BatteryDispatch_get_batt_target_power_monthly,(setter)BatteryDispatch_set_batt_target_power_monthly, - PyDoc_STR("*sequence*: Grid target power on monthly basis [kW]\n\n*Required*: True if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), + PyDoc_STR("*sequence*: Grid target power on monthly basis [kW]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=0&batt_dispatch_choice=1"), NULL}, {"dispatch_manual_btm_discharge_to_grid", (getter)BatteryDispatch_get_dispatch_manual_btm_discharge_to_grid,(setter)BatteryDispatch_set_dispatch_manual_btm_discharge_to_grid, - PyDoc_STR("*sequence*: Periods 1-6 behind the meter discharging to grid allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3&batt_meter_position=0"), + PyDoc_STR("*sequence*: Periods 1-6 behind the meter discharging to grid allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3&batt_meter_position=0"), NULL}, {"dispatch_manual_charge", (getter)BatteryDispatch_get_dispatch_manual_charge,(setter)BatteryDispatch_set_dispatch_manual_charge, - PyDoc_STR("*sequence*: Periods 1-6 charging from system allowed?\n\n*Required*: True if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 charging from system allowed?\n\n**Required:**\nRequired if en_batt=1&en_standalone_batt=0&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_discharge", (getter)BatteryDispatch_get_dispatch_manual_discharge,(setter)BatteryDispatch_set_dispatch_manual_discharge, - PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 discharging allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_fuelcellcharge", (getter)BatteryDispatch_get_dispatch_manual_fuelcellcharge,(setter)BatteryDispatch_set_dispatch_manual_fuelcellcharge, PyDoc_STR("*sequence*: Periods 1-6 charging from fuel cell allowed?"), NULL}, {"dispatch_manual_gridcharge", (getter)BatteryDispatch_get_dispatch_manual_gridcharge,(setter)BatteryDispatch_set_dispatch_manual_gridcharge, - PyDoc_STR("*sequence*: Periods 1-6 grid charging allowed?\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 grid charging allowed?\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_percent_discharge", (getter)BatteryDispatch_get_dispatch_manual_percent_discharge,(setter)BatteryDispatch_set_dispatch_manual_percent_discharge, - PyDoc_STR("*sequence*: Periods 1-6 discharge percent [%]\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 discharge percent [%]\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_percent_gridcharge", (getter)BatteryDispatch_get_dispatch_manual_percent_gridcharge,(setter)BatteryDispatch_set_dispatch_manual_percent_gridcharge, - PyDoc_STR("*sequence*: Periods 1-6 gridcharge percent [%]\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence*: Periods 1-6 gridcharge percent [%]\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_sched", (getter)BatteryDispatch_get_dispatch_manual_sched,(setter)BatteryDispatch_set_dispatch_manual_sched, - PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekday\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekday\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {"dispatch_manual_sched_weekend", (getter)BatteryDispatch_get_dispatch_manual_sched_weekend,(setter)BatteryDispatch_set_dispatch_manual_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekend\n\n*Required*: True if en_batt=1&batt_dispatch_choice=3"), + PyDoc_STR("*sequence[sequence]*: Battery dispatch schedule for weekend\n\n**Required:**\nRequired if en_batt=1&batt_dispatch_choice=3"), NULL}, {NULL} /* Sentinel */ }; @@ -11067,11 +11067,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11101,10 +11101,10 @@ SystemCosts_set_om_replacement_cost_escal(VarGroupObject *self, PyObject *value, static PyGetSetDef SystemCosts_getset[] = { {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -11219,11 +11219,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11356,11 +11356,11 @@ PriceSignal_export(VarGroupObject *self, PyObject *args) static PyMethodDef PriceSignal_methods[] = { {"assign", (PyCFunction)PriceSignal_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PriceSignal_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PriceSignal_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PriceSignal_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PriceSignal_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PriceSignal_vals = { var: val, ...}``")}, {"export", (PyCFunction)PriceSignal_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11544,6 +11544,18 @@ PriceSignal_set_mp_energy_market_revenue(VarGroupObject *self, PyObject *value, return PySAM_matrix_setter(value, SAM_Pvsamv1_PriceSignal_mp_energy_market_revenue_mset, self->data_ptr); } +static PyObject * +PriceSignal_get_ppa_escalation(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_PriceSignal_ppa_escalation_nget, self->data_ptr); +} + +static int +PriceSignal_set_ppa_escalation(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_PriceSignal_ppa_escalation_nset, self->data_ptr); +} + static PyObject * PriceSignal_get_ppa_multiplier_model(VarGroupObject *self, void *closure) { @@ -11570,55 +11582,58 @@ PriceSignal_set_ppa_price_input(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef PriceSignal_getset[] = { {"dispatch_factors_ts", (getter)PriceSignal_get_dispatch_factors_ts,(setter)PriceSignal_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor time step\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1&ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor time step\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1&ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)PriceSignal_get_dispatch_sched_weekday,(setter)PriceSignal_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)PriceSignal_get_dispatch_sched_weekend,(setter)PriceSignal_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"dispatch_tod_factors", (getter)PriceSignal_get_dispatch_tod_factors,(setter)PriceSignal_set_dispatch_tod_factors, - PyDoc_STR("*sequence*: TOD factors for periods 1-9\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), + PyDoc_STR("*sequence*: TOD factors for periods 1-9\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=0&ppa_multiplier_model=0"), NULL}, {"forecast_price_signal_model", (getter)PriceSignal_get_forecast_price_signal_model,(setter)PriceSignal_set_forecast_price_signal_model, - PyDoc_STR("*float*: Forecast price signal model selected [0/1]\n\n*Options*: 0=PPA based,1=Merchant Plant\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Forecast price signal model selected [0/1]\n\n**Options:**\n0=PPA based,1=Merchant Plant\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mp_ancserv1_revenue", (getter)PriceSignal_get_mp_ancserv1_revenue,(setter)PriceSignal_set_mp_ancserv1_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv2_revenue", (getter)PriceSignal_get_mp_ancserv2_revenue,(setter)PriceSignal_set_mp_ancserv2_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv3_revenue", (getter)PriceSignal_get_mp_ancserv3_revenue,(setter)PriceSignal_set_mp_ancserv3_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_ancserv4_revenue", (getter)PriceSignal_get_mp_ancserv4_revenue,(setter)PriceSignal_set_mp_ancserv4_revenue, - PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv1", (getter)PriceSignal_get_mp_enable_ancserv1,(setter)PriceSignal_set_mp_enable_ancserv1, - PyDoc_STR("*float*: Enable ancillary services 1 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 1 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv2", (getter)PriceSignal_get_mp_enable_ancserv2,(setter)PriceSignal_set_mp_enable_ancserv2, - PyDoc_STR("*float*: Enable ancillary services 2 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 2 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv3", (getter)PriceSignal_get_mp_enable_ancserv3,(setter)PriceSignal_set_mp_enable_ancserv3, - PyDoc_STR("*float*: Enable ancillary services 3 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 3 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_ancserv4", (getter)PriceSignal_get_mp_enable_ancserv4,(setter)PriceSignal_set_mp_enable_ancserv4, - PyDoc_STR("*float*: Enable ancillary services 4 revenue [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable ancillary services 4 revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), NULL}, {"mp_enable_energy_market_revenue", (getter)PriceSignal_get_mp_enable_energy_market_revenue,(setter)PriceSignal_set_mp_enable_energy_market_revenue, - PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n*Options*: 0=false,1=true\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*float*: Enable energy market revenue [0/1]\n\n**Options:**\n0=false,1=true\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), NULL}, {"mp_energy_market_revenue", (getter)PriceSignal_get_mp_energy_market_revenue,(setter)PriceSignal_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input [ [MW, $/MW]]\n\n*Required*: True if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input [ [MW, $/MW]]\n\n**Required:**\nRequired if en_batt=1&batt_meter_position=1&forecast_price_signal_model=1"), + NULL}, +{"ppa_escalation", (getter)PriceSignal_get_ppa_escalation,(setter)PriceSignal_set_ppa_escalation, + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {"ppa_multiplier_model", (getter)PriceSignal_get_ppa_multiplier_model,(setter)PriceSignal_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {"ppa_price_input", (getter)PriceSignal_get_ppa_price_input,(setter)PriceSignal_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA Price Input\n\n*Required*: True if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), + PyDoc_STR("*sequence*: PPA Price Input [$/kWh]\n\n**Required:**\nRequired if forecast_price_signal_model=0&en_batt=1&batt_meter_position=1"), NULL}, {NULL} /* Sentinel */ }; @@ -11670,6 +11685,278 @@ static PyTypeObject PriceSignal_Type = { }; +/* + * Revenue Group + */ + +static PyTypeObject Revenue_Type; + +static PyObject * +Revenue_new(SAM_Pvsamv1 data_ptr) +{ + PyObject* new_obj = Revenue_Type.tp_alloc(&Revenue_Type,0); + + VarGroupObject* Revenue_obj = (VarGroupObject*)new_obj; + + Revenue_obj->data_ptr = (SAM_table)data_ptr; + + return new_obj; +} + +/* Revenue methods */ + +static PyObject * +Revenue_assign(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + + if (!PySAM_assign_from_dict(self->data_ptr, dict, "Pvsamv1", "Revenue")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Revenue_replace(VarGroupObject *self, PyObject *args) +{ + PyObject* dict; + if (!PyArg_ParseTuple(args, "O:assign", &dict)){ + return NULL; + } + PyTypeObject* tp = &Revenue_Type; + + if (!PySAM_replace_from_dict(tp, self->data_ptr, dict, "Pvsamv1", "Revenue")){ + return NULL; + } + + Py_INCREF(Py_None); + return Py_None; +} + +static PyObject * +Revenue_export(VarGroupObject *self, PyObject *args) +{ + PyTypeObject* tp = &Revenue_Type; + PyObject* dict = PySAM_export_to_dict((PyObject *) self, tp); + return dict; +} + +static PyMethodDef Revenue_methods[] = { + {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, + {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, + {"export", (PyCFunction)Revenue_export, METH_VARARGS, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, + {NULL, NULL} /* sentinel */ +}; + +static PyObject * +Revenue_get_mp_ancserv1_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Pvsamv1_Revenue_mp_ancserv1_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv1_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Pvsamv1_Revenue_mp_ancserv1_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv2_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Pvsamv1_Revenue_mp_ancserv2_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv2_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Pvsamv1_Revenue_mp_ancserv2_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv3_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Pvsamv1_Revenue_mp_ancserv3_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv3_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Pvsamv1_Revenue_mp_ancserv3_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_ancserv4_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Pvsamv1_Revenue_mp_ancserv4_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_ancserv4_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Pvsamv1_Revenue_mp_ancserv4_revenue_single_mset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv1_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_Revenue_mp_enable_ancserv1_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv1_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_Revenue_mp_enable_ancserv1_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv2_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_Revenue_mp_enable_ancserv2_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv2_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_Revenue_mp_enable_ancserv2_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv3_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_Revenue_mp_enable_ancserv3_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv3_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_Revenue_mp_enable_ancserv3_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_ancserv4_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_Revenue_mp_enable_ancserv4_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_ancserv4_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_Revenue_mp_enable_ancserv4_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_enable_market_percent_gen(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvsamv1_Revenue_mp_enable_market_percent_gen_nget, self->data_ptr); +} + +static int +Revenue_set_mp_enable_market_percent_gen(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_double_setter(value, SAM_Pvsamv1_Revenue_mp_enable_market_percent_gen_nset, self->data_ptr); +} + +static PyObject * +Revenue_get_mp_energy_market_revenue_single(VarGroupObject *self, void *closure) +{ + return PySAM_matrix_getter(SAM_Pvsamv1_Revenue_mp_energy_market_revenue_single_mget, self->data_ptr); +} + +static int +Revenue_set_mp_energy_market_revenue_single(VarGroupObject *self, PyObject *value, void *closure) +{ + return PySAM_matrix_setter(value, SAM_Pvsamv1_Revenue_mp_energy_market_revenue_single_mset, self->data_ptr); +} + +static PyGetSetDef Revenue_getset[] = { +{"mp_ancserv1_revenue_single", (getter)Revenue_get_mp_ancserv1_revenue_single,(setter)Revenue_set_mp_ancserv1_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 1 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv1_percent_gen=1"), + NULL}, +{"mp_ancserv2_revenue_single", (getter)Revenue_get_mp_ancserv2_revenue_single,(setter)Revenue_set_mp_ancserv2_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 2 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv2_percent_gen=1"), + NULL}, +{"mp_ancserv3_revenue_single", (getter)Revenue_get_mp_ancserv3_revenue_single,(setter)Revenue_set_mp_ancserv3_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 3 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv3_percent_gen=1"), + NULL}, +{"mp_ancserv4_revenue_single", (getter)Revenue_get_mp_ancserv4_revenue_single,(setter)Revenue_set_mp_ancserv4_revenue_single, + PyDoc_STR("*sequence[sequence]*: Ancillary services 4 revenue input\n\n**Info:**\nLifetime x 1[Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_ancserv4_percent_gen=1"), + NULL}, +{"mp_enable_ancserv1_percent_gen", (getter)Revenue_get_mp_enable_ancserv1_percent_gen,(setter)Revenue_set_mp_enable_ancserv1_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 1 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv2_percent_gen", (getter)Revenue_get_mp_enable_ancserv2_percent_gen,(setter)Revenue_set_mp_enable_ancserv2_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 2 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv3_percent_gen", (getter)Revenue_get_mp_enable_ancserv3_percent_gen,(setter)Revenue_set_mp_enable_ancserv3_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 3 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_ancserv4_percent_gen", (getter)Revenue_get_mp_enable_ancserv4_percent_gen,(setter)Revenue_set_mp_enable_ancserv4_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for ancillary service 4 [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_enable_market_percent_gen", (getter)Revenue_get_mp_enable_market_percent_gen,(setter)Revenue_set_mp_enable_market_percent_gen, + PyDoc_STR("*float*: Enable percent demand cleared capacity option for market revenue [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nRequired if forecast_price_signal_model=1"), + NULL}, +{"mp_energy_market_revenue_single", (getter)Revenue_get_mp_energy_market_revenue_single,(setter)Revenue_set_mp_energy_market_revenue_single, + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 1 [Price($/MWh)]\n\n**Required:**\nRequired if forecast_price_signal_model=1&mp_enable_market_percent_gen=1"), + NULL}, + {NULL} /* Sentinel */ +}; + +static PyTypeObject Revenue_Type = { + /* The ob_type field must be initialized in the module init function + * to be portable to Windows without using C++. */ + PyVarObject_HEAD_INIT(NULL, 0) + "Pvsamv1.Revenue", /*tp_name*/ + sizeof(VarGroupObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + /* methods */ + 0, /*tp_dealloc*/ + 0, /*tp_print*/ + (getattrfunc)0, /*tp_getattr*/ + 0, /*tp_setattr*/ + 0, /*tp_reserved*/ + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistofnset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + Revenue_methods, /*tp_methods*/ + 0, /*tp_members*/ + Revenue_getset, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictofnset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + 0, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ +}; + + /* * ElectricityRates Group */ @@ -11733,11 +12020,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -12067,76 +12354,76 @@ ElectricityRates_set_ur_yearzero_usage_peaks(VarGroupObject *self, PyObject *val static PyGetSetDef ElectricityRates_getset[] = { {"rate_escalation", (getter)ElectricityRates_get_rate_escalation,(setter)ElectricityRates_set_rate_escalation, - PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_annual_min_charge", (getter)ElectricityRates_get_ur_annual_min_charge,(setter)ElectricityRates_set_ur_annual_min_charge, - PyDoc_STR("*float*: Annual minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Annual minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_billing_demand_lookback_percentages", (getter)ElectricityRates_get_ur_billing_demand_lookback_percentages,(setter)ElectricityRates_set_ur_billing_demand_lookback_percentages, - PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n*Info*: 12x2\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n**Info:**\n12x2\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_lookback_period", (getter)ElectricityRates_get_ur_billing_demand_lookback_period,(setter)ElectricityRates_set_ur_billing_demand_lookback_period, - PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_minimum", (getter)ElectricityRates_get_ur_billing_demand_minimum,(setter)ElectricityRates_set_ur_billing_demand_minimum, - PyDoc_STR("*float*: Minimum billing demand\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Minimum billing demand\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_billing_demand_periods", (getter)ElectricityRates_get_ur_dc_billing_demand_periods,(setter)ElectricityRates_set_ur_dc_billing_demand_periods, - PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_enable", (getter)ElectricityRates_get_ur_dc_enable,(setter)ElectricityRates_set_ur_dc_enable, - PyDoc_STR("*float*: Enable demand charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable demand charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_flat_mat", (getter)ElectricityRates_get_ur_dc_flat_mat,(setter)ElectricityRates_set_ur_dc_flat_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekday", (getter)ElectricityRates_get_ur_dc_sched_weekday,(setter)ElectricityRates_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sched_weekend", (getter)ElectricityRates_get_ur_dc_sched_weekend,(setter)ElectricityRates_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_tou_mat", (getter)ElectricityRates_get_ur_dc_tou_mat,(setter)ElectricityRates_set_ur_dc_tou_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_ec_sched_weekday", (getter)ElectricityRates_get_ur_ec_sched_weekday,(setter)ElectricityRates_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_sched_weekend", (getter)ElectricityRates_get_ur_ec_sched_weekend,(setter)ElectricityRates_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_tou_mat", (getter)ElectricityRates_get_ur_ec_tou_mat,(setter)ElectricityRates_set_ur_ec_tou_mat, PyDoc_STR("*sequence[sequence]*: Energy rates table"), NULL}, {"ur_en_ts_buy_rate", (getter)ElectricityRates_get_ur_en_ts_buy_rate,(setter)ElectricityRates_set_ur_en_ts_buy_rate, - PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_en_ts_sell_rate", (getter)ElectricityRates_get_ur_en_ts_sell_rate,(setter)ElectricityRates_set_ur_en_ts_sell_rate, - PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_enable_billing_demand", (getter)ElectricityRates_get_ur_enable_billing_demand,(setter)ElectricityRates_set_ur_enable_billing_demand, - PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n*Options*: 0=disable,1=enable\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n**Options:**\n0=disable,1=enable\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_metering_option", (getter)ElectricityRates_get_ur_metering_option,(setter)ElectricityRates_set_ur_metering_option, - PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n*Info*: Net metering monthly excess\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n**Info:**\nNet metering monthly excess\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)ElectricityRates_get_ur_monthly_fixed_charge,(setter)ElectricityRates_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_min_charge", (getter)ElectricityRates_get_ur_monthly_min_charge,(setter)ElectricityRates_set_ur_monthly_min_charge, - PyDoc_STR("*float*: Monthly minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_month", (getter)ElectricityRates_get_ur_nm_credit_month,(setter)ElectricityRates_set_ur_nm_credit_month, - PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=11\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=11\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_rollover", (getter)ElectricityRates_get_ur_nm_credit_rollover,(setter)ElectricityRates_set_ur_nm_credit_rollover, - PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)ElectricityRates_get_ur_nm_yearend_sell_rate,(setter)ElectricityRates_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_sell_eq_buy", (getter)ElectricityRates_get_ur_sell_eq_buy,(setter)ElectricityRates_set_ur_sell_eq_buy, - PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n*Info*: Optional override\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n**Info:**\nOptional override\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ts_buy_rate", (getter)ElectricityRates_get_ur_ts_buy_rate,(setter)ElectricityRates_set_ur_ts_buy_rate, PyDoc_STR("*sequence*: Time step buy rates [0/1]"), @@ -12145,7 +12432,7 @@ static PyGetSetDef ElectricityRates_getset[] = { PyDoc_STR("*sequence*: Time step sell rates [0/1]"), NULL}, {"ur_yearzero_usage_peaks", (getter)ElectricityRates_get_ur_yearzero_usage_peaks,(setter)ElectricityRates_set_ur_yearzero_usage_peaks, - PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n*Info*: 12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n**Info:**\n12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {NULL} /* Sentinel */ }; @@ -12260,11 +12547,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -12306,10 +12593,10 @@ GridLimits_set_grid_interconnection_limit_kwac(VarGroupObject *self, PyObject *v static PyGetSetDef GridLimits_getset[] = { {"enable_interconnection_limit", (getter)GridLimits_get_enable_interconnection_limit,(setter)GridLimits_set_enable_interconnection_limit, - PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n*Info*: Enable a grid interconnection limit"), + PyDoc_STR("*float*: Enable grid interconnection limit [0/1]\n\n**Info:**\nEnable a grid interconnection limit"), NULL}, {"grid_curtailment", (getter)GridLimits_get_grid_curtailment,(setter)GridLimits_set_grid_curtailment, - PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Grid curtailment as energy delivery limit (first year) [MW]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"grid_interconnection_limit_kwac", (getter)GridLimits_get_grid_interconnection_limit_kwac,(setter)GridLimits_set_grid_interconnection_limit_kwac, PyDoc_STR("*float*: Grid interconnection limit [kWac]"), @@ -12427,24 +12714,24 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; static PyObject * -Outputs_get_ac_lifetime_loss(VarGroupObject *self, void *closure) +Outputs_get_ac_gross(VarGroupObject *self, void *closure) { - return PySAM_array_getter(SAM_Pvsamv1_Outputs_ac_lifetime_loss_aget, self->data_ptr); + return PySAM_array_getter(SAM_Pvsamv1_Outputs_ac_gross_aget, self->data_ptr); } static PyObject * -Outputs_get_ac_loss(VarGroupObject *self, void *closure) +Outputs_get_ac_lifetime_loss(VarGroupObject *self, void *closure) { - return PySAM_double_getter(SAM_Pvsamv1_Outputs_ac_loss_nget, self->data_ptr); + return PySAM_array_getter(SAM_Pvsamv1_Outputs_ac_lifetime_loss_aget, self->data_ptr); } static PyObject * @@ -13383,6 +13670,12 @@ Outputs_get_dc_invmppt_loss(VarGroupObject *self, void *closure) return PySAM_array_getter(SAM_Pvsamv1_Outputs_dc_invmppt_loss_aget, self->data_ptr); } +static PyObject * +Outputs_get_dc_lifetime_loss(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Pvsamv1_Outputs_dc_lifetime_loss_aget, self->data_ptr); +} + static PyObject * Outputs_get_dc_net(VarGroupObject *self, void *closure) { @@ -14686,12 +14979,12 @@ Outputs_get_xfmr_nll_year1(VarGroupObject *self, void *closure) } static PyGetSetDef Outputs_getset[] = { +{"ac_gross", (getter)Outputs_get_ac_gross,(setter)0, + PyDoc_STR("*sequence*: Inverter AC output power [kW]"), + NULL}, {"ac_lifetime_loss", (getter)Outputs_get_ac_lifetime_loss,(setter)0, PyDoc_STR("*sequence*: AC lifetime daily loss [kW]"), NULL}, -{"ac_loss", (getter)Outputs_get_ac_loss,(setter)0, - PyDoc_STR("*float*: AC wiring loss [%]"), - NULL}, {"ac_perf_adj_loss", (getter)Outputs_get_ac_perf_adj_loss,(setter)0, PyDoc_STR("*sequence*: AC performance adjustment loss [kW]"), NULL}, @@ -14705,7 +14998,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Absolute air mass"), NULL}, {"alb", (getter)Outputs_get_alb,(setter)0, - PyDoc_STR("*sequence*: Weather file albedo"), + PyDoc_STR("*sequence*: Albedo"), NULL}, {"annual_ac_battery_loss_percent", (getter)Outputs_get_annual_ac_battery_loss_percent,(setter)0, PyDoc_STR("*float*: AC-connected battery loss - year 1 [%]"), @@ -15140,10 +15433,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Battery cell voltage [V]"), NULL}, {"capacity_factor", (getter)Outputs_get_capacity_factor,(setter)0, - PyDoc_STR("*float*: Capacity factor based on DC system capacity [%]"), + PyDoc_STR("*float*: Capacity factor based on nameplate DC capacity [%]"), NULL}, {"capacity_factor_ac", (getter)Outputs_get_capacity_factor_ac,(setter)0, - PyDoc_STR("*float*: Capacity factor based on AC system capacity [%]"), + PyDoc_STR("*float*: Capacity factor based on total AC capacity [%]"), NULL}, {"cdf_of_surviving", (getter)Outputs_get_cdf_of_surviving,(setter)0, PyDoc_STR("*sequence*: Hours of autonomy during grid outage cumulative probabilities"), @@ -15160,6 +15453,9 @@ static PyGetSetDef Outputs_getset[] = { {"dc_invmppt_loss", (getter)Outputs_get_dc_invmppt_loss,(setter)0, PyDoc_STR("*sequence*: Inverter clipping loss DC MPPT voltage limits [kW]"), NULL}, +{"dc_lifetime_loss", (getter)Outputs_get_dc_lifetime_loss,(setter)0, + PyDoc_STR("*sequence*: DC lifetime daily loss [kW]"), + NULL}, {"dc_net", (getter)Outputs_get_dc_net,(setter)0, PyDoc_STR("*sequence*: Inverter DC input power [kW]"), NULL}, @@ -15242,7 +15538,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Energy yield [kWh/kW]"), NULL}, {"market_sell_rate_series_yr1", (getter)Outputs_get_market_sell_rate_series_yr1,(setter)0, - PyDoc_STR("*sequence*: Power price for battery dispatch (year 1) [$/MWh]"), + PyDoc_STR("*sequence*: Power price for battery dispatch [$/MWh]"), NULL}, {"monthly_batt_to_grid", (getter)Outputs_get_monthly_batt_to_grid,(setter)0, PyDoc_STR("*sequence*: Energy to grid from battery [kWh]"), @@ -15978,6 +16274,10 @@ newPvsamv1Object(void* data_ptr) PyDict_SetItemString(attr_dict, "PriceSignal", PriceSignal_obj); Py_DECREF(PriceSignal_obj); + PyObject* Revenue_obj = Revenue_new(self->data_ptr); + PyDict_SetItemString(attr_dict, "Revenue", Revenue_obj); + Py_DECREF(Revenue_obj); + PyObject* ElectricityRates_obj = ElectricityRates_new(self->data_ptr); PyDict_SetItemString(attr_dict, "ElectricityRates", ElectricityRates_obj); Py_DECREF(ElectricityRates_obj); @@ -16261,12 +16561,11 @@ static PyMethodDef Pvsamv1Module_methods[] = { {"new", Pvsamv1_new, METH_VARARGS, PyDoc_STR("new() -> Pvsamv1")}, {"default", Pvsamv1_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvsamv1\n\nUse default attributes\n" - "`config` options:\n\n- \"FlatPlatePVAllEquityPartnershipFlip\"\n- \"FlatPlatePVCommercial\"\n- \"FlatPlatePVHostDeveloper\"\n- \"FlatPlatePVLCOECalculator\"\n- \"FlatPlatePVLeveragedPartnershipFlip\"\n- \"FlatPlatePVMerchantPlant\"\n- \"FlatPlatePVNone\"\n- \"FlatPlatePVResidential\"\n- \"FlatPlatePVSaleLeaseback\"\n- \"FlatPlatePVSingleOwner\"\n- \"FlatPlatePVThirdParty\"\n- \"PVBatteryAllEquityPartnershipFlip\"\n- \"PVBatteryCommercial\"\n- \"PVBatteryHostDeveloper\"\n- \"PVBatteryLeveragedPartnershipFlip\"\n- \"PVBatteryMerchantPlant\"\n- \"PVBatteryResidential\"\n- \"PVBatterySaleLeaseback\"\n- \"PVBatterySingleOwner\"\n- \"PVBatteryThirdParty\"")}, + PyDoc_STR("default(config) -> Pvsamv1\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FlatPlatePVAllEquityPartnershipFlip\"*\n\n - *\"FlatPlatePVCommercial\"*\n\n - *\"FlatPlatePVHostDeveloper\"*\n\n - *\"FlatPlatePVLCOECalculator\"*\n\n - *\"FlatPlatePVLeveragedPartnershipFlip\"*\n\n - *\"FlatPlatePVMerchantPlant\"*\n\n - *\"FlatPlatePVNone\"*\n\n - *\"FlatPlatePVResidential\"*\n\n - *\"FlatPlatePVSaleLeaseback\"*\n\n - *\"FlatPlatePVSingleOwner\"*\n\n - *\"FlatPlatePVThirdParty\"*\n\n - *\"PVBatteryAllEquityPartnershipFlip\"*\n\n - *\"PVBatteryCommercial\"*\n\n - *\"PVBatteryHostDeveloper\"*\n\n - *\"PVBatteryLeveragedPartnershipFlip\"*\n\n - *\"PVBatteryMerchantPlant\"*\n\n - *\"PVBatteryResidential\"*\n\n - *\"PVBatterySaleLeaseback\"*\n\n - *\"PVBatterySingleOwner\"*\n\n - *\"PVBatteryThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvsamv1_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvsamv1\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvsamv1\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvsamv1_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvsamv1\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvsamv1\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; @@ -16486,6 +16785,13 @@ Pvsamv1Module_exec(PyObject *m) (PyObject*)&PriceSignal_Type); Py_DECREF(&PriceSignal_Type); + /// Add the Revenue type object to Pvsamv1_Type + if (PyType_Ready(&Revenue_Type) < 0) { goto fail; } + PyDict_SetItemString(Pvsamv1_Type.tp_dict, + "Revenue", + (PyObject*)&Revenue_Type); + Py_DECREF(&Revenue_Type); + /// Add the ElectricityRates type object to Pvsamv1_Type if (PyType_Ready(&ElectricityRates_Type) < 0) { goto fail; } PyDict_SetItemString(Pvsamv1_Type.tp_dict, diff --git a/modules/Pvsandiainv.c b/modules/Pvsandiainv.c index c2ffff9c..f0b62e24 100644 --- a/modules/Pvsandiainv.c +++ b/modules/Pvsandiainv.c @@ -69,11 +69,11 @@ SandiaInverterModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef SandiaInverterModel_methods[] = { {"assign", (PyCFunction)SandiaInverterModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SandiaInverterModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SandiaInverterModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SandiaInverterModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SandiaInverterModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SandiaInverterModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)SandiaInverterModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -211,37 +211,37 @@ SandiaInverterModel_set_vdco(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef SandiaInverterModel_getset[] = { {"c0", (getter)SandiaInverterModel_get_c0,(setter)SandiaInverterModel_set_c0, - PyDoc_STR("*float*: C0: Defines parabolic curvature of relationship between ac power and dc power at reference conditions [1/W]\n\n*Required*: True"), + PyDoc_STR("*float*: C0: Defines parabolic curvature of relationship between ac power and dc power at reference conditions [1/W]\n\n**Required:**\nTrue"), NULL}, {"c1", (getter)SandiaInverterModel_get_c1,(setter)SandiaInverterModel_set_c1, - PyDoc_STR("*float*: C1: Parameter allowing Pdco to vary linearly with dc voltage input [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: C1: Parameter allowing Pdco to vary linearly with dc voltage input [1/V]\n\n**Required:**\nTrue"), NULL}, {"c2", (getter)SandiaInverterModel_get_c2,(setter)SandiaInverterModel_set_c2, - PyDoc_STR("*float*: C2: Parameter allowing Pso to vary linearly with dc voltage input [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: C2: Parameter allowing Pso to vary linearly with dc voltage input [1/V]\n\n**Required:**\nTrue"), NULL}, {"c3", (getter)SandiaInverterModel_get_c3,(setter)SandiaInverterModel_set_c3, - PyDoc_STR("*float*: C3: Parameter allowing C0 to vary linearly with dc voltage input [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: C3: Parameter allowing C0 to vary linearly with dc voltage input [1/V]\n\n**Required:**\nTrue"), NULL}, {"dc", (getter)SandiaInverterModel_get_dc,(setter)SandiaInverterModel_set_dc, - PyDoc_STR("*sequence*: DC power input to inverter [Watt]\n\n*Required*: True"), + PyDoc_STR("*sequence*: DC power input to inverter [Watt]\n\n**Required:**\nTrue"), NULL}, {"dc_voltage", (getter)SandiaInverterModel_get_dc_voltage,(setter)SandiaInverterModel_set_dc_voltage, - PyDoc_STR("*sequence*: DC voltage input to inverter [Volt]\n\n*Constraints*: LENGTH_EQUAL=dc\n\n*Required*: True"), + PyDoc_STR("*sequence*: DC voltage input to inverter [Volt]\n\n**Constraints:**\nLENGTH_EQUAL=dc\n\n**Required:**\nTrue"), NULL}, {"paco", (getter)SandiaInverterModel_get_paco,(setter)SandiaInverterModel_set_paco, - PyDoc_STR("*float*: Max AC power rating [Wac]\n\n*Required*: True"), + PyDoc_STR("*float*: Max AC power rating [Wac]\n\n**Required:**\nTrue"), NULL}, {"pdco", (getter)SandiaInverterModel_get_pdco,(setter)SandiaInverterModel_set_pdco, - PyDoc_STR("*float*: DC power level at which Paco is achieved [Wdc]\n\n*Required*: True"), + PyDoc_STR("*float*: DC power level at which Paco is achieved [Wdc]\n\n**Required:**\nTrue"), NULL}, {"pntare", (getter)SandiaInverterModel_get_pntare,(setter)SandiaInverterModel_set_pntare, - PyDoc_STR("*float*: Parasitic AC consumption [Wac]\n\n*Required*: True"), + PyDoc_STR("*float*: Parasitic AC consumption [Wac]\n\n**Required:**\nTrue"), NULL}, {"pso", (getter)SandiaInverterModel_get_pso,(setter)SandiaInverterModel_set_pso, - PyDoc_STR("*float*: DC power level required to start inversion [Wdc]\n\n*Required*: True"), + PyDoc_STR("*float*: DC power level required to start inversion [Wdc]\n\n**Required:**\nTrue"), NULL}, {"vdco", (getter)SandiaInverterModel_get_vdco,(setter)SandiaInverterModel_set_vdco, - PyDoc_STR("*float*: DV voltage level at which Paco is achieved [Volt]\n\n*Required*: True"), + PyDoc_STR("*float*: DV voltage level at which Paco is achieved [Volt]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -356,11 +356,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -753,12 +753,11 @@ static PyMethodDef PvsandiainvModule_methods[] = { {"new", Pvsandiainv_new, METH_VARARGS, PyDoc_STR("new() -> Pvsandiainv")}, {"default", Pvsandiainv_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvsandiainv\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvsandiainv\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvsandiainv_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvsandiainv\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvsandiainv\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvsandiainv_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvsandiainv\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvsandiainv\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv1.c b/modules/Pvwattsv1.c index 2f2f8244..5ce6bd51 100644 --- a/modules/Pvwattsv1.c +++ b/modules/Pvwattsv1.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ Weather_set_solar_resource_file(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef Weather_getset[] = { {"solar_resource_file", (getter)Weather_get_solar_resource_file,(setter)Weather_set_solar_resource_file, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ PVWatts_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVWatts_methods[] = { {"assign", (PyCFunction)PVWatts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVWatts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVWatts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVWatts_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVWatts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -564,91 +564,91 @@ PVWatts_set_w_stow(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef PVWatts_getset[] = { {"albedo", (getter)PVWatts_get_albedo,(setter)PVWatts_set_albedo, - PyDoc_STR("*float*: Albedo (ground reflectance) [frac]\n\n*Required*: False"), + PyDoc_STR("*float*: Albedo (ground reflectance) [frac]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"ar_glass", (getter)PVWatts_get_ar_glass,(setter)PVWatts_set_ar_glass, - PyDoc_STR("*float*: Enable anti-reflective glass coating (beta) [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable anti-reflective glass coating (beta) [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"azimuth", (getter)PVWatts_get_azimuth,(setter)PVWatts_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\nTrue"), NULL}, {"concen", (getter)PVWatts_get_concen,(setter)PVWatts_set_concen, - PyDoc_STR("*float*: Concentration ratio\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Concentration ratio\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"derate", (getter)PVWatts_get_derate,(setter)PVWatts_set_derate, - PyDoc_STR("*float*: System derate value [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: System derate value [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"enable_user_poa", (getter)PVWatts_get_enable_user_poa,(setter)PVWatts_set_enable_user_poa, - PyDoc_STR("*float*: Enable user-defined POA irradiance input [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable user-defined POA irradiance input [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"fd", (getter)PVWatts_get_fd,(setter)PVWatts_set_fd, - PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fhconv", (getter)PVWatts_get_fhconv,(setter)PVWatts_set_fhconv, - PyDoc_STR("*float*: Convective heat transfer factor\n\n*Constraints*: MIN=0.1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Convective heat transfer factor\n\n**Constraints:**\nMIN=0.1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"gamma", (getter)PVWatts_get_gamma,(setter)PVWatts_set_gamma, - PyDoc_STR("*float*: Max power temperature coefficient [%/C]\n\n*Required*: If not provided, assumed to be -0.5"), + PyDoc_STR("*float*: Max power temperature coefficient [%/C]\n\n**Required:**\nFalse. Automatically set to -0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"gcr", (getter)PVWatts_get_gcr,(setter)PVWatts_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"i_ref", (getter)PVWatts_get_i_ref,(setter)PVWatts_set_i_ref, - PyDoc_STR("*float*: Rating condition irradiance [W/m2]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1000"), + PyDoc_STR("*float*: Rating condition irradiance [W/m2]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1000 if not assigned explicitly or loaded from defaults."), NULL}, {"inoct", (getter)PVWatts_get_inoct,(setter)PVWatts_set_inoct, - PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_eff", (getter)PVWatts_get_inv_eff,(setter)PVWatts_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0.92"), + PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0.92 if not assigned explicitly or loaded from defaults."), NULL}, {"poa_cutin", (getter)PVWatts_get_poa_cutin,(setter)PVWatts_set_poa_cutin, - PyDoc_STR("*float*: Min reqd irradiance for operation [W/m2]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Min reqd irradiance for operation [W/m2]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rotlim", (getter)PVWatts_get_rotlim,(setter)PVWatts_set_rotlim, - PyDoc_STR("*float*: Tracker rotation limit (+/- 1 axis) [deg]\n\n*Constraints*: MIN=1,MAX=90\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Tracker rotation limit (+/- 1 axis) [deg]\n\n**Constraints:**\nMIN=1,MAX=90\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"shade_mode_1x", (getter)PVWatts_get_shade_mode_1x,(setter)PVWatts_set_shade_mode_1x, - PyDoc_STR("*float*: Tracker self-shading mode [0/1/2]\n\n*Options*: 0=shading,1=backtrack,2=none\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Tracker self-shading mode [0/1/2]\n\n**Options:**\n0=shading,1=backtrack,2=none\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"shading_azal", (getter)PVWatts_get_shading_azal,(setter)PVWatts_set_shading_azal, - PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading factors\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading factors\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_diff", (getter)PVWatts_get_shading_diff,(setter)PVWatts_set_shading_diff, - PyDoc_STR("*float*: Diffuse shading factor\n\n*Required*: False"), + PyDoc_STR("*float*: Diffuse shading factor\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_mxh", (getter)PVWatts_get_shading_mxh,(setter)PVWatts_set_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading factors\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading factors\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_timestep", (getter)PVWatts_get_shading_timestep,(setter)PVWatts_set_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Time step beam shading factors\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Time step beam shading factors\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"system_size", (getter)PVWatts_get_system_size,(setter)PVWatts_set_system_size, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)PVWatts_get_tilt,(setter)PVWatts_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: naof:tilt_eq_lat"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nnaof:tilt_eq_lat"), NULL}, {"tilt_eq_lat", (getter)PVWatts_get_tilt_eq_lat,(setter)PVWatts_set_tilt_eq_lat, - PyDoc_STR("*float*: Tilt=latitude override [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: na:tilt"), + PyDoc_STR("*float*: Tilt=latitude override [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nna:tilt"), NULL}, {"track_mode", (getter)PVWatts_get_track_mode,(setter)PVWatts_set_track_mode, - PyDoc_STR("*float*: Tracking mode [0/1/2/3]\n\n*Info*: Fixed,1Axis,2Axis,AziAxis\n\n*Constraints*: MIN=0,MAX=3,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [0/1/2/3]\n\n**Info:**\nFixed,1Axis,2Axis,AziAxis\n\n**Constraints:**\nMIN=0,MAX=3,INTEGER\n\n**Required:**\nTrue"), NULL}, {"tref", (getter)PVWatts_get_tref,(setter)PVWatts_set_tref, - PyDoc_STR("*float*: Reference cell temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 25.0"), + PyDoc_STR("*float*: Reference cell temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 25.0 if not assigned explicitly or loaded from defaults."), NULL}, {"u0", (getter)PVWatts_get_u0,(setter)PVWatts_set_u0, - PyDoc_STR("*float*: thermal model coeff U0\n\n*Required*: False"), + PyDoc_STR("*float*: thermal model coeff U0\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"u1", (getter)PVWatts_get_u1,(setter)PVWatts_set_u1, - PyDoc_STR("*float*: thermal model coeff U0\n\n*Required*: False"), + PyDoc_STR("*float*: thermal model coeff U0\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"user_poa", (getter)PVWatts_get_user_poa,(setter)PVWatts_set_user_poa, - PyDoc_STR("*sequence*: User-defined POA irradiance [W/m2]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True if enable_user_poa=1"), + PyDoc_STR("*sequence*: User-defined POA irradiance [W/m2]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nRequired if enable_user_poa=1"), NULL}, {"w_stow", (getter)PVWatts_get_w_stow,(setter)PVWatts_set_w_stow, - PyDoc_STR("*float*: Wind stow speed [m/s]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Wind stow speed [m/s]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -763,11 +763,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1386,12 +1386,11 @@ static PyMethodDef Pvwattsv1Module_methods[] = { {"new", Pvwattsv1_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv1")}, {"default", Pvwattsv1_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv1\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv1\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv1_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv1\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv1\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv1_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv1\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv1\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv11ts.c b/modules/Pvwattsv11ts.c index 71f4aa63..1e4d385e 100644 --- a/modules/Pvwattsv11ts.c +++ b/modules/Pvwattsv11ts.c @@ -69,11 +69,11 @@ PVWatts_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVWatts_methods[] = { {"assign", (PyCFunction)PVWatts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVWatts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVWatts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVWatts_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVWatts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -463,100 +463,100 @@ PVWatts_set_year(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef PVWatts_getset[] = { {"azimuth", (getter)PVWatts_get_azimuth,(setter)PVWatts_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\nTrue"), NULL}, {"beam", (getter)PVWatts_get_beam,(setter)PVWatts_set_beam, - PyDoc_STR("*float*: Beam normal irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Beam normal irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"day", (getter)PVWatts_get_day,(setter)PVWatts_set_day, - PyDoc_STR("*float*: Day [dy]\n\n*Info*: 1-days in month\n\n*Required*: True"), + PyDoc_STR("*float*: Day [dy]\n\n**Info:**\n1-days in month\n\n**Required:**\nTrue"), NULL}, {"derate", (getter)PVWatts_get_derate,(setter)PVWatts_set_derate, - PyDoc_STR("*float*: System derate value [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: System derate value [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"diffuse", (getter)PVWatts_get_diffuse,(setter)PVWatts_set_diffuse, - PyDoc_STR("*float*: Diffuse irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Diffuse irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"elevation", (getter)PVWatts_get_elevation,(setter)PVWatts_set_elevation, - PyDoc_STR("*float*: Elevation [m]\n\n*Required*: False"), + PyDoc_STR("*float*: Elevation [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"fd", (getter)PVWatts_get_fd,(setter)PVWatts_set_fd, - PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Diffuse fraction [0..1]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"gamma", (getter)PVWatts_get_gamma,(setter)PVWatts_set_gamma, - PyDoc_STR("*float*: Max power temperature coefficient [%/C]\n\n*Required*: If not provided, assumed to be -0.5"), + PyDoc_STR("*float*: Max power temperature coefficient [%/C]\n\n**Required:**\nFalse. Automatically set to -0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"hour", (getter)PVWatts_get_hour,(setter)PVWatts_set_hour, - PyDoc_STR("*float*: Hour [hr]\n\n*Info*: 0-23\n\n*Required*: True"), + PyDoc_STR("*float*: Hour [hr]\n\n**Info:**\n0-23\n\n**Required:**\nTrue"), NULL}, {"i_ref", (getter)PVWatts_get_i_ref,(setter)PVWatts_set_i_ref, - PyDoc_STR("*float*: Rating condition irradiance [W/m2]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1000"), + PyDoc_STR("*float*: Rating condition irradiance [W/m2]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1000 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_eff", (getter)PVWatts_get_inv_eff,(setter)PVWatts_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0.92"), + PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0.92 if not assigned explicitly or loaded from defaults."), NULL}, {"lat", (getter)PVWatts_get_lat,(setter)PVWatts_set_lat, - PyDoc_STR("*float*: Latitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Latitude [deg]\n\n**Required:**\nTrue"), NULL}, {"lon", (getter)PVWatts_get_lon,(setter)PVWatts_set_lon, - PyDoc_STR("*float*: Longitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Longitude [deg]\n\n**Required:**\nTrue"), NULL}, {"minute", (getter)PVWatts_get_minute,(setter)PVWatts_set_minute, - PyDoc_STR("*float*: Minute [min]\n\n*Info*: 0-59\n\n*Required*: True"), + PyDoc_STR("*float*: Minute [min]\n\n**Info:**\n0-59\n\n**Required:**\nTrue"), NULL}, {"month", (getter)PVWatts_get_month,(setter)PVWatts_set_month, - PyDoc_STR("*float*: Month [mn]\n\n*Info*: 1-12\n\n*Required*: True"), + PyDoc_STR("*float*: Month [mn]\n\n**Info:**\n1-12\n\n**Required:**\nTrue"), NULL}, {"poa", (getter)PVWatts_get_poa,(setter)PVWatts_set_poa, - PyDoc_STR("*float*: Plane of array irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Plane of array irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"poa_cutin", (getter)PVWatts_get_poa_cutin,(setter)PVWatts_set_poa_cutin, - PyDoc_STR("*float*: Min reqd irradiance for operation [W/m2]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Min reqd irradiance for operation [W/m2]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pressure", (getter)PVWatts_get_pressure,(setter)PVWatts_set_pressure, - PyDoc_STR("*float*: Pressure [millibars]\n\n*Required*: False"), + PyDoc_STR("*float*: Pressure [millibars]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"rotlim", (getter)PVWatts_get_rotlim,(setter)PVWatts_set_rotlim, - PyDoc_STR("*float*: Tracker rotation limit (+/- 1 axis) [deg]\n\n*Constraints*: MIN=1,MAX=90\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Tracker rotation limit (+/- 1 axis) [deg]\n\n**Constraints:**\nMIN=1,MAX=90\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"snow", (getter)PVWatts_get_snow,(setter)PVWatts_set_snow, - PyDoc_STR("*float*: Snow cover [cm]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Snow cover [cm]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_size", (getter)PVWatts_get_system_size,(setter)PVWatts_set_system_size, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue"), NULL}, {"t_noct", (getter)PVWatts_get_t_noct,(setter)PVWatts_set_t_noct, - PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Nominal operating cell temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"t_ref", (getter)PVWatts_get_t_ref,(setter)PVWatts_set_t_ref, - PyDoc_STR("*float*: Reference cell temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 25.0"), + PyDoc_STR("*float*: Reference cell temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 25.0 if not assigned explicitly or loaded from defaults."), NULL}, {"tamb", (getter)PVWatts_get_tamb,(setter)PVWatts_set_tamb, - PyDoc_STR("*float*: Ambient temperature (dry bulb temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temperature (dry bulb temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"tcell", (getter)PVWatts_get_tcell,(setter)PVWatts_set_tcell, - PyDoc_STR("*float*: Module temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Module temperature [C]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)PVWatts_get_tilt,(setter)PVWatts_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: naof:tilt_eq_lat"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nnaof:tilt_eq_lat"), NULL}, {"time_step", (getter)PVWatts_get_time_step,(setter)PVWatts_set_time_step, - PyDoc_STR("*float*: Time step of input data [hr]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time step of input data [hr]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"track_mode", (getter)PVWatts_get_track_mode,(setter)PVWatts_set_track_mode, - PyDoc_STR("*float*: Tracking mode [0/1/2/3]\n\n*Info*: Fixed,1Axis,2Axis,AziAxis\n\n*Constraints*: MIN=0,MAX=3,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [0/1/2/3]\n\n**Info:**\nFixed,1Axis,2Axis,AziAxis\n\n**Constraints:**\nMIN=0,MAX=3,INTEGER\n\n**Required:**\nTrue"), NULL}, {"tz", (getter)PVWatts_get_tz,(setter)PVWatts_set_tz, - PyDoc_STR("*float*: Time zone [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time zone [hr]\n\n**Required:**\nTrue"), NULL}, {"w_stow", (getter)PVWatts_get_w_stow,(setter)PVWatts_set_w_stow, - PyDoc_STR("*float*: Wind stow speed [m/s]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Wind stow speed [m/s]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"wspd", (getter)PVWatts_get_wspd,(setter)PVWatts_set_wspd, - PyDoc_STR("*float*: Wind speed [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Wind speed [m/s]\n\n**Required:**\nTrue"), NULL}, {"year", (getter)PVWatts_get_year,(setter)PVWatts_set_year, - PyDoc_STR("*float*: Year [yr]\n\n*Required*: True"), + PyDoc_STR("*float*: Year [yr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -671,11 +671,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1023,12 +1023,11 @@ static PyMethodDef Pvwattsv11tsModule_methods[] = { {"new", Pvwattsv11ts_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv11ts")}, {"default", Pvwattsv11ts_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv11ts\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv11ts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv11ts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv11ts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv11ts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv11ts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv11ts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv11ts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv1Poa.c b/modules/Pvwattsv1Poa.c index e71dc5cb..2e78e04e 100644 --- a/modules/Pvwattsv1Poa.c +++ b/modules/Pvwattsv1Poa.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -163,25 +163,25 @@ Weather_set_wspd(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"beam", (getter)Weather_get_beam,(setter)Weather_set_beam, - PyDoc_STR("*sequence*: Direct normal radiation [W/m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Direct normal radiation [W/m2]\n\n**Required:**\nTrue"), NULL}, {"incidence", (getter)Weather_get_incidence,(setter)Weather_set_incidence, - PyDoc_STR("*sequence*: Incidence angle to surface [deg]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incidence angle to surface [deg]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"poa_beam", (getter)Weather_get_poa_beam,(setter)Weather_set_poa_beam, - PyDoc_STR("*sequence*: Incident direct normal radiation [W/m2]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident direct normal radiation [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"poa_gnddiff", (getter)Weather_get_poa_gnddiff,(setter)Weather_set_poa_gnddiff, - PyDoc_STR("*sequence*: Incident ground diffuse irradiance [W/m2]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident ground diffuse irradiance [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"poa_skydiff", (getter)Weather_get_poa_skydiff,(setter)Weather_set_poa_skydiff, - PyDoc_STR("*sequence*: Incident sky diffuse radiation [W/m2]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incident sky diffuse radiation [W/m2]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"tdry", (getter)Weather_get_tdry,(setter)Weather_set_tdry, - PyDoc_STR("*sequence*: Dry bulb temperature ['C]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dry bulb temperature ['C]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {"wspd", (getter)Weather_get_wspd,(setter)Weather_set_wspd, - PyDoc_STR("*sequence*: Wind speed [m/s]\n\n*Constraints*: LENGTH_EQUAL=beam\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind speed [m/s]\n\n**Constraints:**\nLENGTH_EQUAL=beam\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -296,11 +296,11 @@ PVWatts_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVWatts_methods[] = { {"assign", (PyCFunction)PVWatts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVWatts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVWatts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVWatts_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVWatts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -390,25 +390,25 @@ PVWatts_set_t_ref(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef PVWatts_getset[] = { {"derate", (getter)PVWatts_get_derate,(setter)PVWatts_set_derate, - PyDoc_STR("*float*: System derate value [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: System derate value [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"gamma", (getter)PVWatts_get_gamma,(setter)PVWatts_set_gamma, - PyDoc_STR("*float*: Max power temperature coefficient [%/'C]\n\n*Required*: If not provided, assumed to be -0.5"), + PyDoc_STR("*float*: Max power temperature coefficient [%/'C]\n\n**Required:**\nFalse. Automatically set to -0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"inoct", (getter)PVWatts_get_inoct,(setter)PVWatts_set_inoct, - PyDoc_STR("*float*: Nominal operating cell temperature ['C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Nominal operating cell temperature ['C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_eff", (getter)PVWatts_get_inv_eff,(setter)PVWatts_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n*Constraints*: MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0.92"), + PyDoc_STR("*float*: Inverter efficiency at rated power [frac]\n\n**Constraints:**\nMIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0.92 if not assigned explicitly or loaded from defaults."), NULL}, {"step", (getter)PVWatts_get_step,(setter)PVWatts_set_step, - PyDoc_STR("*float*: Time step of input data [sec]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 3600"), + PyDoc_STR("*float*: Time step of input data [sec]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 3600 if not assigned explicitly or loaded from defaults."), NULL}, {"system_size", (getter)PVWatts_get_system_size,(setter)PVWatts_set_system_size, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Constraints*: MIN=0.5,MAX=100000\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Constraints:**\nMIN=0.5,MAX=100000\n\n**Required:**\nTrue"), NULL}, {"t_ref", (getter)PVWatts_get_t_ref,(setter)PVWatts_set_t_ref, - PyDoc_STR("*float*: Reference cell temperature ['C]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 25.0"), + PyDoc_STR("*float*: Reference cell temperature ['C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 25.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -523,11 +523,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -888,12 +888,11 @@ static PyMethodDef Pvwattsv1PoaModule_methods[] = { {"new", Pvwattsv1Poa_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv1Poa")}, {"default", Pvwattsv1Poa_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv1Poa\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv1Poa\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv1Poa_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv1Poa\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv1Poa\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv1Poa_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv1Poa\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv1Poa\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv5.c b/modules/Pvwattsv5.c index 998c7c6d..01ac7db6 100644 --- a/modules/Pvwattsv5.c +++ b/modules/Pvwattsv5.c @@ -69,11 +69,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -115,13 +115,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Analysis period [years]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Analysis period [years]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"dc_degradation", (getter)Lifetime_get_dc_degradation,(setter)Lifetime_set_dc_degradation, - PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -236,11 +236,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -270,10 +270,10 @@ SolarResource_set_solar_resource_file(VarGroupObject *self, PyObject *value, voi static PyGetSetDef SolarResource_getset[] = { {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather data\n\n*Info*: dn,df,tdry,wspd,lat,lon,tz\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather data\n\n**Info:**\ndn,df,tdry,wspd,lat,lon,tz\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, - PyDoc_STR("*str*: Weather file path\n\n*Required*: False"), + PyDoc_STR("*str*: Weather file path\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -566,46 +566,46 @@ SystemDesign_set_tilt(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"array_type", (getter)SystemDesign_get_array_type,(setter)SystemDesign_set_array_type, - PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n*Info*: Fixed OR,Fixed Roof,1Axis,Backtracked,2Axis\n\n*Constraints*: MIN=0,MAX=4,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n**Info:**\nFixed OR,Fixed Roof,1Axis,Backtracked,2Axis\n\n**Constraints:**\nMIN=0,MAX=4,INTEGER\n\n**Required:**\nTrue"), NULL}, {"azimuth", (getter)SystemDesign_get_azimuth,(setter)SystemDesign_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\narray_type<4"), NULL}, {"batt_simple_enable", (getter)SystemDesign_get_batt_simple_enable,(setter)SystemDesign_set_batt_simple_enable, - PyDoc_STR("*float*: Enable Battery [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Battery [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dc_ac_ratio", (getter)SystemDesign_get_dc_ac_ratio,(setter)SystemDesign_set_dc_ac_ratio, - PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1.1"), + PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1.1 if not assigned explicitly or loaded from defaults."), NULL}, {"gcr", (getter)SystemDesign_get_gcr,(setter)SystemDesign_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.4"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.4 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_eff", (getter)SystemDesign_get_inv_eff,(setter)SystemDesign_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n*Constraints*: MIN=90,MAX=99.5\n\n*Required*: If not provided, assumed to be 96"), + PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n**Constraints:**\nMIN=90,MAX=99.5\n\n**Required:**\nFalse. Automatically set to 96 if not assigned explicitly or loaded from defaults."), NULL}, {"losses", (getter)SystemDesign_get_losses,(setter)SystemDesign_set_losses, - PyDoc_STR("*float*: System losses [%]\n\n*Info*: Total system losses\n\n*Constraints*: MIN=-5,MAX=99\n\n*Required*: True"), + PyDoc_STR("*float*: System losses [%]\n\n**Info:**\nTotal system losses\n\n**Constraints:**\nMIN=-5,MAX=99\n\n**Required:**\nTrue"), NULL}, {"module_type", (getter)SystemDesign_get_module_type,(setter)SystemDesign_set_module_type, - PyDoc_STR("*float*: Module type [0/1/2]\n\n*Info*: Standard,Premium,Thin film\n\n*Constraints*: MIN=0,MAX=2,INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module type [0/1/2]\n\n**Info:**\nStandard,Premium,Thin film\n\n**Constraints:**\nMIN=0,MAX=2,INTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"shading_azal", (getter)SystemDesign_get_shading_azal,(setter)SystemDesign_set_shading_azal, - PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_diff", (getter)SystemDesign_get_shading_diff,(setter)SystemDesign_set_shading_diff, - PyDoc_STR("*float*: Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_mxh", (getter)SystemDesign_get_shading_mxh,(setter)SystemDesign_set_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_timestep", (getter)SystemDesign_get_shading_timestep,(setter)SystemDesign_set_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SystemDesign_get_tilt,(setter)SystemDesign_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\narray_type<4"), NULL}, {NULL} /* Sentinel */ }; @@ -720,11 +720,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1401,12 +1401,11 @@ static PyMethodDef Pvwattsv5Module_methods[] = { {"new", Pvwattsv5_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv5")}, {"default", Pvwattsv5_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv5\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv5\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv5_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv5\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv5\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv5_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv5\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv5\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv51ts.c b/modules/Pvwattsv51ts.c index ced0c1ba..8fcd7b0c 100644 --- a/modules/Pvwattsv51ts.c +++ b/modules/Pvwattsv51ts.c @@ -69,11 +69,11 @@ PVWatts_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVWatts_methods[] = { {"assign", (PyCFunction)PVWatts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVWatts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVWatts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVWatts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVWatts_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVWatts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -307,61 +307,61 @@ PVWatts_set_year(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef PVWatts_getset[] = { {"alb", (getter)PVWatts_get_alb,(setter)PVWatts_set_alb, - PyDoc_STR("*float*: Albedo [frac]\n\n*Required*: If not provided, assumed to be 0.2"), + PyDoc_STR("*float*: Albedo [frac]\n\n**Required:**\nFalse. Automatically set to 0.2 if not assigned explicitly or loaded from defaults."), NULL}, {"beam", (getter)PVWatts_get_beam,(setter)PVWatts_set_beam, - PyDoc_STR("*float*: Beam normal irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Beam normal irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"day", (getter)PVWatts_get_day,(setter)PVWatts_set_day, - PyDoc_STR("*float*: Day [dy]\n\n*Info*: 1-days in month\n\n*Required*: True"), + PyDoc_STR("*float*: Day [dy]\n\n**Info:**\n1-days in month\n\n**Required:**\nTrue"), NULL}, {"diffuse", (getter)PVWatts_get_diffuse,(setter)PVWatts_set_diffuse, - PyDoc_STR("*float*: Diffuse irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Diffuse irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"elevation", (getter)PVWatts_get_elevation,(setter)PVWatts_set_elevation, - PyDoc_STR("*float*: Elevation [m]\n\n*Required*: False"), + PyDoc_STR("*float*: Elevation [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"hour", (getter)PVWatts_get_hour,(setter)PVWatts_set_hour, - PyDoc_STR("*float*: Hour [hr]\n\n*Info*: 0-23\n\n*Required*: True"), + PyDoc_STR("*float*: Hour [hr]\n\n**Info:**\n0-23\n\n**Required:**\nTrue"), NULL}, {"lat", (getter)PVWatts_get_lat,(setter)PVWatts_set_lat, - PyDoc_STR("*float*: Latitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Latitude [deg]\n\n**Required:**\nTrue"), NULL}, {"lon", (getter)PVWatts_get_lon,(setter)PVWatts_set_lon, - PyDoc_STR("*float*: Longitude [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Longitude [deg]\n\n**Required:**\nTrue"), NULL}, {"minute", (getter)PVWatts_get_minute,(setter)PVWatts_set_minute, - PyDoc_STR("*float*: Minute [min]\n\n*Info*: 0-59\n\n*Required*: True"), + PyDoc_STR("*float*: Minute [min]\n\n**Info:**\n0-59\n\n**Required:**\nTrue"), NULL}, {"month", (getter)PVWatts_get_month,(setter)PVWatts_set_month, - PyDoc_STR("*float*: Month [mn]\n\n*Info*: 1-12\n\n*Required*: True"), + PyDoc_STR("*float*: Month [mn]\n\n**Info:**\n1-12\n\n**Required:**\nTrue"), NULL}, {"poa", (getter)PVWatts_get_poa,(setter)PVWatts_set_poa, - PyDoc_STR("*float*: Plane of array irradiance [W/m2]\n\n*Info*: Output from last time step may be used as input"), + PyDoc_STR("*float*: Plane of array irradiance [W/m2]\n\n**Info:**\nOutput from last time step may be used as input"), NULL}, {"pressure", (getter)PVWatts_get_pressure,(setter)PVWatts_set_pressure, - PyDoc_STR("*float*: Pressure [mbars]\n\n*Required*: False"), + PyDoc_STR("*float*: Pressure [mbars]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shaded_percent", (getter)PVWatts_get_shaded_percent,(setter)PVWatts_set_shaded_percent, - PyDoc_STR("*float*: Percent of panels that are shaded [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Percent of panels that are shaded [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"tamb", (getter)PVWatts_get_tamb,(setter)PVWatts_set_tamb, - PyDoc_STR("*float*: Ambient temperature (dry bulb temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temperature (dry bulb temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"tcell", (getter)PVWatts_get_tcell,(setter)PVWatts_set_tcell, - PyDoc_STR("*float*: Module temperature [C]\n\n*Info*: Output from last time step may be used as input"), + PyDoc_STR("*float*: Module temperature [C]\n\n**Info:**\nOutput from last time step may be used as input"), NULL}, {"time_step", (getter)PVWatts_get_time_step,(setter)PVWatts_set_time_step, - PyDoc_STR("*float*: Time step of input data [hr]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time step of input data [hr]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"tz", (getter)PVWatts_get_tz,(setter)PVWatts_set_tz, - PyDoc_STR("*float*: Time zone [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time zone [hr]\n\n**Required:**\nTrue"), NULL}, {"wspd", (getter)PVWatts_get_wspd,(setter)PVWatts_set_wspd, - PyDoc_STR("*float*: Wind speed [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Wind speed [m/s]\n\n**Required:**\nTrue"), NULL}, {"year", (getter)PVWatts_get_year,(setter)PVWatts_set_year, - PyDoc_STR("*float*: Year [yr]\n\n*Required*: True"), + PyDoc_STR("*float*: Year [yr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -476,11 +476,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -594,31 +594,31 @@ SystemDesign_set_tilt(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"array_type", (getter)SystemDesign_get_array_type,(setter)SystemDesign_set_array_type, - PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n*Info*: Fixed OR,Fixed Roof,1Axis,Backtracked,2Axis\n\n*Constraints*: MIN=0,MAX=4,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n**Info:**\nFixed OR,Fixed Roof,1Axis,Backtracked,2Axis\n\n**Constraints:**\nMIN=0,MAX=4,INTEGER\n\n**Required:**\nTrue"), NULL}, {"azimuth", (getter)SystemDesign_get_azimuth,(setter)SystemDesign_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\narray_type<4"), NULL}, {"dc_ac_ratio", (getter)SystemDesign_get_dc_ac_ratio,(setter)SystemDesign_set_dc_ac_ratio, - PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1.1"), + PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1.1 if not assigned explicitly or loaded from defaults."), NULL}, {"gcr", (getter)SystemDesign_get_gcr,(setter)SystemDesign_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.4"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.4 if not assigned explicitly or loaded from defaults."), NULL}, {"inv_eff", (getter)SystemDesign_get_inv_eff,(setter)SystemDesign_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n*Constraints*: MIN=90,MAX=99.5\n\n*Required*: If not provided, assumed to be 96"), + PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n**Constraints:**\nMIN=90,MAX=99.5\n\n**Required:**\nFalse. Automatically set to 96 if not assigned explicitly or loaded from defaults."), NULL}, {"losses", (getter)SystemDesign_get_losses,(setter)SystemDesign_set_losses, - PyDoc_STR("*float*: System losses [%]\n\n*Info*: Total system losses\n\n*Constraints*: MIN=-5,MAX=99\n\n*Required*: True"), + PyDoc_STR("*float*: System losses [%]\n\n**Info:**\nTotal system losses\n\n**Constraints:**\nMIN=-5,MAX=99\n\n**Required:**\nTrue"), NULL}, {"module_type", (getter)SystemDesign_get_module_type,(setter)SystemDesign_set_module_type, - PyDoc_STR("*float*: Module type [0/1/2]\n\n*Info*: Standard,Premium,Thin film\n\n*Constraints*: MIN=0,MAX=2,INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module type [0/1/2]\n\n**Info:**\nStandard,Premium,Thin film\n\n**Constraints:**\nMIN=0,MAX=2,INTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SystemDesign_get_tilt,(setter)SystemDesign_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\narray_type<4"), NULL}, {NULL} /* Sentinel */ }; @@ -733,11 +733,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1089,12 +1089,11 @@ static PyMethodDef Pvwattsv51tsModule_methods[] = { {"new", Pvwattsv51ts_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv51ts")}, {"default", Pvwattsv51ts_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv51ts\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv51ts\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv51ts_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv51ts\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv51ts\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv51ts_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv51ts\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv51ts\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv7.c b/modules/Pvwattsv7.c index cbcc497b..6102b275 100644 --- a/modules/Pvwattsv7.c +++ b/modules/Pvwattsv7.c @@ -71,11 +71,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -117,10 +117,10 @@ SolarResource_set_solar_resource_file(VarGroupObject *self, PyObject *value, voi static PyGetSetDef SolarResource_getset[] = { {"albedo", (getter)SolarResource_get_albedo,(setter)SolarResource_set_albedo, - PyDoc_STR("*sequence*: Albedo [frac]\n\n*Info*: if provided, will overwrite weather file albedo"), + PyDoc_STR("*sequence*: Albedo [frac]\n\n**Info:**\nif provided, will overwrite weather file albedo"), NULL}, {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather data\n\n*Info*: dn,df,tdry,wspd,lat,lon,tz,elev"), + PyDoc_STR("*dict*: Weather data\n\n**Info:**\ndn,df,tdry,wspd,lat,lon,tz,elev"), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, PyDoc_STR("*str*: Weather file path"), @@ -238,11 +238,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -284,13 +284,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Analysis period [years]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Analysis period [years]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"dc_degradation", (getter)Lifetime_get_dc_degradation,(setter)Lifetime_set_dc_degradation, - PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -405,11 +405,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -715,79 +715,79 @@ SystemDesign_set_xfmr_nll(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"ac_plant_max_f", (getter)SystemDesign_get_ac_plant_max_f,(setter)SystemDesign_set_ac_plant_max_f, - PyDoc_STR("*float*: Plant controller max output (as f(ac_size)) [ratio]\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Plant controller max output (as f(ac_size)) [ratio]\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"array_type", (getter)SystemDesign_get_array_type,(setter)SystemDesign_set_array_type, - PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n*Info*: Fixed Rack,Fixed Roof,1Axis,Backtracked,2Axis\n\n*Constraints*: MIN=0,MAX=4,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n**Info:**\nFixed Rack,Fixed Roof,1Axis,Backtracked,2Axis\n\n**Constraints:**\nMIN=0,MAX=4,INTEGER\n\n**Required:**\nTrue"), NULL}, {"azimuth", (getter)SystemDesign_get_azimuth,(setter)SystemDesign_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\narray_type<4"), NULL}, {"batt_simple_enable", (getter)SystemDesign_get_batt_simple_enable,(setter)SystemDesign_set_batt_simple_enable, - PyDoc_STR("*float*: Enable Battery [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Battery [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"bifaciality", (getter)SystemDesign_get_bifaciality,(setter)SystemDesign_set_bifaciality, - PyDoc_STR("*float*: Module bifaciality factor [0 or ~0.65]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module bifaciality factor [0 or ~0.65]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dc_ac_ratio", (getter)SystemDesign_get_dc_ac_ratio,(setter)SystemDesign_set_dc_ac_ratio, - PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1.1"), + PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1.1 if not assigned explicitly or loaded from defaults."), NULL}, {"en_snowloss", (getter)SystemDesign_get_en_snowloss,(setter)SystemDesign_set_en_snowloss, - PyDoc_STR("*float*: Enable snow loss model [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable snow loss model [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"enable_wind_stow", (getter)SystemDesign_get_enable_wind_stow,(setter)SystemDesign_set_enable_wind_stow, - PyDoc_STR("*float*: Enable tracker stow at high wind speeds [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable tracker stow at high wind speeds [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"gcr", (getter)SystemDesign_get_gcr,(setter)SystemDesign_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.4"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.4 if not assigned explicitly or loaded from defaults."), NULL}, {"gust_factor", (getter)SystemDesign_get_gust_factor,(setter)SystemDesign_set_gust_factor, - PyDoc_STR("*float*: Wind gust estimation factor\n\n*Required*: False"), + PyDoc_STR("*float*: Wind gust estimation factor\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"inv_eff", (getter)SystemDesign_get_inv_eff,(setter)SystemDesign_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n*Constraints*: MIN=90,MAX=99.5\n\n*Required*: If not provided, assumed to be 96"), + PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n**Constraints:**\nMIN=90,MAX=99.5\n\n**Required:**\nFalse. Automatically set to 96 if not assigned explicitly or loaded from defaults."), NULL}, {"losses", (getter)SystemDesign_get_losses,(setter)SystemDesign_set_losses, - PyDoc_STR("*float*: Other DC losses [%]\n\n*Info*: Total system losses\n\n*Constraints*: MIN=-5,MAX=99\n\n*Required*: True"), + PyDoc_STR("*float*: Other DC losses [%]\n\n**Info:**\nTotal system losses\n\n**Constraints:**\nMIN=-5,MAX=99\n\n**Required:**\nTrue"), NULL}, {"module_type", (getter)SystemDesign_get_module_type,(setter)SystemDesign_set_module_type, - PyDoc_STR("*float*: Module type [0/1/2]\n\n*Info*: Standard,Premium,Thin film\n\n*Constraints*: MIN=0,MAX=2,INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module type [0/1/2]\n\n**Info:**\nStandard,Premium,Thin film\n\n**Constraints:**\nMIN=0,MAX=2,INTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rotlim", (getter)SystemDesign_get_rotlim,(setter)SystemDesign_set_rotlim, - PyDoc_STR("*float*: Tracker rotation angle limit [deg]\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Tracker rotation angle limit [deg]\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"shading_azal", (getter)SystemDesign_get_shading_azal,(setter)SystemDesign_set_shading_azal, - PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_diff", (getter)SystemDesign_get_shading_diff,(setter)SystemDesign_set_shading_diff, - PyDoc_STR("*float*: Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_mxh", (getter)SystemDesign_get_shading_mxh,(setter)SystemDesign_set_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_timestep", (getter)SystemDesign_get_shading_timestep,(setter)SystemDesign_set_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"soiling", (getter)SystemDesign_get_soiling,(setter)SystemDesign_set_soiling, - PyDoc_STR("*sequence*: Soiling loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Soiling loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"stow_wspd", (getter)SystemDesign_get_stow_wspd,(setter)SystemDesign_set_stow_wspd, - PyDoc_STR("*float*: Tracker stow wind speed threshold [m/s]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Tracker stow wind speed threshold [m/s]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SystemDesign_get_tilt,(setter)SystemDesign_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\narray_type<4"), NULL}, {"wind_stow_angle", (getter)SystemDesign_get_wind_stow_angle,(setter)SystemDesign_set_wind_stow_angle, - PyDoc_STR("*float*: Tracker angle for wind stow [deg]\n\n*Required*: If not provided, assumed to be 30.0"), + PyDoc_STR("*float*: Tracker angle for wind stow [deg]\n\n**Required:**\nFalse. Automatically set to 30.0 if not assigned explicitly or loaded from defaults."), NULL}, {"xfmr_ll", (getter)SystemDesign_get_xfmr_ll,(setter)SystemDesign_set_xfmr_ll, - PyDoc_STR("*float*: GSU transformer load loss (resistive) [%(ac)]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: GSU transformer load loss (resistive) [%(ac)]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"xfmr_nll", (getter)SystemDesign_get_xfmr_nll,(setter)SystemDesign_set_xfmr_nll, - PyDoc_STR("*float*: GSU transformer no load loss (iron core) [%(ac)]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: GSU transformer no load loss (iron core) [%(ac)]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -902,11 +902,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1621,12 +1621,11 @@ static PyMethodDef Pvwattsv7Module_methods[] = { {"new", Pvwattsv7_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv7")}, {"default", Pvwattsv7_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv7\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Pvwattsv7\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv7_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv7\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv7\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv7_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv7\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv7\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Pvwattsv8.c b/modules/Pvwattsv8.c index 46b5705e..fd5425d4 100644 --- a/modules/Pvwattsv8.c +++ b/modules/Pvwattsv8.c @@ -71,11 +71,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -129,16 +129,16 @@ SolarResource_set_use_wf_albedo(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SolarResource_getset[] = { {"albedo", (getter)SolarResource_get_albedo,(setter)SolarResource_set_albedo, - PyDoc_STR("*sequence*: Albedo [frac]\n\n*Info*: if provided, will overwrite weather file albedo"), + PyDoc_STR("*sequence*: Albedo [frac]\n\n**Info:**\nif provided, will overwrite weather file albedo"), NULL}, {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather data\n\n*Info*: dn,df,tdry,wspd,lat,lon,tz,elev"), + PyDoc_STR("*dict*: Weather data\n\n**Info:**\ndn,df,tdry,wspd,lat,lon,tz,elev"), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, PyDoc_STR("*str*: Weather file path"), NULL}, {"use_wf_albedo", (getter)SolarResource_get_use_wf_albedo,(setter)SolarResource_set_use_wf_albedo, - PyDoc_STR("*float*: Use albedo from weather file [0/1]\n\n*Info*: will use weather file albedo instead of albedo input\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use albedo from weather file [0/1]\n\n**Info:**\nwill use weather file albedo instead of albedo input\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -253,11 +253,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -299,13 +299,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Analysis period [years]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*float*: Analysis period [years]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"dc_degradation", (getter)Lifetime_get_dc_degradation,(setter)Lifetime_set_dc_degradation, - PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n*Required*: True if system_use_lifetime_output=1"), + PyDoc_STR("*sequence*: Annual DC degradation for lifetime simulations [%/year]\n\n**Required:**\nRequired if system_use_lifetime_output=1"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run lifetime simulation [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -420,11 +420,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -718,76 +718,76 @@ SystemDesign_set_xfmr_nll(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"array_type", (getter)SystemDesign_get_array_type,(setter)SystemDesign_set_array_type, - PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n*Info*: Fixed Rack,Fixed Roof,1Axis,Backtracked,2Axis\n\n*Constraints*: MIN=0,MAX=4,INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Array type [0/1/2/3/4]\n\n**Info:**\nFixed Rack,Fixed Roof,1Axis,Backtracked,2Axis\n\n**Constraints:**\nMIN=0,MAX=4,INTEGER\n\n**Required:**\nTrue"), NULL}, {"azimuth", (getter)SystemDesign_get_azimuth,(setter)SystemDesign_set_azimuth, - PyDoc_STR("*float*: Azimuth angle [deg]\n\n*Options*: E=90,S=180,W=270\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Azimuth angle [deg]\n\n**Options:**\nE=90,S=180,W=270\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\narray_type<4"), NULL}, {"batt_simple_enable", (getter)SystemDesign_get_batt_simple_enable,(setter)SystemDesign_set_batt_simple_enable, - PyDoc_STR("*float*: Enable Battery [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Battery [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"bifaciality", (getter)SystemDesign_get_bifaciality,(setter)SystemDesign_set_bifaciality, - PyDoc_STR("*float*: Module bifaciality factor [0 or ~0.65]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module bifaciality factor [0 or ~0.65]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dc_ac_ratio", (getter)SystemDesign_get_dc_ac_ratio,(setter)SystemDesign_set_dc_ac_ratio, - PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n*Constraints*: POSITIVE\n\n*Required*: If not provided, assumed to be 1.1"), + PyDoc_STR("*float*: DC to AC ratio [ratio]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nFalse. Automatically set to 1.1 if not assigned explicitly or loaded from defaults."), NULL}, {"en_snowloss", (getter)SystemDesign_get_en_snowloss,(setter)SystemDesign_set_en_snowloss, - PyDoc_STR("*float*: Enable snow loss model [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable snow loss model [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"enable_wind_stow", (getter)SystemDesign_get_enable_wind_stow,(setter)SystemDesign_set_enable_wind_stow, - PyDoc_STR("*float*: Enable tracker stow at high wind speeds [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable tracker stow at high wind speeds [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"gcr", (getter)SystemDesign_get_gcr,(setter)SystemDesign_set_gcr, - PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n*Constraints*: MIN=0.01,MAX=0.99\n\n*Required*: If not provided, assumed to be 0.4"), + PyDoc_STR("*float*: Ground coverage ratio [0..1]\n\n**Constraints:**\nMIN=0.01,MAX=0.99\n\n**Required:**\nFalse. Automatically set to 0.4 if not assigned explicitly or loaded from defaults."), NULL}, {"gust_factor", (getter)SystemDesign_get_gust_factor,(setter)SystemDesign_set_gust_factor, - PyDoc_STR("*float*: Wind gust estimation factor\n\n*Required*: False"), + PyDoc_STR("*float*: Wind gust estimation factor\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"inv_eff", (getter)SystemDesign_get_inv_eff,(setter)SystemDesign_set_inv_eff, - PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n*Constraints*: MIN=90,MAX=99.5\n\n*Required*: If not provided, assumed to be 96"), + PyDoc_STR("*float*: Inverter efficiency at rated power [%]\n\n**Constraints:**\nMIN=90,MAX=99.5\n\n**Required:**\nFalse. Automatically set to 96 if not assigned explicitly or loaded from defaults."), NULL}, {"losses", (getter)SystemDesign_get_losses,(setter)SystemDesign_set_losses, - PyDoc_STR("*float*: Other DC losses [%]\n\n*Info*: Total system losses\n\n*Constraints*: MIN=-5,MAX=99\n\n*Required*: True"), + PyDoc_STR("*float*: Other DC losses [%]\n\n**Info:**\nTotal system losses\n\n**Constraints:**\nMIN=-5,MAX=99\n\n**Required:**\nTrue"), NULL}, {"module_type", (getter)SystemDesign_get_module_type,(setter)SystemDesign_set_module_type, - PyDoc_STR("*float*: Module type [0/1/2]\n\n*Info*: Standard,Premium,Thin film\n\n*Constraints*: MIN=0,MAX=2,INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Module type [0/1/2]\n\n**Info:**\nStandard,Premium,Thin film\n\n**Constraints:**\nMIN=0,MAX=2,INTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rotlim", (getter)SystemDesign_get_rotlim,(setter)SystemDesign_set_rotlim, - PyDoc_STR("*float*: Tracker rotation angle limit [deg]\n\n*Required*: If not provided, assumed to be 45.0"), + PyDoc_STR("*float*: Tracker rotation angle limit [deg]\n\n**Required:**\nFalse. Automatically set to 45.0 if not assigned explicitly or loaded from defaults."), NULL}, {"shading_azal", (getter)SystemDesign_get_shading_azal,(setter)SystemDesign_set_shading_azal, - PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_diff", (getter)SystemDesign_get_shading_diff,(setter)SystemDesign_set_shading_diff, - PyDoc_STR("*float*: Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_mxh", (getter)SystemDesign_get_shading_mxh,(setter)SystemDesign_set_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_timestep", (getter)SystemDesign_get_shading_timestep,(setter)SystemDesign_set_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"soiling", (getter)SystemDesign_get_soiling,(setter)SystemDesign_set_soiling, - PyDoc_STR("*sequence*: Soiling loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence*: Soiling loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"stow_wspd", (getter)SystemDesign_get_stow_wspd,(setter)SystemDesign_set_stow_wspd, - PyDoc_STR("*float*: Tracker stow wind speed threshold [m/s]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Tracker stow wind speed threshold [m/s]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"system_capacity", (getter)SystemDesign_get_system_capacity,(setter)SystemDesign_set_system_capacity, - PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: System size (DC nameplate) [kW]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SystemDesign_get_tilt,(setter)SystemDesign_set_tilt, - PyDoc_STR("*float*: Tilt angle [deg]\n\n*Options*: H=0,V=90\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: array_type<4"), + PyDoc_STR("*float*: Tilt angle [deg]\n\n**Options:**\nH=0,V=90\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\narray_type<4"), NULL}, {"wind_stow_angle", (getter)SystemDesign_get_wind_stow_angle,(setter)SystemDesign_set_wind_stow_angle, - PyDoc_STR("*float*: Tracker angle for wind stow [deg]\n\n*Required*: If not provided, assumed to be 30.0"), + PyDoc_STR("*float*: Tracker angle for wind stow [deg]\n\n**Required:**\nFalse. Automatically set to 30.0 if not assigned explicitly or loaded from defaults."), NULL}, {"xfmr_ll", (getter)SystemDesign_get_xfmr_ll,(setter)SystemDesign_set_xfmr_ll, - PyDoc_STR("*float*: GSU transformer load loss (resistive) [%(ac)]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: GSU transformer load loss (resistive) [%(ac)]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"xfmr_nll", (getter)SystemDesign_get_xfmr_nll,(setter)SystemDesign_set_xfmr_nll, - PyDoc_STR("*float*: GSU transformer no load loss (iron core) [%(ac)]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: GSU transformer no load loss (iron core) [%(ac)]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -902,11 +902,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -922,12 +922,24 @@ Outputs_get_ac_annual(VarGroupObject *self, void *closure) return PySAM_double_getter(SAM_Pvwattsv8_Outputs_ac_annual_nget, self->data_ptr); } +static PyObject * +Outputs_get_ac_annual_pre_adjust(VarGroupObject *self, void *closure) +{ + return PySAM_double_getter(SAM_Pvwattsv8_Outputs_ac_annual_pre_adjust_nget, self->data_ptr); +} + static PyObject * Outputs_get_ac_monthly(VarGroupObject *self, void *closure) { return PySAM_array_getter(SAM_Pvwattsv8_Outputs_ac_monthly_aget, self->data_ptr); } +static PyObject * +Outputs_get_ac_pre_adjust(VarGroupObject *self, void *closure) +{ + return PySAM_array_getter(SAM_Pvwattsv8_Outputs_ac_pre_adjust_aget, self->data_ptr); +} + static PyObject * Outputs_get_annual_energy(VarGroupObject *self, void *closure) { @@ -1163,9 +1175,15 @@ static PyGetSetDef Outputs_getset[] = { {"ac_annual", (getter)Outputs_get_ac_annual,(setter)0, PyDoc_STR("*float*: Annual AC output [kWh]"), NULL}, +{"ac_annual_pre_adjust", (getter)Outputs_get_ac_annual_pre_adjust,(setter)0, + PyDoc_STR("*float*: Annual AC output before system availability [kWh]"), + NULL}, {"ac_monthly", (getter)Outputs_get_ac_monthly,(setter)0, PyDoc_STR("*sequence*: AC output [kWh]"), NULL}, +{"ac_pre_adjust", (getter)Outputs_get_ac_pre_adjust,(setter)0, + PyDoc_STR("*sequence*: AC inverter output power before system availability [W]"), + NULL}, {"annual_energy", (getter)Outputs_get_annual_energy,(setter)0, PyDoc_STR("*float*: Annual energy [kWh]"), NULL}, @@ -1176,10 +1194,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*sequence*: Angle of incidence [deg]"), NULL}, {"capacity_factor", (getter)Outputs_get_capacity_factor,(setter)0, - PyDoc_STR("*float*: Capacity factor based on DC system capacity [%]"), + PyDoc_STR("*float*: Capacity factor based on nameplate DC capacity [%]"), NULL}, {"capacity_factor_ac", (getter)Outputs_get_capacity_factor_ac,(setter)0, - PyDoc_STR("*float*: Capacity factor based on AC system capacity [%]"), + PyDoc_STR("*float*: Capacity factor based on total AC capacity [%]"), NULL}, {"city", (getter)Outputs_get_city,(setter)0, PyDoc_STR("*str*: City"), @@ -1630,12 +1648,11 @@ static PyMethodDef Pvwattsv8Module_methods[] = { {"new", Pvwattsv8_new, METH_VARARGS, PyDoc_STR("new() -> Pvwattsv8")}, {"default", Pvwattsv8_default, METH_VARARGS, - PyDoc_STR("default(config) -> Pvwattsv8\n\nUse default attributes\n" - "`config` options:\n\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"\n- \"PVWattsBatteryCommercial\"\n- \"PVWattsBatteryHostDeveloper\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsBatteryThirdParty\"\n- \"PVWattsAllEquityPartnershipFlip\"\n- \"PVWattsCommercial\"\n- \"PVWattsCommunitySolar\"\n- \"PVWattsHostDeveloper\"\n- \"PVWattsLCOECalculator\"\n- \"PVWattsLeveragedPartnershipFlip\"\n- \"PVWattsMerchantPlant\"\n- \"PVWattsNone\"\n- \"PVWattsResidential\"\n- \"PVWattsSaleLeaseback\"\n- \"PVWattsSingleOwner\"\n- \"PVWattsThirdParty\"")}, + PyDoc_STR("default(config) -> Pvwattsv8\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n - *\"PVWattsBatteryCommercial\"*\n\n - *\"PVWattsBatteryHostDeveloper\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n - *\"PVWattsAllEquityPartnershipFlip\"*\n\n - *\"PVWattsCommercial\"*\n\n - *\"PVWattsCommunitySolar\"*\n\n - *\"PVWattsHostDeveloper\"*\n\n - *\"PVWattsLCOECalculator\"*\n\n - *\"PVWattsLeveragedPartnershipFlip\"*\n\n - *\"PVWattsMerchantPlant\"*\n\n - *\"PVWattsNone\"*\n\n - *\"PVWattsResidential\"*\n\n - *\"PVWattsSaleLeaseback\"*\n\n - *\"PVWattsSingleOwner\"*\n\n - *\"PVWattsThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Pvwattsv8_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv8\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Pvwattsv8\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Pvwattsv8_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Pvwattsv8\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Pvwattsv8\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Saleleaseback.c b/modules/Saleleaseback.c index ca9b67f1..219e669a 100644 --- a/modules/Saleleaseback.c +++ b/modules/Saleleaseback.c @@ -69,11 +69,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -163,25 +163,25 @@ Revenue_set_ppa_soln_tolerance(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Revenue_getset[] = { {"ppa_escalation", (getter)Revenue_get_ppa_escalation,(setter)Revenue_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA price in first year [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: PPA price in first year input [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ppa_soln_max", (getter)Revenue_get_ppa_soln_max,(setter)Revenue_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Revenue_get_ppa_soln_max_iterations,(setter)Revenue_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Revenue_get_ppa_soln_min,(setter)Revenue_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_mode", (getter)Revenue_get_ppa_soln_mode,(setter)Revenue_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Revenue_get_ppa_soln_tolerance,(setter)Revenue_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-5"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -296,11 +296,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -546,64 +546,64 @@ FinancialParameters_set_system_heat_rate(VarGroupObject *self, PyObject *value, static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -718,11 +718,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1100,97 +1100,97 @@ SystemCosts_set_om_replacement_cost_escal(VarGroupObject *self, PyObject *value, static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1305,11 +1305,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1351,13 +1351,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1472,11 +1472,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1722,64 +1722,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1894,11 +1894,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2360,118 +2360,118 @@ Depreciation_set_depr_itc_sta_sl_5(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2586,11 +2586,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3652,268 +3652,268 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4028,11 +4028,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4086,16 +4086,16 @@ SystemOutput_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemOutput_getset[] = { {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: MIN=1e-3\n\n*Required*: True"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nMIN=1e-3\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4210,11 +4210,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4232,7 +4232,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4347,11 +4347,11 @@ SaleLeaseback_export(VarGroupObject *self, PyObject *args) static PyMethodDef SaleLeaseback_methods[] = { {"assign", (PyCFunction)SaleLeaseback_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SaleLeaseback_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SaleLeaseback_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SaleLeaseback_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SaleLeaseback_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SaleLeaseback_vals = { var: val, ...}``")}, {"export", (PyCFunction)SaleLeaseback_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4573,58 +4573,58 @@ SaleLeaseback_set_total_installed_cost(VarGroupObject *self, PyObject *value, vo static PyGetSetDef SaleLeaseback_getset[] = { {"construction_financing_cost", (getter)SaleLeaseback_get_construction_financing_cost,(setter)SaleLeaseback_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {"cost_dev_fee_percent", (getter)SaleLeaseback_get_cost_dev_fee_percent,(setter)SaleLeaseback_set_cost_dev_fee_percent, - PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Development fee (% pre-financing cost) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_equity_closing", (getter)SaleLeaseback_get_cost_equity_closing,(setter)SaleLeaseback_set_cost_equity_closing, - PyDoc_STR("*float*: Equity closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Equity closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)SaleLeaseback_get_cost_other_financing,(setter)SaleLeaseback_set_cost_other_financing, - PyDoc_STR("*float*: [$]\n\n*Info*: Other Financing Cost\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: [$]\n\n**Info:**\nOther Financing Cost\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_fedbas_method", (getter)SaleLeaseback_get_depr_fedbas_method,(setter)SaleLeaseback_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)SaleLeaseback_get_depr_stabas_method,(setter)SaleLeaseback_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_percent", (getter)SaleLeaseback_get_flip_target_percent,(setter)SaleLeaseback_set_flip_target_percent, - PyDoc_STR("*float*: After-tax flip/return target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax flip/return target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)SaleLeaseback_get_flip_target_year,(setter)SaleLeaseback_set_flip_target_year, - PyDoc_STR("*float*: Return target year\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Return target year\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)SaleLeaseback_get_salvage_percentage,(setter)SaleLeaseback_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"sponsor_operating_margin", (getter)SaleLeaseback_get_sponsor_operating_margin,(setter)SaleLeaseback_set_sponsor_operating_margin, - PyDoc_STR("*float*: Annual Developer (Lessee) Operating Margin [$/kW]\n\n*Required*: If not provided, assumed to be 40"), + PyDoc_STR("*float*: Annual Developer (Lessee) Operating Margin [$/kW]\n\n**Required:**\nFalse. Automatically set to 40 if not assigned explicitly or loaded from defaults."), NULL}, {"sponsor_operating_margin_escalation", (getter)SaleLeaseback_get_sponsor_operating_margin_escalation,(setter)SaleLeaseback_set_sponsor_operating_margin_escalation, - PyDoc_STR("*float*: Annual Developer (Lessee) Operating Margin Escalation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Annual Developer (Lessee) Operating Margin Escalation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"system_lifetime_recapitalize", (getter)SaleLeaseback_get_system_lifetime_recapitalize,(setter)SaleLeaseback_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)SaleLeaseback_get_system_recapitalization_cost,(setter)SaleLeaseback_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)SaleLeaseback_get_system_recapitalization_escalation,(setter)SaleLeaseback_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)SaleLeaseback_get_system_use_lifetime_output,(setter)SaleLeaseback_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {"system_use_recapitalization", (getter)SaleLeaseback_get_system_use_recapitalization,(setter)SaleLeaseback_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_investor_required_lease_reserve", (getter)SaleLeaseback_get_tax_investor_required_lease_reserve,(setter)SaleLeaseback_set_tax_investor_required_lease_reserve, - PyDoc_STR("*float*: Lessor Required Lease Payment Reserve [months]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Lessor Required Lease Payment Reserve [months]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SaleLeaseback_get_total_installed_cost,(setter)SaleLeaseback_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -4739,11 +4739,11 @@ TimeOfDelivery_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDelivery_methods[] = { {"assign", (PyCFunction)TimeOfDelivery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDelivery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDelivery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4905,43 +4905,43 @@ TimeOfDelivery_set_ppa_multiplier_model(VarGroupObject *self, PyObject *value, v static PyGetSetDef TimeOfDelivery_getset[] = { {"dispatch_factor1", (getter)TimeOfDelivery_get_dispatch_factor1,(setter)TimeOfDelivery_set_dispatch_factor1, - PyDoc_STR("*float*: TOD factor for period 1\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 1\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor2", (getter)TimeOfDelivery_get_dispatch_factor2,(setter)TimeOfDelivery_set_dispatch_factor2, - PyDoc_STR("*float*: TOD factor for period 2\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 2\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor3", (getter)TimeOfDelivery_get_dispatch_factor3,(setter)TimeOfDelivery_set_dispatch_factor3, - PyDoc_STR("*float*: TOD factor for period 3\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 3\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor4", (getter)TimeOfDelivery_get_dispatch_factor4,(setter)TimeOfDelivery_set_dispatch_factor4, - PyDoc_STR("*float*: TOD factor for period 4\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 4\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor5", (getter)TimeOfDelivery_get_dispatch_factor5,(setter)TimeOfDelivery_set_dispatch_factor5, - PyDoc_STR("*float*: TOD factor for period 5\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 5\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor6", (getter)TimeOfDelivery_get_dispatch_factor6,(setter)TimeOfDelivery_set_dispatch_factor6, - PyDoc_STR("*float*: TOD factor for period 6\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 6\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor7", (getter)TimeOfDelivery_get_dispatch_factor7,(setter)TimeOfDelivery_set_dispatch_factor7, - PyDoc_STR("*float*: TOD factor for period 7\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 7\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor8", (getter)TimeOfDelivery_get_dispatch_factor8,(setter)TimeOfDelivery_set_dispatch_factor8, - PyDoc_STR("*float*: TOD factor for period 8\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 8\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor9", (getter)TimeOfDelivery_get_dispatch_factor9,(setter)TimeOfDelivery_set_dispatch_factor9, - PyDoc_STR("*float*: TOD factor for period 9\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 9\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDelivery_get_dispatch_factors_ts,(setter)TimeOfDelivery_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDelivery_get_dispatch_sched_weekday,(setter)TimeOfDelivery_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDelivery_get_dispatch_sched_weekend,(setter)TimeOfDelivery_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDelivery_get_ppa_multiplier_model,(setter)TimeOfDelivery_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5056,11 +5056,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5193,11 +5193,11 @@ OtherCapitalCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef OtherCapitalCosts_methods[] = { {"assign", (PyCFunction)OtherCapitalCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)OtherCapitalCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``OtherCapitalCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)OtherCapitalCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5227,10 +5227,10 @@ OtherCapitalCosts_set_months_working_reserve(VarGroupObject *self, PyObject *val static PyGetSetDef OtherCapitalCosts_getset[] = { {"months_receivables_reserve", (getter)OtherCapitalCosts_get_months_receivables_reserve,(setter)OtherCapitalCosts_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)OtherCapitalCosts_get_months_working_reserve,(setter)OtherCapitalCosts_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5345,11 +5345,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5559,7 +5559,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -5571,28 +5571,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -5707,11 +5707,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5859,11 +5859,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5956,22 +5956,22 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6086,11 +6086,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11100,34 +11100,34 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lppa_nom", (getter)Outputs_get_lppa_nom,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price nominal [cents/kWh]"), NULL}, {"lppa_real", (getter)Outputs_get_lppa_real,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (real) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price real [cents/kWh]"), NULL}, {"nominal_discount_rate", (getter)Outputs_get_nominal_discount_rate,(setter)0, PyDoc_STR("*float*: Nominal discount rate [%]"), @@ -11145,16 +11145,16 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_ppa_revenue", (getter)Outputs_get_npv_ppa_revenue,(setter)0, PyDoc_STR("*float*: Present value of PPA revenue [$]"), NULL}, {"ppa", (getter)Outputs_get_ppa,(setter)0, - PyDoc_STR("*float*: PPA price (Year 1) [cents/kWh]"), + PyDoc_STR("*float*: PPA price in Year 1 [cents/kWh]"), NULL}, {"ppa_escalation", (getter)Outputs_get_ppa_escalation,(setter)0, PyDoc_STR("*float*: PPA price escalation [%/year]"), @@ -11223,7 +11223,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Investor (lessor) pre-tax NPV [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -11610,12 +11610,11 @@ static PyMethodDef SaleleasebackModule_methods[] = { {"new", Saleleaseback_new, METH_VARARGS, PyDoc_STR("new() -> Saleleaseback")}, {"default", Saleleaseback_default, METH_VARARGS, - PyDoc_STR("default(config) -> Saleleaseback\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerSaleLeaseback\"\n- \"DSLFSaleLeaseback\"\n- \"EmpiricalTroughSaleLeaseback\"\n- \"FlatPlatePVSaleLeaseback\"\n- \"GenericBatterySaleLeaseback\"\n- \"GenericCSPSystemSaleLeaseback\"\n- \"GenericSystemSaleLeaseback\"\n- \"GeothermalPowerSaleLeaseback\"\n- \"HighXConcentratingPVSaleLeaseback\"\n- \"MSLFSaleLeaseback\"\n- \"MSPTSaleLeaseback\"\n- \"PVBatterySaleLeaseback\"\n- \"PVWattsSaleLeaseback\"\n- \"PhysicalTroughSaleLeaseback\"\n- \"StandaloneBatterySaleLeaseback\"\n- \"WindPowerSaleLeaseback\"")}, + PyDoc_STR("default(config) -> Saleleaseback\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerSaleLeaseback\"*\n\n - *\"DSLFSaleLeaseback\"*\n\n - *\"EmpiricalTroughSaleLeaseback\"*\n\n - *\"FlatPlatePVSaleLeaseback\"*\n\n - *\"GenericBatterySaleLeaseback\"*\n\n - *\"GenericCSPSystemSaleLeaseback\"*\n\n - *\"GenericSystemSaleLeaseback\"*\n\n - *\"GeothermalPowerSaleLeaseback\"*\n\n - *\"HighXConcentratingPVSaleLeaseback\"*\n\n - *\"MSLFSaleLeaseback\"*\n\n - *\"MSPTSaleLeaseback\"*\n\n - *\"PVBatterySaleLeaseback\"*\n\n - *\"PVWattsSaleLeaseback\"*\n\n - *\"PhysicalTroughSaleLeaseback\"*\n\n - *\"StandaloneBatterySaleLeaseback\"*\n\n - *\"WindPowerSaleLeaseback\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Saleleaseback_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Saleleaseback\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Saleleaseback\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Saleleaseback_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Saleleaseback\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Saleleaseback\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Sco2AirCooler.c b/modules/Sco2AirCooler.c index 7a3c3305..e6914ab3 100644 --- a/modules/Sco2AirCooler.c +++ b/modules/Sco2AirCooler.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,22 +199,22 @@ Common_set_site_elevation(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"P_co2_hot_des", (getter)Common_get_P_co2_hot_des,(setter)Common_set_P_co2_hot_des, - PyDoc_STR("*float*: Pressure of CO2 at inlet to cooler [MPa]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure of CO2 at inlet to cooler [MPa]\n\n**Required:**\nTrue"), NULL}, {"T_amb_des", (getter)Common_get_T_amb_des,(setter)Common_set_T_amb_des, - PyDoc_STR("*float*: Ambient temperature at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temperature at design [C]\n\n**Required:**\nTrue"), NULL}, {"T_co2_cold_des", (getter)Common_get_T_co2_cold_des,(setter)Common_set_T_co2_cold_des, - PyDoc_STR("*float*: Cold temperature of CO2 at cooler exit [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold temperature of CO2 at cooler exit [C]\n\n**Required:**\nTrue"), NULL}, {"T_co2_hot_des", (getter)Common_get_T_co2_hot_des,(setter)Common_set_T_co2_hot_des, - PyDoc_STR("*float*: Hot temperature of CO2 at inlet to cooler [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot temperature of CO2 at inlet to cooler [C]\n\n**Required:**\nTrue"), NULL}, {"W_dot_fan_des", (getter)Common_get_W_dot_fan_des,(setter)Common_set_W_dot_fan_des, - PyDoc_STR("*float*: Air fan power [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Air fan power [MWe]\n\n**Required:**\nTrue"), NULL}, {"deltaP_co2_des", (getter)Common_get_deltaP_co2_des,(setter)Common_set_deltaP_co2_des, - PyDoc_STR("*float*: Pressure drop of CO2 through cooler [MPa]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop of CO2 through cooler [MPa]\n\n**Required:**\nTrue"), NULL}, {"od_calc_T_co2_cold", (getter)Common_get_od_calc_T_co2_cold,(setter)Common_set_od_calc_T_co2_cold, PyDoc_STR("*sequence[sequence]*: Columns: T_co2_hot_C, P_co2_hot_MPa, W_dot_fan_ND, m_dot_CO2_ND, T_amb_C. Rows: cases"), @@ -223,10 +223,10 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*sequence[sequence]*: Columns: T_co2_hot_C, P_co2_hot_MPa, T_co2_cold_C, m_dot_CO2_ND, T_amb_C. Rows: cases"), NULL}, {"q_dot_des", (getter)Common_get_q_dot_des,(setter)Common_set_q_dot_des, - PyDoc_STR("*float*: Heat rejected from CO2 stream [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat rejected from CO2 stream [MWt]\n\n**Required:**\nTrue"), NULL}, {"site_elevation", (getter)Common_get_site_elevation,(setter)Common_set_site_elevation, - PyDoc_STR("*float*: Site elevation [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Site elevation [m]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -864,12 +864,11 @@ static PyMethodDef Sco2AirCoolerModule_methods[] = { {"new", Sco2AirCooler_new, METH_VARARGS, PyDoc_STR("new() -> Sco2AirCooler")}, {"default", Sco2AirCooler_default, METH_VARARGS, - PyDoc_STR("default(config) -> Sco2AirCooler\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Sco2AirCooler\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Sco2AirCooler_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Sco2AirCooler\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Sco2AirCooler\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Sco2AirCooler_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Sco2AirCooler\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Sco2AirCooler\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Sco2CompCurves.c b/modules/Sco2CompCurves.c index 577c508b..7087088f 100644 --- a/modules/Sco2CompCurves.c +++ b/modules/Sco2CompCurves.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -115,13 +115,13 @@ Common_set_comp_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"P_comp_in", (getter)Common_get_P_comp_in,(setter)Common_set_P_comp_in, - PyDoc_STR("*float*: Compressor inlet pressure [MPa]\n\n*Required*: True"), + PyDoc_STR("*float*: Compressor inlet pressure [MPa]\n\n**Required:**\nTrue"), NULL}, {"T_comp_in", (getter)Common_get_T_comp_in,(setter)Common_set_T_comp_in, - PyDoc_STR("*float*: Compressor inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Compressor inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"comp_type", (getter)Common_get_comp_type,(setter)Common_set_comp_type, - PyDoc_STR("*float*: Integer corresponding to compressor model [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Integer corresponding to compressor model [-]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -236,11 +236,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -651,12 +651,11 @@ static PyMethodDef Sco2CompCurvesModule_methods[] = { {"new", Sco2CompCurves_new, METH_VARARGS, PyDoc_STR("new() -> Sco2CompCurves")}, {"default", Sco2CompCurves_default, METH_VARARGS, - PyDoc_STR("default(config) -> Sco2CompCurves\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Sco2CompCurves\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Sco2CompCurves_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Sco2CompCurves\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Sco2CompCurves\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Sco2CompCurves_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Sco2CompCurves\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Sco2CompCurves\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Sco2CspSystem.c b/modules/Sco2CspSystem.c index e7b7b5e7..33436309 100644 --- a/modules/Sco2CspSystem.c +++ b/modules/Sco2CspSystem.c @@ -69,11 +69,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,34 +199,34 @@ SystemDesign_set_site_elevation(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SystemDesign_getset[] = { {"T_amb_des", (getter)SystemDesign_get_T_amb_des,(setter)SystemDesign_set_T_amb_des, - PyDoc_STR("*float*: Ambient temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_htf_hot_des", (getter)SystemDesign_get_T_htf_hot_des,(setter)SystemDesign_set_T_htf_hot_des, - PyDoc_STR("*float*: HTF design hot temperature (PHX inlet) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF design hot temperature (PHX inlet) [C]\n\n**Required:**\nTrue"), NULL}, {"W_dot_net_des", (getter)SystemDesign_get_W_dot_net_des,(setter)SystemDesign_set_W_dot_net_des, - PyDoc_STR("*float*: Design cycle power output (no cooling parasitics) [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Design cycle power output (no cooling parasitics) [MWe]\n\n**Required:**\nTrue"), NULL}, {"dT_PHX_hot_approach", (getter)SystemDesign_get_dT_PHX_hot_approach,(setter)SystemDesign_set_dT_PHX_hot_approach, - PyDoc_STR("*float*: Temp diff btw hot HTF and turbine inlet [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw hot HTF and turbine inlet [C]\n\n**Required:**\nTrue"), NULL}, {"dT_mc_approach", (getter)SystemDesign_get_dT_mc_approach,(setter)SystemDesign_set_dT_mc_approach, - PyDoc_STR("*float*: Temp diff btw ambient air and main compressor inlet [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw ambient air and main compressor inlet [C]\n\n**Required:**\nTrue"), NULL}, {"design_method", (getter)SystemDesign_get_design_method,(setter)SystemDesign_set_design_method, - PyDoc_STR("*float*: 1 = Specify efficiency, 2 = Specify total recup UA, 3 = Specify each recup design\n\n*Required*: True"), + PyDoc_STR("*float*: 1 = Specify efficiency, 2 = Specify total recup UA, 3 = Specify each recup design\n\n**Required:**\nTrue"), NULL}, {"eta_thermal_des", (getter)SystemDesign_get_eta_thermal_des,(setter)SystemDesign_set_eta_thermal_des, - PyDoc_STR("*float*: Power cycle thermal efficiency\n\n*Required*: True if design_method=1"), + PyDoc_STR("*float*: Power cycle thermal efficiency\n\n**Required:**\nRequired if design_method=1"), NULL}, {"htf", (getter)SystemDesign_get_htf,(setter)SystemDesign_set_htf, - PyDoc_STR("*float*: Integer code for HTF used in PHX\n\n*Required*: True"), + PyDoc_STR("*float*: Integer code for HTF used in PHX\n\n**Required:**\nTrue"), NULL}, {"htf_props", (getter)SystemDesign_get_htf_props,(setter)SystemDesign_set_htf_props, - PyDoc_STR("*sequence[sequence]*: User defined HTF property data\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: User defined HTF property data\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"site_elevation", (getter)SystemDesign_get_site_elevation,(setter)SystemDesign_set_site_elevation, - PyDoc_STR("*float*: Site elevation [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Site elevation [m]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ HeatExchangerDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef HeatExchangerDesign_methods[] = { {"assign", (PyCFunction)HeatExchangerDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HeatExchangerDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)HeatExchangerDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -687,88 +687,88 @@ HeatExchangerDesign_set_rel_tol(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef HeatExchangerDesign_getset[] = { {"HTR_HP_deltaP_des_in", (getter)HeatExchangerDesign_get_HTR_HP_deltaP_des_in,(setter)HeatExchangerDesign_set_HTR_HP_deltaP_des_in, - PyDoc_STR("*float*: HTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: High temperature recuperator"), + PyDoc_STR("*float*: HTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nHigh temperature recuperator"), NULL}, {"HTR_LP_deltaP_des_in", (getter)HeatExchangerDesign_get_HTR_LP_deltaP_des_in,(setter)HeatExchangerDesign_set_HTR_LP_deltaP_des_in, - PyDoc_STR("*float*: HTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: High temperature recuperator"), + PyDoc_STR("*float*: HTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nHigh temperature recuperator"), NULL}, {"HTR_UA_des_in", (getter)HeatExchangerDesign_get_HTR_UA_des_in,(setter)HeatExchangerDesign_set_HTR_UA_des_in, - PyDoc_STR("*float*: Design HTR conductance [kW/K]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design HTR conductance [kW/K]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_design_code", (getter)HeatExchangerDesign_get_HTR_design_code,(setter)HeatExchangerDesign_set_HTR_design_code, - PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_eff_des_in", (getter)HeatExchangerDesign_get_HTR_eff_des_in,(setter)HeatExchangerDesign_set_HTR_eff_des_in, - PyDoc_STR("*float*: Design effectiveness for HTR [-]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design effectiveness for HTR [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_min_dT_des_in", (getter)HeatExchangerDesign_get_HTR_min_dT_des_in,(setter)HeatExchangerDesign_set_HTR_min_dT_des_in, - PyDoc_STR("*float*: Design minimum allowable temperature difference in HTR [C]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design minimum allowable temperature difference in HTR [C]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_n_sub_hx", (getter)HeatExchangerDesign_get_HTR_n_sub_hx,(setter)HeatExchangerDesign_set_HTR_n_sub_hx, - PyDoc_STR("*float*: HTR number of model subsections [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: HTR number of model subsections [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"HTR_od_model", (getter)HeatExchangerDesign_get_HTR_od_model,(setter)HeatExchangerDesign_set_HTR_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"HT_recup_eff_max", (getter)HeatExchangerDesign_get_HT_recup_eff_max,(setter)HeatExchangerDesign_set_HT_recup_eff_max, - PyDoc_STR("*float*: Maximum allowable effectiveness in HTR [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Maximum allowable effectiveness in HTR [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"LTR_HP_deltaP_des_in", (getter)HeatExchangerDesign_get_LTR_HP_deltaP_des_in,(setter)HeatExchangerDesign_set_LTR_HP_deltaP_des_in, - PyDoc_STR("*float*: LTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: Low temperature recuperator"), + PyDoc_STR("*float*: LTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nLow temperature recuperator"), NULL}, {"LTR_LP_deltaP_des_in", (getter)HeatExchangerDesign_get_LTR_LP_deltaP_des_in,(setter)HeatExchangerDesign_set_LTR_LP_deltaP_des_in, - PyDoc_STR("*float*: LTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: Low temperature recuperator"), + PyDoc_STR("*float*: LTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nLow temperature recuperator"), NULL}, {"LTR_UA_des_in", (getter)HeatExchangerDesign_get_LTR_UA_des_in,(setter)HeatExchangerDesign_set_LTR_UA_des_in, - PyDoc_STR("*float*: Design LTR conductance [kW/K]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design LTR conductance [kW/K]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_design_code", (getter)HeatExchangerDesign_get_LTR_design_code,(setter)HeatExchangerDesign_set_LTR_design_code, - PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_eff_des_in", (getter)HeatExchangerDesign_get_LTR_eff_des_in,(setter)HeatExchangerDesign_set_LTR_eff_des_in, - PyDoc_STR("*float*: Design effectiveness for LTR [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design effectiveness for LTR [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_min_dT_des_in", (getter)HeatExchangerDesign_get_LTR_min_dT_des_in,(setter)HeatExchangerDesign_set_LTR_min_dT_des_in, - PyDoc_STR("*float*: Design minimum allowable temperature difference in LTR [C]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design minimum allowable temperature difference in LTR [C]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_n_sub_hx", (getter)HeatExchangerDesign_get_LTR_n_sub_hx,(setter)HeatExchangerDesign_set_LTR_n_sub_hx, - PyDoc_STR("*float*: LTR number of model subsections [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: LTR number of model subsections [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"LTR_od_model", (getter)HeatExchangerDesign_get_LTR_od_model,(setter)HeatExchangerDesign_set_LTR_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"LT_recup_eff_max", (getter)HeatExchangerDesign_get_LT_recup_eff_max,(setter)HeatExchangerDesign_set_LT_recup_eff_max, - PyDoc_STR("*float*: Maximum allowable effectiveness in LTR [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Maximum allowable effectiveness in LTR [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"UA_recup_tot_des", (getter)HeatExchangerDesign_get_UA_recup_tot_des,(setter)HeatExchangerDesign_set_UA_recup_tot_des, - PyDoc_STR("*float*: Total recuperator conductance [kW/K]\n\n*Info*: Combined recuperator design\n\n*Required*: True if design_method=2"), + PyDoc_STR("*float*: Total recuperator conductance [kW/K]\n\n**Info:**\nCombined recuperator design\n\n**Required:**\nRequired if design_method=2"), NULL}, {"cycle_config", (getter)HeatExchangerDesign_get_cycle_config,(setter)HeatExchangerDesign_set_cycle_config, - PyDoc_STR("*float*: 1 = recompression, 2 = partial cooling\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = recompression, 2 = partial cooling\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"des_objective", (getter)HeatExchangerDesign_get_des_objective,(setter)HeatExchangerDesign_set_des_objective, - PyDoc_STR("*float*: [2] = hit min phx deltat then max eta, [else] max eta\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: [2] = hit min phx deltat then max eta, [else] max eta\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_IP_fixed", (getter)HeatExchangerDesign_get_is_IP_fixed,(setter)HeatExchangerDesign_set_is_IP_fixed, - PyDoc_STR("*float*: partial cooling config: 0 = No, >0 = fixed HP-IP pressure ratio at input, <0 = fixed IP at abs(input)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: partial cooling config: 0 = No, >0 = fixed HP-IP pressure ratio at input, <0 = fixed IP at abs(input)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_PR_fixed", (getter)HeatExchangerDesign_get_is_PR_fixed,(setter)HeatExchangerDesign_set_is_PR_fixed, - PyDoc_STR("*float*: 0 = No, >0 = fixed pressure ratio at input <0 = fixed LP at abs(input) [High temperature recuperator]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0 = No, >0 = fixed pressure ratio at input <0 = fixed LP at abs(input) [High temperature recuperator]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_P_high_fixed", (getter)HeatExchangerDesign_get_is_P_high_fixed,(setter)HeatExchangerDesign_set_is_P_high_fixed, - PyDoc_STR("*float*: 1 = Yes (=P_high_limit), 0 = No, optimized (default)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 1 = Yes (=P_high_limit), 0 = No, optimized (default)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_recomp_ok", (getter)HeatExchangerDesign_get_is_recomp_ok,(setter)HeatExchangerDesign_set_is_recomp_ok, - PyDoc_STR("*float*: 1 = Yes, 0 = simple cycle only, < 0 = fix f_recomp to abs(input)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = Yes, 0 = simple cycle only, < 0 = fix f_recomp to abs(input)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"min_phx_deltaT", (getter)HeatExchangerDesign_get_min_phx_deltaT,(setter)HeatExchangerDesign_set_min_phx_deltaT, - PyDoc_STR("*float*: Minimum design temperature difference across PHX [C]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Minimum design temperature difference across PHX [C]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"od_rel_tol", (getter)HeatExchangerDesign_get_od_rel_tol,(setter)HeatExchangerDesign_set_od_rel_tol, - PyDoc_STR("*float*: Baseline off-design relative convergence tolerance exponent (10^-od_rel_tol) [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Baseline off-design relative convergence tolerance exponent (10^-od_rel_tol) [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"rel_tol", (getter)HeatExchangerDesign_get_rel_tol,(setter)HeatExchangerDesign_set_rel_tol, - PyDoc_STR("*float*: Baseline solver and optimization relative tolerance exponent (10^-rel_tol) [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Baseline solver and optimization relative tolerance exponent (10^-rel_tol) [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -883,11 +883,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1100,28 +1100,28 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*float*: PHX co2 side pressure drop as fraction of inlet pressure [-]"), NULL}, {"P_high_limit", (getter)Common_get_P_high_limit,(setter)Common_set_P_high_limit, - PyDoc_STR("*float*: High pressure limit in cycle [MPa]\n\n*Required*: True"), + PyDoc_STR("*float*: High pressure limit in cycle [MPa]\n\n**Required:**\nTrue"), NULL}, {"deltaP_counterHX_frac", (getter)Common_get_deltaP_counterHX_frac,(setter)Common_set_deltaP_counterHX_frac, - PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point counterflow HX (recups & PHX) pressure drop [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point counterflow HX (recups & PHX) pressure drop [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"eta_isen_mc", (getter)Common_get_eta_isen_mc,(setter)Common_set_eta_isen_mc, - PyDoc_STR("*float*: Design main compressor isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design main compressor isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"eta_isen_pc", (getter)Common_get_eta_isen_pc,(setter)Common_set_eta_isen_pc, - PyDoc_STR("*float*: Design precompressor isentropic efficiency [-]\n\n*Required*: True if cycle_config=2"), + PyDoc_STR("*float*: Design precompressor isentropic efficiency [-]\n\n**Required:**\nRequired if cycle_config=2"), NULL}, {"eta_isen_rc", (getter)Common_get_eta_isen_rc,(setter)Common_set_eta_isen_rc, - PyDoc_STR("*float*: Design re-compressor isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design re-compressor isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"eta_isen_t", (getter)Common_get_eta_isen_t,(setter)Common_set_eta_isen_t, - PyDoc_STR("*float*: Design turbine isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design turbine isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"is_gen_od_polynomials", (getter)Common_get_is_gen_od_polynomials,(setter)Common_set_is_gen_od_polynomials, - PyDoc_STR("*float*: Generate off-design polynomials for Generic CSP models? 1 = Yes, 0 = No\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Generate off-design polynomials for Generic CSP models? 1 = Yes, 0 = No\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mc_comp_type", (getter)Common_get_mc_comp_type,(setter)Common_set_mc_comp_type, - PyDoc_STR("*float*: Main compressor compressor type 1: SNL 2: CompA [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Main compressor compressor type 1: SNL 2: CompA [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"od_P_mc_in_sweep", (getter)Common_get_od_P_mc_in_sweep,(setter)Common_set_od_P_mc_in_sweep, PyDoc_STR("*sequence*: Columns: 0) T_htf_C, 1) m_dot_htf_ND, 2) T_amb_C, 3) T_mc_in_C, 4) T_pc_in_C, 5) f_N_rc (=1 use design, <0, frac_des = abs(input), 6) f_N_mc (=1 use design, <0, frac_des = abs(input), 7) f_N_pc (=1 use design, =0 optimize, <0, frac_des = abs(input)), 8) PHX_f_dP (=1 use design, <0 = abs(input)"), @@ -1130,7 +1130,7 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*sequence*: Columns: 0) T_htf_C, 1) m_dot_htf_ND, 2) T_amb_C,3) f_N_rc (=1 use design, <0, frac_des = abs(input),4) f_N_mc (=1 use design, <0, frac_des = abs(input),5) f_N_pc (=1 use design, <0, frac_des = abs(input),6) PHX_f_dP (=1 use design, <0 = abs(input)"), NULL}, {"od_T_t_in_mode", (getter)Common_get_od_T_t_in_mode,(setter)Common_set_od_T_t_in_mode, - PyDoc_STR("*float*: 0: model solves co2/HTF PHX od model to calculate turbine inlet temp, 1: model sets turbine inlet temp to HTF hot temp\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: model solves co2/HTF PHX od model to calculate turbine inlet temp, 1: model sets turbine inlet temp to HTF hot temp\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"od_cases", (getter)Common_get_od_cases,(setter)Common_set_od_cases, PyDoc_STR("*sequence[sequence]*: Columns: 0) T_htf_C, 1) m_dot_htf_ND, 2) T_amb_C, 3) f_N_rc (=1 use design, =0 optimize, <0, frac_des = abs(input)), 4) f_N_mc (=1 use design, =0 optimize, <0, frac_des = abs(input)), 5) f_N_pc (=1 use design, =0 optimize, <0, frac_des = abs(input)), 6) PHX_f_dP (=1 use design, <0 = abs(input), Rows: cases"), @@ -1142,7 +1142,7 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*sequence[sequence]*: Columns: T_htf_C, T_amb_C, f_N_rc (=1 use design, <0, frac_des = abs(input), f_N_mc (=1 use design, <0, frac_des = abs(input), PHX_f_dP (=1 use design, <0 = abs(input), Rows: cases"), NULL}, {"od_opt_objective", (getter)Common_get_od_opt_objective,(setter)Common_set_od_opt_objective, - PyDoc_STR("*float*: 0: find P_LP_in to achieve target power, optimize efficiency 1: find P_LP_in to achieve T_HTF_cold, optimize efficiency\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: find P_LP_in to achieve target power, optimize efficiency 1: find P_LP_in to achieve T_HTF_cold, optimize efficiency\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"od_set_control", (getter)Common_get_od_set_control,(setter)Common_set_od_set_control, PyDoc_STR("*sequence[sequence]*: Columns: 0) T_htf_C, 1) m_dot_htf_ND, 2) T_amb_C, 3) P_LP_in_MPa, 4) T_mc_in_C, 5) T_pc_in_C, 6) f_N_rc (=1 use design, <0, frac_des = abs(input), 7) f_N_mc (=1 use design, <0, frac_des = abs(input), 8) f_N_pc (=1 use design, =0 optimize, <0, frac_des = abs(input)), 9) PHX_f_dP (=1 use design, <0 = abs(input), Rows: cases"), @@ -1260,11 +1260,11 @@ PHXDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef PHXDesign_methods[] = { {"assign", (PyCFunction)PHXDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PHXDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PHXDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PHXDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PHXDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PHXDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)PHXDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1306,13 +1306,13 @@ PHXDesign_set_dT_PHX_cold_approach(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PHXDesign_getset[] = { {"PHX_n_sub_hx", (getter)PHXDesign_get_PHX_n_sub_hx,(setter)PHXDesign_set_PHX_n_sub_hx, - PyDoc_STR("*float*: Number of subsections in PHX model [-]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Number of subsections in PHX model [-]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"PHX_od_model", (getter)PHXDesign_get_PHX_od_model,(setter)PHXDesign_set_PHX_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dT_PHX_cold_approach", (getter)PHXDesign_get_dT_PHX_cold_approach,(setter)PHXDesign_set_dT_PHX_cold_approach, - PyDoc_STR("*float*: Temp diff btw cold HTF and cold CO2 [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw cold HTF and cold CO2 [C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1427,11 +1427,11 @@ AirCoolerDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef AirCoolerDesign_methods[] = { {"assign", (PyCFunction)AirCoolerDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AirCoolerDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)AirCoolerDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1497,19 +1497,19 @@ AirCoolerDesign_set_is_design_air_cooler(VarGroupObject *self, PyObject *value, static PyGetSetDef AirCoolerDesign_getset[] = { {"N_nodes_air_cooler_pass", (getter)AirCoolerDesign_get_N_nodes_air_cooler_pass,(setter)AirCoolerDesign_set_N_nodes_air_cooler_pass, - PyDoc_STR("*float*: Number of nodes in single air cooler pass\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Number of nodes in single air cooler pass\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"deltaP_cooler_frac", (getter)AirCoolerDesign_get_deltaP_cooler_frac,(setter)AirCoolerDesign_set_deltaP_cooler_frac, - PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point cooler CO2 pressure drop\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point cooler CO2 pressure drop\n\n**Required:**\nTrue"), NULL}, {"eta_air_cooler_fan", (getter)AirCoolerDesign_get_eta_air_cooler_fan,(setter)AirCoolerDesign_set_eta_air_cooler_fan, - PyDoc_STR("*float*: Air cooler fan isentropic efficiency\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: Air cooler fan isentropic efficiency\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"fan_power_frac", (getter)AirCoolerDesign_get_fan_power_frac,(setter)AirCoolerDesign_set_fan_power_frac, - PyDoc_STR("*float*: Fraction of net cycle power consumed by air cooler fan\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of net cycle power consumed by air cooler fan\n\n**Required:**\nTrue"), NULL}, {"is_design_air_cooler", (getter)AirCoolerDesign_get_is_design_air_cooler,(setter)AirCoolerDesign_set_is_design_air_cooler, - PyDoc_STR("*float*: Defaults to True. False will skip air cooler calcs\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Defaults to True. False will skip air cooler calcs\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1624,11 +1624,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4251,12 +4251,11 @@ static PyMethodDef Sco2CspSystemModule_methods[] = { {"new", Sco2CspSystem_new, METH_VARARGS, PyDoc_STR("new() -> Sco2CspSystem")}, {"default", Sco2CspSystem_default, METH_VARARGS, - PyDoc_STR("default(config) -> Sco2CspSystem\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Sco2CspSystem\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Sco2CspSystem_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Sco2CspSystem\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Sco2CspSystem\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Sco2CspSystem_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Sco2CspSystem\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Sco2CspSystem\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Sco2CspUdPcTables.c b/modules/Sco2CspUdPcTables.c index d4696b7e..d55eb4f6 100644 --- a/modules/Sco2CspUdPcTables.c +++ b/modules/Sco2CspUdPcTables.c @@ -69,11 +69,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,34 +199,34 @@ SystemDesign_set_site_elevation(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SystemDesign_getset[] = { {"T_amb_des", (getter)SystemDesign_get_T_amb_des,(setter)SystemDesign_set_T_amb_des, - PyDoc_STR("*float*: Ambient temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_htf_hot_des", (getter)SystemDesign_get_T_htf_hot_des,(setter)SystemDesign_set_T_htf_hot_des, - PyDoc_STR("*float*: HTF design hot temperature (PHX inlet) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF design hot temperature (PHX inlet) [C]\n\n**Required:**\nTrue"), NULL}, {"W_dot_net_des", (getter)SystemDesign_get_W_dot_net_des,(setter)SystemDesign_set_W_dot_net_des, - PyDoc_STR("*float*: Design cycle power output (no cooling parasitics) [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Design cycle power output (no cooling parasitics) [MWe]\n\n**Required:**\nTrue"), NULL}, {"dT_PHX_hot_approach", (getter)SystemDesign_get_dT_PHX_hot_approach,(setter)SystemDesign_set_dT_PHX_hot_approach, - PyDoc_STR("*float*: Temp diff btw hot HTF and turbine inlet [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw hot HTF and turbine inlet [C]\n\n**Required:**\nTrue"), NULL}, {"dT_mc_approach", (getter)SystemDesign_get_dT_mc_approach,(setter)SystemDesign_set_dT_mc_approach, - PyDoc_STR("*float*: Temp diff btw ambient air and main compressor inlet [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw ambient air and main compressor inlet [C]\n\n**Required:**\nTrue"), NULL}, {"design_method", (getter)SystemDesign_get_design_method,(setter)SystemDesign_set_design_method, - PyDoc_STR("*float*: 1 = Specify efficiency, 2 = Specify total recup UA, 3 = Specify each recup design\n\n*Required*: True"), + PyDoc_STR("*float*: 1 = Specify efficiency, 2 = Specify total recup UA, 3 = Specify each recup design\n\n**Required:**\nTrue"), NULL}, {"eta_thermal_des", (getter)SystemDesign_get_eta_thermal_des,(setter)SystemDesign_set_eta_thermal_des, - PyDoc_STR("*float*: Power cycle thermal efficiency\n\n*Required*: True if design_method=1"), + PyDoc_STR("*float*: Power cycle thermal efficiency\n\n**Required:**\nRequired if design_method=1"), NULL}, {"htf", (getter)SystemDesign_get_htf,(setter)SystemDesign_set_htf, - PyDoc_STR("*float*: Integer code for HTF used in PHX\n\n*Required*: True"), + PyDoc_STR("*float*: Integer code for HTF used in PHX\n\n**Required:**\nTrue"), NULL}, {"htf_props", (getter)SystemDesign_get_htf_props,(setter)SystemDesign_set_htf_props, - PyDoc_STR("*sequence[sequence]*: User defined HTF property data\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: User defined HTF property data\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"site_elevation", (getter)SystemDesign_get_site_elevation,(setter)SystemDesign_set_site_elevation, - PyDoc_STR("*float*: Site elevation [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Site elevation [m]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ HeatExchangerDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef HeatExchangerDesign_methods[] = { {"assign", (PyCFunction)HeatExchangerDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HeatExchangerDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HeatExchangerDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)HeatExchangerDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -675,85 +675,85 @@ HeatExchangerDesign_set_rel_tol(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef HeatExchangerDesign_getset[] = { {"HTR_HP_deltaP_des_in", (getter)HeatExchangerDesign_get_HTR_HP_deltaP_des_in,(setter)HeatExchangerDesign_set_HTR_HP_deltaP_des_in, - PyDoc_STR("*float*: HTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: High temperature recuperator"), + PyDoc_STR("*float*: HTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nHigh temperature recuperator"), NULL}, {"HTR_LP_deltaP_des_in", (getter)HeatExchangerDesign_get_HTR_LP_deltaP_des_in,(setter)HeatExchangerDesign_set_HTR_LP_deltaP_des_in, - PyDoc_STR("*float*: HTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: High temperature recuperator"), + PyDoc_STR("*float*: HTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nHigh temperature recuperator"), NULL}, {"HTR_UA_des_in", (getter)HeatExchangerDesign_get_HTR_UA_des_in,(setter)HeatExchangerDesign_set_HTR_UA_des_in, - PyDoc_STR("*float*: Design HTR conductance [kW/K]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design HTR conductance [kW/K]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_design_code", (getter)HeatExchangerDesign_get_HTR_design_code,(setter)HeatExchangerDesign_set_HTR_design_code, - PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_eff_des_in", (getter)HeatExchangerDesign_get_HTR_eff_des_in,(setter)HeatExchangerDesign_set_HTR_eff_des_in, - PyDoc_STR("*float*: Design effectiveness for HTR [-]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design effectiveness for HTR [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_min_dT_des_in", (getter)HeatExchangerDesign_get_HTR_min_dT_des_in,(setter)HeatExchangerDesign_set_HTR_min_dT_des_in, - PyDoc_STR("*float*: Design minimum allowable temperature difference in HTR [C]\n\n*Info*: High temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design minimum allowable temperature difference in HTR [C]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"HTR_n_sub_hx", (getter)HeatExchangerDesign_get_HTR_n_sub_hx,(setter)HeatExchangerDesign_set_HTR_n_sub_hx, - PyDoc_STR("*float*: HTR number of model subsections [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: HTR number of model subsections [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"HTR_od_model", (getter)HeatExchangerDesign_get_HTR_od_model,(setter)HeatExchangerDesign_set_HTR_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"HT_recup_eff_max", (getter)HeatExchangerDesign_get_HT_recup_eff_max,(setter)HeatExchangerDesign_set_HT_recup_eff_max, - PyDoc_STR("*float*: Maximum allowable effectiveness in HTR [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Maximum allowable effectiveness in HTR [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"LTR_HP_deltaP_des_in", (getter)HeatExchangerDesign_get_LTR_HP_deltaP_des_in,(setter)HeatExchangerDesign_set_LTR_HP_deltaP_des_in, - PyDoc_STR("*float*: LTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: Low temperature recuperator"), + PyDoc_STR("*float*: LTR high pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nLow temperature recuperator"), NULL}, {"LTR_LP_deltaP_des_in", (getter)HeatExchangerDesign_get_LTR_LP_deltaP_des_in,(setter)HeatExchangerDesign_set_LTR_LP_deltaP_des_in, - PyDoc_STR("*float*: LTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n*Info*: Low temperature recuperator"), + PyDoc_STR("*float*: LTR low pressure side pressure drop as fraction of inlet pressure [-]\n\n**Info:**\nLow temperature recuperator"), NULL}, {"LTR_UA_des_in", (getter)HeatExchangerDesign_get_LTR_UA_des_in,(setter)HeatExchangerDesign_set_LTR_UA_des_in, - PyDoc_STR("*float*: Design LTR conductance [kW/K]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design LTR conductance [kW/K]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_design_code", (getter)HeatExchangerDesign_get_LTR_design_code,(setter)HeatExchangerDesign_set_LTR_design_code, - PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: 1 = UA, 2 = min dT, 3 = effectiveness [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_eff_des_in", (getter)HeatExchangerDesign_get_LTR_eff_des_in,(setter)HeatExchangerDesign_set_LTR_eff_des_in, - PyDoc_STR("*float*: Design effectiveness for LTR [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design effectiveness for LTR [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_min_dT_des_in", (getter)HeatExchangerDesign_get_LTR_min_dT_des_in,(setter)HeatExchangerDesign_set_LTR_min_dT_des_in, - PyDoc_STR("*float*: Design minimum allowable temperature difference in LTR [C]\n\n*Info*: Low temperature recuperator\n\n*Required*: True if design_method=3"), + PyDoc_STR("*float*: Design minimum allowable temperature difference in LTR [C]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nRequired if design_method=3"), NULL}, {"LTR_n_sub_hx", (getter)HeatExchangerDesign_get_LTR_n_sub_hx,(setter)HeatExchangerDesign_set_LTR_n_sub_hx, - PyDoc_STR("*float*: LTR number of model subsections [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: LTR number of model subsections [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"LTR_od_model", (getter)HeatExchangerDesign_get_LTR_od_model,(setter)HeatExchangerDesign_set_LTR_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"LT_recup_eff_max", (getter)HeatExchangerDesign_get_LT_recup_eff_max,(setter)HeatExchangerDesign_set_LT_recup_eff_max, - PyDoc_STR("*float*: Maximum allowable effectiveness in LTR [-]\n\n*Info*: Low temperature recuperator\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Maximum allowable effectiveness in LTR [-]\n\n**Info:**\nLow temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"UA_recup_tot_des", (getter)HeatExchangerDesign_get_UA_recup_tot_des,(setter)HeatExchangerDesign_set_UA_recup_tot_des, - PyDoc_STR("*float*: Total recuperator conductance [kW/K]\n\n*Info*: Combined recuperator design\n\n*Required*: True if design_method=2"), + PyDoc_STR("*float*: Total recuperator conductance [kW/K]\n\n**Info:**\nCombined recuperator design\n\n**Required:**\nRequired if design_method=2"), NULL}, {"cycle_config", (getter)HeatExchangerDesign_get_cycle_config,(setter)HeatExchangerDesign_set_cycle_config, - PyDoc_STR("*float*: 1 = recompression, 2 = partial cooling\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = recompression, 2 = partial cooling\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"des_objective", (getter)HeatExchangerDesign_get_des_objective,(setter)HeatExchangerDesign_set_des_objective, - PyDoc_STR("*float*: [2] = hit min phx deltat then max eta, [else] max eta\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: [2] = hit min phx deltat then max eta, [else] max eta\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_IP_fixed", (getter)HeatExchangerDesign_get_is_IP_fixed,(setter)HeatExchangerDesign_set_is_IP_fixed, - PyDoc_STR("*float*: partial cooling config: 0 = No, >0 = fixed HP-IP pressure ratio at input, <0 = fixed IP at abs(input)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: partial cooling config: 0 = No, >0 = fixed HP-IP pressure ratio at input, <0 = fixed IP at abs(input)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_PR_fixed", (getter)HeatExchangerDesign_get_is_PR_fixed,(setter)HeatExchangerDesign_set_is_PR_fixed, - PyDoc_STR("*float*: 0 = No, >0 = fixed pressure ratio at input <0 = fixed LP at abs(input) [High temperature recuperator]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0 = No, >0 = fixed pressure ratio at input <0 = fixed LP at abs(input) [High temperature recuperator]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_P_high_fixed", (getter)HeatExchangerDesign_get_is_P_high_fixed,(setter)HeatExchangerDesign_set_is_P_high_fixed, - PyDoc_STR("*float*: 1 = Yes (=P_high_limit), 0 = No, optimized (default)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 1 = Yes (=P_high_limit), 0 = No, optimized (default)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_recomp_ok", (getter)HeatExchangerDesign_get_is_recomp_ok,(setter)HeatExchangerDesign_set_is_recomp_ok, - PyDoc_STR("*float*: 1 = Yes, 0 = simple cycle only, < 0 = fix f_recomp to abs(input)\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = Yes, 0 = simple cycle only, < 0 = fix f_recomp to abs(input)\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"min_phx_deltaT", (getter)HeatExchangerDesign_get_min_phx_deltaT,(setter)HeatExchangerDesign_set_min_phx_deltaT, - PyDoc_STR("*float*: Minimum design temperature difference across PHX [C]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Minimum design temperature difference across PHX [C]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rel_tol", (getter)HeatExchangerDesign_get_rel_tol,(setter)HeatExchangerDesign_set_rel_tol, - PyDoc_STR("*float*: Baseline solver and optimization relative tolerance exponent (10^-rel_tol) [-]\n\n*Info*: High temperature recuperator\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Baseline solver and optimization relative tolerance exponent (10^-rel_tol) [-]\n\n**Info:**\nHigh temperature recuperator\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -868,11 +868,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1109,7 +1109,7 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*float*: PHX co2 side pressure drop as fraction of inlet pressure [-]"), NULL}, {"P_high_limit", (getter)Common_get_P_high_limit,(setter)Common_set_P_high_limit, - PyDoc_STR("*float*: High pressure limit in cycle [MPa]\n\n*Required*: True"), + PyDoc_STR("*float*: High pressure limit in cycle [MPa]\n\n**Required:**\nTrue"), NULL}, {"T_amb_high", (getter)Common_get_T_amb_high,(setter)Common_set_T_amb_high, PyDoc_STR("*float*: Upper level of ambient temperature [C]"), @@ -1124,25 +1124,25 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*float*: Lower level of HTF hot temperature [C]"), NULL}, {"deltaP_counterHX_frac", (getter)Common_get_deltaP_counterHX_frac,(setter)Common_set_deltaP_counterHX_frac, - PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point counterflow HX (recups & PHX) pressure drop [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point counterflow HX (recups & PHX) pressure drop [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"eta_isen_mc", (getter)Common_get_eta_isen_mc,(setter)Common_set_eta_isen_mc, - PyDoc_STR("*float*: Design main compressor isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design main compressor isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"eta_isen_pc", (getter)Common_get_eta_isen_pc,(setter)Common_set_eta_isen_pc, - PyDoc_STR("*float*: Design precompressor isentropic efficiency [-]\n\n*Required*: True if cycle_config=2"), + PyDoc_STR("*float*: Design precompressor isentropic efficiency [-]\n\n**Required:**\nRequired if cycle_config=2"), NULL}, {"eta_isen_rc", (getter)Common_get_eta_isen_rc,(setter)Common_set_eta_isen_rc, - PyDoc_STR("*float*: Design re-compressor isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design re-compressor isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"eta_isen_t", (getter)Common_get_eta_isen_t,(setter)Common_set_eta_isen_t, - PyDoc_STR("*float*: Design turbine isentropic efficiency [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Design turbine isentropic efficiency [-]\n\n**Required:**\nTrue"), NULL}, {"is_apply_default_htf_mins", (getter)Common_get_is_apply_default_htf_mins,(setter)Common_set_is_apply_default_htf_mins, - PyDoc_STR("*float*: 1 = yes (0.5 rc, 0.7 simple), 0 = no, only use 'm_dot_htf_ND_low'\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = yes (0.5 rc, 0.7 simple), 0 = no, only use 'm_dot_htf_ND_low'\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"is_generate_udpc", (getter)Common_get_is_generate_udpc,(setter)Common_set_is_generate_udpc, - PyDoc_STR("*float*: 1 = generate udpc tables, 0 = only calculate design point cyle\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 1 = generate udpc tables, 0 = only calculate design point cyle\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"m_dot_htf_ND_high", (getter)Common_get_m_dot_htf_ND_high,(setter)Common_set_m_dot_htf_ND_high, PyDoc_STR("*float*: Upper level of normalized HTF mass flow rate"), @@ -1151,7 +1151,7 @@ static PyGetSetDef Common_getset[] = { PyDoc_STR("*float*: Lower level of normalized HTF mass flow rate"), NULL}, {"mc_comp_type", (getter)Common_get_mc_comp_type,(setter)Common_set_mc_comp_type, - PyDoc_STR("*float*: Main compressor compressor type 1: SNL 2: CompA [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Main compressor compressor type 1: SNL 2: CompA [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"n_T_amb", (getter)Common_get_n_T_amb,(setter)Common_set_n_T_amb, PyDoc_STR("*float*: Number of ambient temperature parametric runs"), @@ -1275,11 +1275,11 @@ PHXDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef PHXDesign_methods[] = { {"assign", (PyCFunction)PHXDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PHXDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PHXDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PHXDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PHXDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PHXDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)PHXDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1321,13 +1321,13 @@ PHXDesign_set_dT_PHX_cold_approach(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PHXDesign_getset[] = { {"PHX_n_sub_hx", (getter)PHXDesign_get_PHX_n_sub_hx,(setter)PHXDesign_set_PHX_n_sub_hx, - PyDoc_STR("*float*: Number of subsections in PHX model [-]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Number of subsections in PHX model [-]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"PHX_od_model", (getter)PHXDesign_get_PHX_od_model,(setter)PHXDesign_set_PHX_od_model, - PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: 0: mass flow scale, 1: conductance ratio model [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dT_PHX_cold_approach", (getter)PHXDesign_get_dT_PHX_cold_approach,(setter)PHXDesign_set_dT_PHX_cold_approach, - PyDoc_STR("*float*: Temp diff btw cold HTF and cold CO2 [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp diff btw cold HTF and cold CO2 [C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1442,11 +1442,11 @@ AirCoolerDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef AirCoolerDesign_methods[] = { {"assign", (PyCFunction)AirCoolerDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AirCoolerDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AirCoolerDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)AirCoolerDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1512,19 +1512,19 @@ AirCoolerDesign_set_is_design_air_cooler(VarGroupObject *self, PyObject *value, static PyGetSetDef AirCoolerDesign_getset[] = { {"N_nodes_air_cooler_pass", (getter)AirCoolerDesign_get_N_nodes_air_cooler_pass,(setter)AirCoolerDesign_set_N_nodes_air_cooler_pass, - PyDoc_STR("*float*: Number of nodes in single air cooler pass\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Number of nodes in single air cooler pass\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"deltaP_cooler_frac", (getter)AirCoolerDesign_get_deltaP_cooler_frac,(setter)AirCoolerDesign_set_deltaP_cooler_frac, - PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point cooler CO2 pressure drop\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of CO2 inlet pressure that is design point cooler CO2 pressure drop\n\n**Required:**\nTrue"), NULL}, {"eta_air_cooler_fan", (getter)AirCoolerDesign_get_eta_air_cooler_fan,(setter)AirCoolerDesign_set_eta_air_cooler_fan, - PyDoc_STR("*float*: Air cooler fan isentropic efficiency\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: Air cooler fan isentropic efficiency\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"fan_power_frac", (getter)AirCoolerDesign_get_fan_power_frac,(setter)AirCoolerDesign_set_fan_power_frac, - PyDoc_STR("*float*: Fraction of net cycle power consumed by air cooler fan\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of net cycle power consumed by air cooler fan\n\n**Required:**\nTrue"), NULL}, {"is_design_air_cooler", (getter)AirCoolerDesign_get_is_design_air_cooler,(setter)AirCoolerDesign_set_is_design_air_cooler, - PyDoc_STR("*float*: Defaults to True. False will skip air cooler calcs\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Defaults to True. False will skip air cooler calcs\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1639,11 +1639,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3393,12 +3393,11 @@ static PyMethodDef Sco2CspUdPcTablesModule_methods[] = { {"new", Sco2CspUdPcTables_new, METH_VARARGS, PyDoc_STR("new() -> Sco2CspUdPcTables")}, {"default", Sco2CspUdPcTables_default, METH_VARARGS, - PyDoc_STR("default(config) -> Sco2CspUdPcTables\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Sco2CspUdPcTables\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Sco2CspUdPcTables_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Sco2CspUdPcTables\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Sco2CspUdPcTables\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Sco2CspUdPcTables_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Sco2CspUdPcTables\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Sco2CspUdPcTables\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Singlediode.c b/modules/Singlediode.c index 3960cafc..80046f8d 100644 --- a/modules/Singlediode.c +++ b/modules/Singlediode.c @@ -69,11 +69,11 @@ SingleDiodeModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef SingleDiodeModel_methods[] = { {"assign", (PyCFunction)SingleDiodeModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SingleDiodeModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)SingleDiodeModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -151,22 +151,22 @@ SingleDiodeModel_set_a(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SingleDiodeModel_getset[] = { {"Il", (getter)SingleDiodeModel_get_Il,(setter)SingleDiodeModel_set_Il, - PyDoc_STR("*float*: Light current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Light current [A]\n\n**Required:**\nTrue"), NULL}, {"Io", (getter)SingleDiodeModel_get_Io,(setter)SingleDiodeModel_set_Io, - PyDoc_STR("*float*: Saturation current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Saturation current [A]\n\n**Required:**\nTrue"), NULL}, {"Rs", (getter)SingleDiodeModel_get_Rs,(setter)SingleDiodeModel_set_Rs, - PyDoc_STR("*float*: Series resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Series resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"Rsh", (getter)SingleDiodeModel_get_Rsh,(setter)SingleDiodeModel_set_Rsh, - PyDoc_STR("*float*: Shunt resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Shunt resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"Vop", (getter)SingleDiodeModel_get_Vop,(setter)SingleDiodeModel_set_Vop, - PyDoc_STR("*float*: Module operating voltage [V]\n\n*Required*: False"), + PyDoc_STR("*float*: Module operating voltage [V]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"a", (getter)SingleDiodeModel_get_a,(setter)SingleDiodeModel_set_a, - PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -281,11 +281,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -651,12 +651,11 @@ static PyMethodDef SinglediodeModule_methods[] = { {"new", Singlediode_new, METH_VARARGS, PyDoc_STR("new() -> Singlediode")}, {"default", Singlediode_default, METH_VARARGS, - PyDoc_STR("default(config) -> Singlediode\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Singlediode\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Singlediode_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Singlediode\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Singlediode\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Singlediode_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Singlediode\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Singlediode\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Singlediodeparams.c b/modules/Singlediodeparams.c index 7bb8d384..0d31ce45 100644 --- a/modules/Singlediodeparams.c +++ b/modules/Singlediodeparams.c @@ -69,11 +69,11 @@ SingleDiodeModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef SingleDiodeModel_methods[] = { {"assign", (PyCFunction)SingleDiodeModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SingleDiodeModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SingleDiodeModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)SingleDiodeModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -187,31 +187,31 @@ SingleDiodeModel_set_alpha_isc(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef SingleDiodeModel_getset[] = { {"Adj_ref", (getter)SingleDiodeModel_get_Adj_ref,(setter)SingleDiodeModel_set_Adj_ref, - PyDoc_STR("*float*: OC SC temp coeff adjustment [%]\n\n*Required*: True"), + PyDoc_STR("*float*: OC SC temp coeff adjustment [%]\n\n**Required:**\nTrue"), NULL}, {"I", (getter)SingleDiodeModel_get_I,(setter)SingleDiodeModel_set_I, - PyDoc_STR("*float*: Irradiance [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Irradiance [W/m2]\n\n**Required:**\nTrue"), NULL}, {"Il_ref", (getter)SingleDiodeModel_get_Il_ref,(setter)SingleDiodeModel_set_Il_ref, - PyDoc_STR("*float*: Light current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Light current [A]\n\n**Required:**\nTrue"), NULL}, {"Io_ref", (getter)SingleDiodeModel_get_Io_ref,(setter)SingleDiodeModel_set_Io_ref, - PyDoc_STR("*float*: Saturation current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Saturation current [A]\n\n**Required:**\nTrue"), NULL}, {"Rs_ref", (getter)SingleDiodeModel_get_Rs_ref,(setter)SingleDiodeModel_set_Rs_ref, - PyDoc_STR("*float*: Series resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Series resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"Rsh_ref", (getter)SingleDiodeModel_get_Rsh_ref,(setter)SingleDiodeModel_set_Rsh_ref, - PyDoc_STR("*float*: Shunt resistance [ohm]\n\n*Required*: True"), + PyDoc_STR("*float*: Shunt resistance [ohm]\n\n**Required:**\nTrue"), NULL}, {"T", (getter)SingleDiodeModel_get_T,(setter)SingleDiodeModel_set_T, - PyDoc_STR("*float*: Temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temperature [C]\n\n**Required:**\nTrue"), NULL}, {"a_ref", (getter)SingleDiodeModel_get_a_ref,(setter)SingleDiodeModel_set_a_ref, - PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n*Required*: True"), + PyDoc_STR("*float*: Modified nonideality factor [1/V]\n\n**Required:**\nTrue"), NULL}, {"alpha_isc", (getter)SingleDiodeModel_get_alpha_isc,(setter)SingleDiodeModel_set_alpha_isc, - PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -326,11 +326,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -705,12 +705,11 @@ static PyMethodDef SinglediodeparamsModule_methods[] = { {"new", Singlediodeparams_new, METH_VARARGS, PyDoc_STR("new() -> Singlediodeparams")}, {"default", Singlediodeparams_default, METH_VARARGS, - PyDoc_STR("default(config) -> Singlediodeparams\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Singlediodeparams\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Singlediodeparams_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Singlediodeparams\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Singlediodeparams\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Singlediodeparams_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Singlediodeparams\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Singlediodeparams\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Singleowner.c b/modules/Singleowner.c index 10fd4880..98983a26 100644 --- a/modules/Singleowner.c +++ b/modules/Singleowner.c @@ -69,11 +69,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -343,70 +343,70 @@ Revenue_set_ppa_soln_tolerance(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Revenue_getset[] = { {"dispatch_factor1", (getter)Revenue_get_dispatch_factor1,(setter)Revenue_set_dispatch_factor1, - PyDoc_STR("*float*: TOD factor for period 1\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 1\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor2", (getter)Revenue_get_dispatch_factor2,(setter)Revenue_set_dispatch_factor2, - PyDoc_STR("*float*: TOD factor for period 2\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 2\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor3", (getter)Revenue_get_dispatch_factor3,(setter)Revenue_set_dispatch_factor3, - PyDoc_STR("*float*: TOD factor for period 3\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 3\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor4", (getter)Revenue_get_dispatch_factor4,(setter)Revenue_set_dispatch_factor4, - PyDoc_STR("*float*: TOD factor for period 4\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 4\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor5", (getter)Revenue_get_dispatch_factor5,(setter)Revenue_set_dispatch_factor5, - PyDoc_STR("*float*: TOD factor for period 5\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 5\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor6", (getter)Revenue_get_dispatch_factor6,(setter)Revenue_set_dispatch_factor6, - PyDoc_STR("*float*: TOD factor for period 6\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 6\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor7", (getter)Revenue_get_dispatch_factor7,(setter)Revenue_set_dispatch_factor7, - PyDoc_STR("*float*: TOD factor for period 7\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 7\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor8", (getter)Revenue_get_dispatch_factor8,(setter)Revenue_set_dispatch_factor8, - PyDoc_STR("*float*: TOD factor for period 8\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 8\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factor9", (getter)Revenue_get_dispatch_factor9,(setter)Revenue_set_dispatch_factor9, - PyDoc_STR("*float*: TOD factor for period 9\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*float*: TOD factor for period 9\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_factors_ts", (getter)Revenue_get_dispatch_factors_ts,(setter)Revenue_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)Revenue_get_dispatch_sched_weekday,(setter)Revenue_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekday TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"dispatch_sched_weekend", (getter)Revenue_get_dispatch_sched_weekend,(setter)Revenue_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n*Info*: 12 x 24 matrix\n\n*Required*: True if ppa_multiplier_model=0"), + PyDoc_STR("*sequence[sequence]*: Diurnal weekend TOD periods [1..9]\n\n**Info:**\n12 x 24 matrix\n\n**Required:**\nRequired if ppa_multiplier_model=0"), NULL}, {"flip_target_percent", (getter)Revenue_get_flip_target_percent,(setter)Revenue_set_flip_target_percent, - PyDoc_STR("*float*: After-tax IRR target [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: After-tax IRR target [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"flip_target_year", (getter)Revenue_get_flip_target_year,(setter)Revenue_set_flip_target_year, - PyDoc_STR("*float*: IRR target year [Year]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: IRR target year [Year]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_escalation", (getter)Revenue_get_ppa_escalation,(setter)Revenue_set_ppa_escalation, - PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA escalation rate [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_multiplier_model", (getter)Revenue_get_ppa_multiplier_model,(setter)Revenue_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_price_input", (getter)Revenue_get_ppa_price_input,(setter)Revenue_set_ppa_price_input, - PyDoc_STR("*sequence*: PPA price in first year [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*sequence*: PPA price in first year input [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ppa_soln_max", (getter)Revenue_get_ppa_soln_max,(setter)Revenue_set_ppa_soln_max, - PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_max_iterations", (getter)Revenue_get_ppa_soln_max_iterations,(setter)Revenue_set_ppa_soln_max_iterations, - PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: PPA solution maximum number of iterations\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_min", (getter)Revenue_get_ppa_soln_min,(setter)Revenue_set_ppa_soln_min, - PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution minimum ppa [cents/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_mode", (getter)Revenue_get_ppa_soln_mode,(setter)Revenue_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode [0/1]\n\n*Options*: 0=solve ppa,1=specify ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA solution mode [0/1]\n\n**Options:**\n0=solve ppa,1=specify ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_soln_tolerance", (getter)Revenue_get_ppa_soln_tolerance,(setter)Revenue_set_ppa_soln_tolerance, - PyDoc_STR("*float*: PPA solution tolerance\n\n*Required*: If not provided, assumed to be 1e-5"), + PyDoc_STR("*float*: PPA solution tolerance\n\n**Required:**\nFalse. Automatically set to 1e-5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -521,11 +521,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -975,115 +975,115 @@ FinancialParameters_set_term_tenor(VarGroupObject *self, PyObject *value, void * static PyGetSetDef FinancialParameters_getset[] = { {"analysis_period", (getter)FinancialParameters_get_analysis_period,(setter)FinancialParameters_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"construction_financing_cost", (getter)FinancialParameters_get_construction_financing_cost,(setter)FinancialParameters_set_construction_financing_cost, - PyDoc_STR("*float*: Construction financing total [$]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - total_installed_cost\n"), + PyDoc_STR("*float*: Construction financing total [$]\n\n**Required:**\nTrue\n\nThe value of ``construction_financing_cost`` depends on the following variables:\n\n\t - total_installed_cost\n"), NULL}, {"cost_debt_closing", (getter)FinancialParameters_get_cost_debt_closing,(setter)FinancialParameters_set_cost_debt_closing, - PyDoc_STR("*float*: Debt closing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Debt closing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_debt_fee", (getter)FinancialParameters_get_cost_debt_fee,(setter)FinancialParameters_set_cost_debt_fee, - PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt closing fee (% of total debt amount) [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cost_other_financing", (getter)FinancialParameters_get_cost_other_financing,(setter)FinancialParameters_set_cost_other_financing, - PyDoc_STR("*float*: Other financing cost [$]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Other financing cost [$]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_option", (getter)FinancialParameters_get_debt_option,(setter)FinancialParameters_set_debt_option, - PyDoc_STR("*float*: Debt option [0/1]\n\n*Options*: 0=debt percent,1=dscr\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Debt option [0/1]\n\n**Options:**\n0=debt percent,1=dscr\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"debt_percent", (getter)FinancialParameters_get_debt_percent,(setter)FinancialParameters_set_debt_percent, - PyDoc_STR("*float*: Debt percent [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Debt percent [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr", (getter)FinancialParameters_get_dscr,(setter)FinancialParameters_set_dscr, - PyDoc_STR("*float*: Debt service coverage ratio\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Debt service coverage ratio\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_limit_debt_fraction", (getter)FinancialParameters_get_dscr_limit_debt_fraction,(setter)FinancialParameters_set_dscr_limit_debt_fraction, - PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Limit debt fraction [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_maximum_debt_fraction", (getter)FinancialParameters_get_dscr_maximum_debt_fraction,(setter)FinancialParameters_set_dscr_maximum_debt_fraction, - PyDoc_STR("*float*: Maximum debt fraction [%]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Maximum debt fraction [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"dscr_reserve_months", (getter)FinancialParameters_get_dscr_reserve_months,(setter)FinancialParameters_set_dscr_reserve_months, - PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Debt service reserve account [months P&I]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_cost", (getter)FinancialParameters_get_equip1_reserve_cost,(setter)FinancialParameters_set_equip1_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Major equipment reserve 1 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"equip1_reserve_freq", (getter)FinancialParameters_get_equip1_reserve_freq,(setter)FinancialParameters_set_equip1_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Major equipment reserve 1 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_cost", (getter)FinancialParameters_get_equip2_reserve_cost,(setter)FinancialParameters_set_equip2_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 2 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip2_reserve_freq", (getter)FinancialParameters_get_equip2_reserve_freq,(setter)FinancialParameters_set_equip2_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 15"), + PyDoc_STR("*float*: Major equipment reserve 2 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 15 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_cost", (getter)FinancialParameters_get_equip3_reserve_cost,(setter)FinancialParameters_set_equip3_reserve_cost, - PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve 3 cost [$/W]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip3_reserve_freq", (getter)FinancialParameters_get_equip3_reserve_freq,(setter)FinancialParameters_set_equip3_reserve_freq, - PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Major equipment reserve 3 frequency [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_fed", (getter)FinancialParameters_get_equip_reserve_depr_fed,(setter)FinancialParameters_set_equip_reserve_depr_fed, - PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve federal depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"equip_reserve_depr_sta", (getter)FinancialParameters_get_equip_reserve_depr_sta,(setter)FinancialParameters_set_equip_reserve_depr_sta, - PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n*Options*: 0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n*Constraints*: INTEGER,MIN=0,MAX=6\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Major equipment reserve state depreciation\n\n**Options:**\n0=5yr MACRS,1=15yr MACRS,2=5yr SL,3=15yr SL, 4=20yr SL,5=39yr SL,6=Custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=6\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"federal_tax_rate", (getter)FinancialParameters_get_federal_tax_rate,(setter)FinancialParameters_set_federal_tax_rate, - PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Federal income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)FinancialParameters_get_inflation_rate,(setter)FinancialParameters_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"insurance_rate", (getter)FinancialParameters_get_insurance_rate,(setter)FinancialParameters_set_insurance_rate, - PyDoc_STR("*float*: Insurance rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Insurance rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"loan_moratorium", (getter)FinancialParameters_get_loan_moratorium,(setter)FinancialParameters_set_loan_moratorium, - PyDoc_STR("*float*: Loan moratorium period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loan moratorium period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_receivables_reserve", (getter)FinancialParameters_get_months_receivables_reserve,(setter)FinancialParameters_set_months_receivables_reserve, - PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Receivables reserve months of PPA revenue [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"months_working_reserve", (getter)FinancialParameters_get_months_working_reserve,(setter)FinancialParameters_set_months_working_reserve, - PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Working capital reserve months of operating costs [months]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"payment_option", (getter)FinancialParameters_get_payment_option,(setter)FinancialParameters_set_payment_option, - PyDoc_STR("*float*: Debt repayment option [0/1]\n\n*Options*: 0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Debt repayment option [0/1]\n\n**Options:**\n0=Equal payments (standard amortization),1=Fixed principal declining interest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_assessed_decline", (getter)FinancialParameters_get_prop_tax_assessed_decline,(setter)FinancialParameters_set_prop_tax_assessed_decline, - PyDoc_STR("*float*: Assessed value annual decline [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Assessed value annual decline [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"prop_tax_cost_assessed_percent", (getter)FinancialParameters_get_prop_tax_cost_assessed_percent,(setter)FinancialParameters_set_prop_tax_cost_assessed_percent, - PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 95"), + PyDoc_STR("*float*: Percent of pre-financing costs assessed [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 95 if not assigned explicitly or loaded from defaults."), NULL}, {"property_tax_rate", (getter)FinancialParameters_get_property_tax_rate,(setter)FinancialParameters_set_property_tax_rate, - PyDoc_STR("*float*: Property tax rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Property tax rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"real_discount_rate", (getter)FinancialParameters_get_real_discount_rate,(setter)FinancialParameters_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"reserves_interest", (getter)FinancialParameters_get_reserves_interest,(setter)FinancialParameters_set_reserves_interest, - PyDoc_STR("*float*: Interest on reserves [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.75"), + PyDoc_STR("*float*: Interest on reserves [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.75 if not assigned explicitly or loaded from defaults."), NULL}, {"salvage_percentage", (getter)FinancialParameters_get_salvage_percentage,(setter)FinancialParameters_set_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Net pre-tax cash salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"state_tax_rate", (getter)FinancialParameters_get_state_tax_rate,(setter)FinancialParameters_set_state_tax_rate, - PyDoc_STR("*sequence*: State income tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: State income tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"system_capacity", (getter)FinancialParameters_get_system_capacity,(setter)FinancialParameters_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), NULL}, {"system_heat_rate", (getter)FinancialParameters_get_system_heat_rate,(setter)FinancialParameters_set_system_heat_rate, - PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: System heat rate [MMBTus/MWh]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"term_int_rate", (getter)FinancialParameters_get_term_int_rate,(setter)FinancialParameters_set_term_int_rate, - PyDoc_STR("*float*: Term financing interest rate [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 8.5"), + PyDoc_STR("*float*: Term financing interest rate [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 8.5 if not assigned explicitly or loaded from defaults."), NULL}, {"term_tenor", (getter)FinancialParameters_get_term_tenor,(setter)FinancialParameters_set_term_tenor, - PyDoc_STR("*float*: Term financing period [years]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Term financing period [years]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1198,11 +1198,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1640,112 +1640,112 @@ SystemCosts_set_total_installed_cost(VarGroupObject *self, PyObject *value, void static PyGetSetDef SystemCosts_getset[] = { {"add_om_num_types", (getter)SystemCosts_get_add_om_num_types,(setter)SystemCosts_set_add_om_num_types, - PyDoc_STR("*float*: Number of O and M types\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of O and M types\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage", (getter)SystemCosts_get_annual_fuel_usage,(setter)SystemCosts_set_annual_fuel_usage, - PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel usage (yr 1) [kWht]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"annual_fuel_usage_lifetime", (getter)SystemCosts_get_annual_fuel_usage_lifetime,(setter)SystemCosts_set_annual_fuel_usage_lifetime, PyDoc_STR("*sequence*: Fuel usage (lifetime) [kWht]"), NULL}, {"fuelcell_annual_energy_discharged", (getter)SystemCosts_get_fuelcell_annual_energy_discharged,(setter)SystemCosts_set_fuelcell_annual_energy_discharged, - PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell annual energy discharged [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_capacity_cost", (getter)SystemCosts_get_om_batt_capacity_cost,(setter)SystemCosts_set_om_batt_capacity_cost, - PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_fixed_cost", (getter)SystemCosts_get_om_batt_fixed_cost,(setter)SystemCosts_set_om_batt_fixed_cost, - PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_nameplate", (getter)SystemCosts_get_om_batt_nameplate,(setter)SystemCosts_set_om_batt_nameplate, - PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Battery capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_replacement_cost", (getter)SystemCosts_get_om_batt_replacement_cost,(setter)SystemCosts_set_om_batt_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_batt_variable_cost", (getter)SystemCosts_get_om_batt_variable_cost,(setter)SystemCosts_set_om_batt_variable_cost, - PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Battery production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity", (getter)SystemCosts_get_om_capacity,(setter)SystemCosts_set_om_capacity, - PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Capacity-based O&M amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_capacity_escal", (getter)SystemCosts_get_om_capacity_escal,(setter)SystemCosts_set_om_capacity_escal, - PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Capacity-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed", (getter)SystemCosts_get_om_fixed,(setter)SystemCosts_set_om_fixed, - PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fixed O&M annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fixed_escal", (getter)SystemCosts_get_om_fixed_escal,(setter)SystemCosts_set_om_fixed_escal, - PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fixed O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost", (getter)SystemCosts_get_om_fuel_cost,(setter)SystemCosts_set_om_fuel_cost, - PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cost [$/MMBtu]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuel_cost_escal", (getter)SystemCosts_get_om_fuel_cost_escal,(setter)SystemCosts_set_om_fuel_cost_escal, - PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_capacity_cost", (getter)SystemCosts_get_om_fuelcell_capacity_cost,(setter)SystemCosts_set_om_fuelcell_capacity_cost, - PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell capacity-based System Costs amount [$/kWcap]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_fixed_cost", (getter)SystemCosts_get_om_fuelcell_fixed_cost,(setter)SystemCosts_set_om_fuelcell_fixed_cost, - PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell fixed System Costs annual amount [$/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_nameplate", (getter)SystemCosts_get_om_fuelcell_nameplate,(setter)SystemCosts_set_om_fuelcell_nameplate, - PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Fuel cell capacity for System Costs values [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_replacement_cost", (getter)SystemCosts_get_om_fuelcell_replacement_cost,(setter)SystemCosts_set_om_fuelcell_replacement_cost, - PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Replacement cost 2 [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_fuelcell_variable_cost", (getter)SystemCosts_get_om_fuelcell_variable_cost,(setter)SystemCosts_set_om_fuelcell_variable_cost, - PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Fuel cell production-based System Costs amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost", (getter)SystemCosts_get_om_opt_fuel_1_cost,(setter)SystemCosts_set_om_opt_fuel_1_cost, - PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Biomass feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_cost_escal", (getter)SystemCosts_get_om_opt_fuel_1_cost_escal,(setter)SystemCosts_set_om_opt_fuel_1_cost_escal, - PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_1_usage", (getter)SystemCosts_get_om_opt_fuel_1_usage,(setter)SystemCosts_set_om_opt_fuel_1_usage, - PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Biomass feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost", (getter)SystemCosts_get_om_opt_fuel_2_cost,(setter)SystemCosts_set_om_opt_fuel_2_cost, - PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Coal feedstock cost [$/unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_cost_escal", (getter)SystemCosts_get_om_opt_fuel_2_cost_escal,(setter)SystemCosts_set_om_opt_fuel_2_cost_escal, - PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_opt_fuel_2_usage", (getter)SystemCosts_get_om_opt_fuel_2_usage,(setter)SystemCosts_set_om_opt_fuel_2_usage, - PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Coal feedstock usage [unit]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production", (getter)SystemCosts_get_om_production,(setter)SystemCosts_set_om_production, - PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*sequence*: Production-based O&M amount [$/MWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production1_values", (getter)SystemCosts_get_om_production1_values,(setter)SystemCosts_set_om_production1_values, - PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Battery production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production2_values", (getter)SystemCosts_get_om_production2_values,(setter)SystemCosts_set_om_production2_values, - PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Fuel cell production for System Costs values [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_production_escal", (getter)SystemCosts_get_om_production_escal,(setter)SystemCosts_set_om_production_escal, - PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Production-based O&M escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_replacement_cost_escal", (getter)SystemCosts_get_om_replacement_cost_escal,(setter)SystemCosts_set_om_replacement_cost_escal, - PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Replacement cost escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_lifetime_recapitalize", (getter)SystemCosts_get_system_lifetime_recapitalize,(setter)SystemCosts_set_system_lifetime_recapitalize, - PyDoc_STR("*sequence*: Recapitalization boolean\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Recapitalization boolean\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_cost", (getter)SystemCosts_get_system_recapitalization_cost,(setter)SystemCosts_set_system_recapitalization_cost, - PyDoc_STR("*float*: Recapitalization cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_recapitalization_escalation", (getter)SystemCosts_get_system_recapitalization_escalation,(setter)SystemCosts_set_system_recapitalization_escalation, - PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization escalation (above inflation) [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_recapitalization", (getter)SystemCosts_get_system_use_recapitalization,(setter)SystemCosts_set_system_use_recapitalization, - PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n*Options*: 0=None,1=Recapitalize\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Recapitalization expenses [0/1]\n\n**Options:**\n0=None,1=Recapitalize\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"total_installed_cost", (getter)SystemCosts_get_total_installed_cost,(setter)SystemCosts_set_total_installed_cost, - PyDoc_STR("*float*: Installed cost [$]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - construction_financing_cost\n"), + PyDoc_STR("*float*: Installed cost [$]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``total_installed_cost``:\n\n\t - construction_financing_cost\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1860,11 +1860,11 @@ LandLease_export(VarGroupObject *self, PyObject *args) static PyMethodDef LandLease_methods[] = { {"assign", (PyCFunction)LandLease_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LandLease_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LandLease_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LandLease_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LandLease_vals = { var: val, ...}``")}, {"export", (PyCFunction)LandLease_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1906,13 +1906,13 @@ LandLease_set_om_land_lease_escal(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef LandLease_getset[] = { {"land_area", (getter)LandLease_get_land_area,(setter)LandLease_set_land_area, - PyDoc_STR("*float*: Total land area [acres]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total land area [acres]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease", (getter)LandLease_get_om_land_lease,(setter)LandLease_set_om_land_lease, - PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Land lease cost [$/acre]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"om_land_lease_escal", (getter)LandLease_get_om_land_lease_escal,(setter)LandLease_set_om_land_lease_escal, - PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Land lease cost escalation [%/yr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2027,11 +2027,11 @@ TaxCreditIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef TaxCreditIncentives_methods[] = { {"assign", (PyCFunction)TaxCreditIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TaxCreditIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TaxCreditIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)TaxCreditIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2277,64 +2277,64 @@ TaxCreditIncentives_set_ptc_sta_term(VarGroupObject *self, PyObject *value, void static PyGetSetDef TaxCreditIncentives_getset[] = { {"itc_fed_amount", (getter)TaxCreditIncentives_get_itc_fed_amount,(setter)TaxCreditIncentives_set_itc_fed_amount, - PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent", (getter)TaxCreditIncentives_get_itc_fed_percent,(setter)TaxCreditIncentives_set_itc_fed_percent, - PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_fed_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_fed_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_fed_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based ITC maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount", (getter)TaxCreditIncentives_get_itc_sta_amount,(setter)TaxCreditIncentives_set_itc_sta_amount, - PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_amount_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_amount_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent", (getter)TaxCreditIncentives_get_itc_sta_percent,(setter)TaxCreditIncentives_set_itc_sta_percent, - PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC percent [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_fed", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_fed,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_deprbas_sta", (getter)TaxCreditIncentives_get_itc_sta_percent_deprbas_sta,(setter)TaxCreditIncentives_set_itc_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based ITC reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"itc_sta_percent_maxvalue", (getter)TaxCreditIncentives_get_itc_sta_percent_maxvalue,(setter)TaxCreditIncentives_set_itc_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based ITC maximum Value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_amount", (getter)TaxCreditIncentives_get_ptc_fed_amount,(setter)TaxCreditIncentives_set_ptc_fed_amount, - PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_escal", (getter)TaxCreditIncentives_get_ptc_fed_escal,(setter)TaxCreditIncentives_set_ptc_fed_escal, - PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_fed_term", (getter)TaxCreditIncentives_get_ptc_fed_term,(setter)TaxCreditIncentives_set_ptc_fed_term, - PyDoc_STR("*float*: Federal PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: Federal PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_amount", (getter)TaxCreditIncentives_get_ptc_sta_amount,(setter)TaxCreditIncentives_set_ptc_sta_amount, - PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PTC amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_escal", (getter)TaxCreditIncentives_get_ptc_sta_escal,(setter)TaxCreditIncentives_set_ptc_sta_escal, - PyDoc_STR("*float*: State PTC escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PTC escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ptc_sta_term", (getter)TaxCreditIncentives_get_ptc_sta_term,(setter)TaxCreditIncentives_set_ptc_sta_term, - PyDoc_STR("*float*: State PTC term [years]\n\n*Required*: If not provided, assumed to be 10"), + PyDoc_STR("*float*: State PTC term [years]\n\n**Required:**\nFalse. Automatically set to 10 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -2449,11 +2449,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2939,124 +2939,124 @@ Depreciation_set_depr_stabas_method(VarGroupObject *self, PyObject *value, void static PyGetSetDef Depreciation_getset[] = { {"depr_alloc_custom_percent", (getter)Depreciation_get_depr_alloc_custom_percent,(setter)Depreciation_set_depr_alloc_custom_percent, - PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Custom depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_15_percent", (getter)Depreciation_get_depr_alloc_macrs_15_percent,(setter)Depreciation_set_depr_alloc_macrs_15_percent, - PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: 15-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_macrs_5_percent", (getter)Depreciation_get_depr_alloc_macrs_5_percent,(setter)Depreciation_set_depr_alloc_macrs_5_percent, - PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 89"), + PyDoc_STR("*float*: 5-yr MACRS depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 89 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_15_percent", (getter)Depreciation_get_depr_alloc_sl_15_percent,(setter)Depreciation_set_depr_alloc_sl_15_percent, - PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 15-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_20_percent", (getter)Depreciation_get_depr_alloc_sl_20_percent,(setter)Depreciation_set_depr_alloc_sl_20_percent, - PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: 20-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_39_percent", (getter)Depreciation_get_depr_alloc_sl_39_percent,(setter)Depreciation_set_depr_alloc_sl_39_percent, - PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0.5"), + PyDoc_STR("*float*: 39-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0.5 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_alloc_sl_5_percent", (getter)Depreciation_get_depr_alloc_sl_5_percent,(setter)Depreciation_set_depr_alloc_sl_5_percent, - PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 5-yr straight line depreciation federal and state allocation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed", (getter)Depreciation_get_depr_bonus_fed,(setter)Depreciation_set_depr_bonus_fed, - PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_custom", (getter)Depreciation_get_depr_bonus_fed_custom,(setter)Depreciation_set_depr_bonus_fed_custom, - PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_15", (getter)Depreciation_get_depr_bonus_fed_macrs_15,(setter)Depreciation_set_depr_bonus_fed_macrs_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_macrs_5", (getter)Depreciation_get_depr_bonus_fed_macrs_5,(setter)Depreciation_set_depr_bonus_fed_macrs_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_15", (getter)Depreciation_get_depr_bonus_fed_sl_15,(setter)Depreciation_set_depr_bonus_fed_sl_15, - PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_20", (getter)Depreciation_get_depr_bonus_fed_sl_20,(setter)Depreciation_set_depr_bonus_fed_sl_20, - PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_39", (getter)Depreciation_get_depr_bonus_fed_sl_39,(setter)Depreciation_set_depr_bonus_fed_sl_39, - PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_fed_sl_5", (getter)Depreciation_get_depr_bonus_fed_sl_5,(setter)Depreciation_set_depr_bonus_fed_sl_5, - PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta", (getter)Depreciation_get_depr_bonus_sta,(setter)Depreciation_set_depr_bonus_sta, - PyDoc_STR("*float*: State bonus depreciation [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_custom", (getter)Depreciation_get_depr_bonus_sta_custom,(setter)Depreciation_set_depr_bonus_sta_custom, - PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_15", (getter)Depreciation_get_depr_bonus_sta_macrs_15,(setter)Depreciation_set_depr_bonus_sta_macrs_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_macrs_5", (getter)Depreciation_get_depr_bonus_sta_macrs_5,(setter)Depreciation_set_depr_bonus_sta_macrs_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State bonus depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_15", (getter)Depreciation_get_depr_bonus_sta_sl_15,(setter)Depreciation_set_depr_bonus_sta_sl_15, - PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_20", (getter)Depreciation_get_depr_bonus_sta_sl_20,(setter)Depreciation_set_depr_bonus_sta_sl_20, - PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_39", (getter)Depreciation_get_depr_bonus_sta_sl_39,(setter)Depreciation_set_depr_bonus_sta_sl_39, - PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_bonus_sta_sl_5", (getter)Depreciation_get_depr_bonus_sta_sl_5,(setter)Depreciation_set_depr_bonus_sta_sl_5, - PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State bonus depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_custom_schedule", (getter)Depreciation_get_depr_custom_schedule,(setter)Depreciation_set_depr_custom_schedule, - PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom depreciation schedule [%]\n\n**Required:**\nTrue"), NULL}, {"depr_fedbas_method", (getter)Depreciation_get_depr_fedbas_method,(setter)Depreciation_set_depr_fedbas_method, - PyDoc_STR("*float*: Method of federal depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of federal depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_custom", (getter)Depreciation_get_depr_itc_fed_custom,(setter)Depreciation_set_depr_itc_fed_custom, - PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_15", (getter)Depreciation_get_depr_itc_fed_macrs_15,(setter)Depreciation_set_depr_itc_fed_macrs_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_macrs_5", (getter)Depreciation_get_depr_itc_fed_macrs_5,(setter)Depreciation_set_depr_itc_fed_macrs_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_15", (getter)Depreciation_get_depr_itc_fed_sl_15,(setter)Depreciation_set_depr_itc_fed_sl_15, - PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_20", (getter)Depreciation_get_depr_itc_fed_sl_20,(setter)Depreciation_set_depr_itc_fed_sl_20, - PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_39", (getter)Depreciation_get_depr_itc_fed_sl_39,(setter)Depreciation_set_depr_itc_fed_sl_39, - PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_fed_sl_5", (getter)Depreciation_get_depr_itc_fed_sl_5,(setter)Depreciation_set_depr_itc_fed_sl_5, - PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_custom", (getter)Depreciation_get_depr_itc_sta_custom,(setter)Depreciation_set_depr_itc_sta_custom, - PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation custom [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_15", (getter)Depreciation_get_depr_itc_sta_macrs_15,(setter)Depreciation_set_depr_itc_sta_macrs_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_macrs_5", (getter)Depreciation_get_depr_itc_sta_macrs_5,(setter)Depreciation_set_depr_itc_sta_macrs_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State ITC depreciation 5-yr MACRS [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_15", (getter)Depreciation_get_depr_itc_sta_sl_15,(setter)Depreciation_set_depr_itc_sta_sl_15, - PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 15-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_20", (getter)Depreciation_get_depr_itc_sta_sl_20,(setter)Depreciation_set_depr_itc_sta_sl_20, - PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 20-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_39", (getter)Depreciation_get_depr_itc_sta_sl_39,(setter)Depreciation_set_depr_itc_sta_sl_39, - PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 39-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_itc_sta_sl_5", (getter)Depreciation_get_depr_itc_sta_sl_5,(setter)Depreciation_set_depr_itc_sta_sl_5, - PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State ITC depreciation 5-yr straight line [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_stabas_method", (getter)Depreciation_get_depr_stabas_method,(setter)Depreciation_set_depr_stabas_method, - PyDoc_STR("*float*: Method of state depreciation reduction\n\n*Options*: 0=5yr MACRS,1=Proportional\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Method of state depreciation reduction\n\n**Options:**\n0=5yr MACRS,1=Proportional\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3171,11 +3171,11 @@ PaymentIncentives_export(VarGroupObject *self, PyObject *args) static PyMethodDef PaymentIncentives_methods[] = { {"assign", (PyCFunction)PaymentIncentives_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PaymentIncentives_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PaymentIncentives_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PaymentIncentives_vals = { var: val, ...}``")}, {"export", (PyCFunction)PaymentIncentives_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4285,280 +4285,280 @@ PaymentIncentives_set_pbi_uti_term(VarGroupObject *self, PyObject *value, void * static PyGetSetDef PaymentIncentives_getset[] = { {"cbi_fed_amount", (getter)PaymentIncentives_get_cbi_fed_amount,(setter)PaymentIncentives_set_cbi_fed_amount, - PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_fed", (getter)PaymentIncentives_get_cbi_fed_deprbas_fed,(setter)PaymentIncentives_set_cbi_fed_deprbas_fed, - PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_deprbas_sta", (getter)PaymentIncentives_get_cbi_fed_deprbas_sta,(setter)PaymentIncentives_set_cbi_fed_deprbas_sta, - PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_maxvalue", (getter)PaymentIncentives_get_cbi_fed_maxvalue,(setter)PaymentIncentives_set_cbi_fed_maxvalue, - PyDoc_STR("*float*: Federal CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_fed", (getter)PaymentIncentives_get_cbi_fed_tax_fed,(setter)PaymentIncentives_set_cbi_fed_tax_fed, - PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_fed_tax_sta", (getter)PaymentIncentives_get_cbi_fed_tax_sta,(setter)PaymentIncentives_set_cbi_fed_tax_sta, - PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_amount", (getter)PaymentIncentives_get_cbi_oth_amount,(setter)PaymentIncentives_set_cbi_oth_amount, - PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_fed", (getter)PaymentIncentives_get_cbi_oth_deprbas_fed,(setter)PaymentIncentives_set_cbi_oth_deprbas_fed, - PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_deprbas_sta", (getter)PaymentIncentives_get_cbi_oth_deprbas_sta,(setter)PaymentIncentives_set_cbi_oth_deprbas_sta, - PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_maxvalue", (getter)PaymentIncentives_get_cbi_oth_maxvalue,(setter)PaymentIncentives_set_cbi_oth_maxvalue, - PyDoc_STR("*float*: Other CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_fed", (getter)PaymentIncentives_get_cbi_oth_tax_fed,(setter)PaymentIncentives_set_cbi_oth_tax_fed, - PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_oth_tax_sta", (getter)PaymentIncentives_get_cbi_oth_tax_sta,(setter)PaymentIncentives_set_cbi_oth_tax_sta, - PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_amount", (getter)PaymentIncentives_get_cbi_sta_amount,(setter)PaymentIncentives_set_cbi_sta_amount, - PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_fed", (getter)PaymentIncentives_get_cbi_sta_deprbas_fed,(setter)PaymentIncentives_set_cbi_sta_deprbas_fed, - PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_deprbas_sta", (getter)PaymentIncentives_get_cbi_sta_deprbas_sta,(setter)PaymentIncentives_set_cbi_sta_deprbas_sta, - PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_maxvalue", (getter)PaymentIncentives_get_cbi_sta_maxvalue,(setter)PaymentIncentives_set_cbi_sta_maxvalue, - PyDoc_STR("*float*: State CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_fed", (getter)PaymentIncentives_get_cbi_sta_tax_fed,(setter)PaymentIncentives_set_cbi_sta_tax_fed, - PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_sta_tax_sta", (getter)PaymentIncentives_get_cbi_sta_tax_sta,(setter)PaymentIncentives_set_cbi_sta_tax_sta, - PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_amount", (getter)PaymentIncentives_get_cbi_uti_amount,(setter)PaymentIncentives_set_cbi_uti_amount, - PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility CBI amount [$/Watt]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_fed", (getter)PaymentIncentives_get_cbi_uti_deprbas_fed,(setter)PaymentIncentives_set_cbi_uti_deprbas_fed, - PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_deprbas_sta", (getter)PaymentIncentives_get_cbi_uti_deprbas_sta,(setter)PaymentIncentives_set_cbi_uti_deprbas_sta, - PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility CBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_maxvalue", (getter)PaymentIncentives_get_cbi_uti_maxvalue,(setter)PaymentIncentives_set_cbi_uti_maxvalue, - PyDoc_STR("*float*: Utility CBI maximum [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility CBI maximum [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_fed", (getter)PaymentIncentives_get_cbi_uti_tax_fed,(setter)PaymentIncentives_set_cbi_uti_tax_fed, - PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"cbi_uti_tax_sta", (getter)PaymentIncentives_get_cbi_uti_tax_sta,(setter)PaymentIncentives_set_cbi_uti_tax_sta, - PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility CBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount", (getter)PaymentIncentives_get_ibi_fed_amount,(setter)PaymentIncentives_set_ibi_fed_amount, - PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_fed, - PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_amount_deprbas_sta, - PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_fed", (getter)PaymentIncentives_get_ibi_fed_amount_tax_fed,(setter)PaymentIncentives_set_ibi_fed_amount_tax_fed, - PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_amount_tax_sta", (getter)PaymentIncentives_get_ibi_fed_amount_tax_sta,(setter)PaymentIncentives_set_ibi_fed_amount_tax_sta, - PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent", (getter)PaymentIncentives_get_ibi_fed_percent,(setter)PaymentIncentives_set_ibi_fed_percent, - PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Federal percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_fed, - PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_fed_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_fed_percent_deprbas_sta, - PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_maxvalue", (getter)PaymentIncentives_get_ibi_fed_percent_maxvalue,(setter)PaymentIncentives_set_ibi_fed_percent_maxvalue, - PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Federal percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_fed", (getter)PaymentIncentives_get_ibi_fed_percent_tax_fed,(setter)PaymentIncentives_set_ibi_fed_percent_tax_fed, - PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_fed_percent_tax_sta", (getter)PaymentIncentives_get_ibi_fed_percent_tax_sta,(setter)PaymentIncentives_set_ibi_fed_percent_tax_sta, - PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount", (getter)PaymentIncentives_get_ibi_oth_amount,(setter)PaymentIncentives_set_ibi_oth_amount, - PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_fed, - PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_amount_deprbas_sta, - PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_fed", (getter)PaymentIncentives_get_ibi_oth_amount_tax_fed,(setter)PaymentIncentives_set_ibi_oth_amount_tax_fed, - PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_amount_tax_sta", (getter)PaymentIncentives_get_ibi_oth_amount_tax_sta,(setter)PaymentIncentives_set_ibi_oth_amount_tax_sta, - PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent", (getter)PaymentIncentives_get_ibi_oth_percent,(setter)PaymentIncentives_set_ibi_oth_percent, - PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Other percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_fed, - PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_oth_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_oth_percent_deprbas_sta, - PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_maxvalue", (getter)PaymentIncentives_get_ibi_oth_percent_maxvalue,(setter)PaymentIncentives_set_ibi_oth_percent_maxvalue, - PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Other percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_fed", (getter)PaymentIncentives_get_ibi_oth_percent_tax_fed,(setter)PaymentIncentives_set_ibi_oth_percent_tax_fed, - PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_oth_percent_tax_sta", (getter)PaymentIncentives_get_ibi_oth_percent_tax_sta,(setter)PaymentIncentives_set_ibi_oth_percent_tax_sta, - PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount", (getter)PaymentIncentives_get_ibi_sta_amount,(setter)PaymentIncentives_set_ibi_sta_amount, - PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_fed, - PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_amount_deprbas_sta, - PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_fed", (getter)PaymentIncentives_get_ibi_sta_amount_tax_fed,(setter)PaymentIncentives_set_ibi_sta_amount_tax_fed, - PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_amount_tax_sta", (getter)PaymentIncentives_get_ibi_sta_amount_tax_sta,(setter)PaymentIncentives_set_ibi_sta_amount_tax_sta, - PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent", (getter)PaymentIncentives_get_ibi_sta_percent,(setter)PaymentIncentives_set_ibi_sta_percent, - PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: State percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_fed, - PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_sta_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_sta_percent_deprbas_sta, - PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_maxvalue", (getter)PaymentIncentives_get_ibi_sta_percent_maxvalue,(setter)PaymentIncentives_set_ibi_sta_percent_maxvalue, - PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: State percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_fed", (getter)PaymentIncentives_get_ibi_sta_percent_tax_fed,(setter)PaymentIncentives_set_ibi_sta_percent_tax_fed, - PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_sta_percent_tax_sta", (getter)PaymentIncentives_get_ibi_sta_percent_tax_sta,(setter)PaymentIncentives_set_ibi_sta_percent_tax_sta, - PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount", (getter)PaymentIncentives_get_ibi_uti_amount,(setter)PaymentIncentives_set_ibi_uti_amount, - PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI amount [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_fed, - PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_amount_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_amount_deprbas_sta, - PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility amount-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_fed", (getter)PaymentIncentives_get_ibi_uti_amount_tax_fed,(setter)PaymentIncentives_set_ibi_uti_amount_tax_fed, - PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_amount_tax_sta", (getter)PaymentIncentives_get_ibi_uti_amount_tax_sta,(setter)PaymentIncentives_set_ibi_uti_amount_tax_sta, - PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility amount-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent", (getter)PaymentIncentives_get_ibi_uti_percent,(setter)PaymentIncentives_set_ibi_uti_percent, - PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Utility percentage-based IBI percent [%]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_fed", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_fed,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_fed, - PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces federal depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_deprbas_sta", (getter)PaymentIncentives_get_ibi_uti_percent_deprbas_sta,(setter)PaymentIncentives_set_ibi_uti_percent_deprbas_sta, - PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility percentage-based IBI reduces state depreciation basis [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_maxvalue", (getter)PaymentIncentives_get_ibi_uti_percent_maxvalue,(setter)PaymentIncentives_set_ibi_uti_percent_maxvalue, - PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Utility percentage-based IBI maximum value [$]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_fed", (getter)PaymentIncentives_get_ibi_uti_percent_tax_fed,(setter)PaymentIncentives_set_ibi_uti_percent_tax_fed, - PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ibi_uti_percent_tax_sta", (getter)PaymentIncentives_get_ibi_uti_percent_tax_sta,(setter)PaymentIncentives_set_ibi_uti_percent_tax_sta, - PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility percentage-based IBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_amount", (getter)PaymentIncentives_get_pbi_fed_amount,(setter)PaymentIncentives_set_pbi_fed_amount, - PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Federal PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_escal", (getter)PaymentIncentives_get_pbi_fed_escal,(setter)PaymentIncentives_set_pbi_fed_escal, - PyDoc_STR("*float*: Federal PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_for_ds", (getter)PaymentIncentives_get_pbi_fed_for_ds,(setter)PaymentIncentives_set_pbi_fed_for_ds, - PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_fed", (getter)PaymentIncentives_get_pbi_fed_tax_fed,(setter)PaymentIncentives_set_pbi_fed_tax_fed, - PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_tax_sta", (getter)PaymentIncentives_get_pbi_fed_tax_sta,(setter)PaymentIncentives_set_pbi_fed_tax_sta, - PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Federal PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_fed_term", (getter)PaymentIncentives_get_pbi_fed_term,(setter)PaymentIncentives_set_pbi_fed_term, - PyDoc_STR("*float*: Federal PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_amount", (getter)PaymentIncentives_get_pbi_oth_amount,(setter)PaymentIncentives_set_pbi_oth_amount, - PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Other PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_escal", (getter)PaymentIncentives_get_pbi_oth_escal,(setter)PaymentIncentives_set_pbi_oth_escal, - PyDoc_STR("*float*: Other PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_for_ds", (getter)PaymentIncentives_get_pbi_oth_for_ds,(setter)PaymentIncentives_set_pbi_oth_for_ds, - PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_fed", (getter)PaymentIncentives_get_pbi_oth_tax_fed,(setter)PaymentIncentives_set_pbi_oth_tax_fed, - PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_tax_sta", (getter)PaymentIncentives_get_pbi_oth_tax_sta,(setter)PaymentIncentives_set_pbi_oth_tax_sta, - PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Other PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_oth_term", (getter)PaymentIncentives_get_pbi_oth_term,(setter)PaymentIncentives_set_pbi_oth_term, - PyDoc_STR("*float*: Other PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Other PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_amount", (getter)PaymentIncentives_get_pbi_sta_amount,(setter)PaymentIncentives_set_pbi_sta_amount, - PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: State PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_escal", (getter)PaymentIncentives_get_pbi_sta_escal,(setter)PaymentIncentives_set_pbi_sta_escal, - PyDoc_STR("*float*: State PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_for_ds", (getter)PaymentIncentives_get_pbi_sta_for_ds,(setter)PaymentIncentives_set_pbi_sta_for_ds, - PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_fed", (getter)PaymentIncentives_get_pbi_sta_tax_fed,(setter)PaymentIncentives_set_pbi_sta_tax_fed, - PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_tax_sta", (getter)PaymentIncentives_get_pbi_sta_tax_sta,(setter)PaymentIncentives_set_pbi_sta_tax_sta, - PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: State PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_sta_term", (getter)PaymentIncentives_get_pbi_sta_term,(setter)PaymentIncentives_set_pbi_sta_term, - PyDoc_STR("*float*: State PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_amount", (getter)PaymentIncentives_get_pbi_uti_amount,(setter)PaymentIncentives_set_pbi_uti_amount, - PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Utility PBI amount [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_escal", (getter)PaymentIncentives_get_pbi_uti_escal,(setter)PaymentIncentives_set_pbi_uti_escal, - PyDoc_STR("*float*: Utility PBI escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_for_ds", (getter)PaymentIncentives_get_pbi_uti_for_ds,(setter)PaymentIncentives_set_pbi_uti_for_ds, - PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI available for debt service [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_fed", (getter)PaymentIncentives_get_pbi_uti_tax_fed,(setter)PaymentIncentives_set_pbi_uti_tax_fed, - PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI federal taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_tax_sta", (getter)PaymentIncentives_get_pbi_uti_tax_sta,(setter)PaymentIncentives_set_pbi_uti_tax_sta, - PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Utility PBI state taxable [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"pbi_uti_term", (getter)PaymentIncentives_get_pbi_uti_term,(setter)PaymentIncentives_set_pbi_uti_term, - PyDoc_STR("*float*: Utility PBI term [years]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Utility PBI term [years]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4673,11 +4673,11 @@ BatterySystem_export(VarGroupObject *self, PyObject *args) static PyMethodDef BatterySystem_methods[] = { {"assign", (PyCFunction)BatterySystem_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"replace", (PyCFunction)BatterySystem_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``BatterySystem_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``BatterySystem_vals = { var: val, ...}``")}, {"export", (PyCFunction)BatterySystem_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4782,25 +4782,25 @@ static PyGetSetDef BatterySystem_getset[] = { PyDoc_STR("*sequence*: Battery bank replacements per year [number/year]"), NULL}, {"batt_computed_bank_capacity", (getter)BatterySystem_get_batt_computed_bank_capacity,(setter)BatterySystem_set_batt_computed_bank_capacity, - PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n"), + PyDoc_STR("*float*: Battery bank capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_meter_position", (getter)BatterySystem_get_batt_meter_position,(setter)BatterySystem_set_batt_meter_position, PyDoc_STR("*float*: Position of battery relative to electric meter"), NULL}, {"batt_replacement_option", (getter)BatterySystem_get_batt_replacement_option,(setter)BatterySystem_set_batt_replacement_option, - PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"batt_replacement_schedule_percent", (getter)BatterySystem_get_batt_replacement_schedule_percent,(setter)BatterySystem_set_batt_replacement_schedule_percent, - PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n*Options*: length <= analysis_period"), + PyDoc_STR("*sequence*: Percentage of battery capacity to replace in each year [%]\n\n**Options:**\nlength <= analysis_period"), NULL}, {"battery_per_kWh", (getter)BatterySystem_get_battery_per_kWh,(setter)BatterySystem_set_battery_per_kWh, - PyDoc_STR("*float*: Battery cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Battery cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_batt", (getter)BatterySystem_get_en_batt,(setter)BatterySystem_set_en_batt, - PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_standalone_batt", (getter)BatterySystem_get_en_standalone_batt,(setter)BatterySystem_set_en_standalone_batt, - PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable standalone battery storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4915,11 +4915,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4937,7 +4937,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5052,11 +5052,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5146,13 +5146,13 @@ SystemOutput_set_system_pre_curtailment_kwac(VarGroupObject *self, PyObject *val static PyGetSetDef SystemOutput_getset[] = { {"annual_energy_pre_curtailment_ac", (getter)SystemOutput_get_annual_energy_pre_curtailment_ac,(setter)SystemOutput_set_annual_energy_pre_curtailment_ac, - PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Annual Energy AC pre-curtailment (year 1) [kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: Net power to or from the grid [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Net power to or from the grid [kW]\n\n**Required:**\nTrue"), NULL}, {"gen_purchases", (getter)SystemOutput_get_gen_purchases,(setter)SystemOutput_set_gen_purchases, PyDoc_STR("*sequence*: Electricity from grid [kW]"), @@ -5161,10 +5161,10 @@ static PyGetSetDef SystemOutput_getset[] = { PyDoc_STR("*sequence*: Electricity to or from the renewable system, without the battery [kW]"), NULL}, {"system_capacity", (getter)SystemOutput_get_system_capacity,(setter)SystemOutput_set_system_capacity, - PyDoc_STR("*float*: System nameplate capacity [kW]\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), + PyDoc_STR("*float*: System nameplate capacity [kW]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``system_capacity``:\n\n\t - cp_battery_nameplate\n\t - cp_system_nameplate\n"), NULL}, {"system_pre_curtailment_kwac", (getter)SystemOutput_get_system_pre_curtailment_kwac,(setter)SystemOutput_set_system_pre_curtailment_kwac, - PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n*Info*: System generation"), + PyDoc_STR("*sequence*: System power before grid curtailment [kW]\n\n**Info:**\nSystem generation"), NULL}, {NULL} /* Sentinel */ }; @@ -5279,11 +5279,11 @@ UtilityBill_export(VarGroupObject *self, PyObject *args) static PyMethodDef UtilityBill_methods[] = { {"assign", (PyCFunction)UtilityBill_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UtilityBill_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UtilityBill_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UtilityBill_vals = { var: val, ...}``")}, {"export", (PyCFunction)UtilityBill_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5416,11 +5416,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5438,7 +5438,7 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5553,11 +5553,11 @@ FuelCell_export(VarGroupObject *self, PyObject *args) static PyMethodDef FuelCell_methods[] = { {"assign", (PyCFunction)FuelCell_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FuelCell_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FuelCell_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FuelCell_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FuelCell_vals = { var: val, ...}``")}, {"export", (PyCFunction)FuelCell_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5635,19 +5635,19 @@ FuelCell_set_fuelcell_replacement_schedule(VarGroupObject *self, PyObject *value static PyGetSetDef FuelCell_getset[] = { {"en_fuelcell", (getter)FuelCell_get_en_fuelcell,(setter)FuelCell_set_en_fuelcell, - PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable fuel cell storage model [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_computed_bank_capacity", (getter)FuelCell_get_fuelcell_computed_bank_capacity,(setter)FuelCell_set_fuelcell_computed_bank_capacity, - PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell capacity [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_per_kWh", (getter)FuelCell_get_fuelcell_per_kWh,(setter)FuelCell_set_fuelcell_per_kWh, - PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Fuel cell cost [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"fuelcell_replacement", (getter)FuelCell_get_fuelcell_replacement,(setter)FuelCell_set_fuelcell_replacement, PyDoc_STR("*sequence*: Fuel cell replacements per year [number/year]"), NULL}, {"fuelcell_replacement_option", (getter)FuelCell_get_fuelcell_replacement_option,(setter)FuelCell_set_fuelcell_replacement_option, - PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n*Constraints*: INTEGER,MIN=0,MAX=2"), + PyDoc_STR("*float*: Enable fuel cell replacement? [0=none,1=capacity based,2=user schedule]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2"), NULL}, {"fuelcell_replacement_schedule", (getter)FuelCell_get_fuelcell_replacement_schedule,(setter)FuelCell_set_fuelcell_replacement_schedule, PyDoc_STR("*sequence*: Fuel cell replacements per year (user specified) [number/year]"), @@ -5765,11 +5765,11 @@ CapacityPayments_export(VarGroupObject *self, PyObject *args) static PyMethodDef CapacityPayments_methods[] = { {"assign", (PyCFunction)CapacityPayments_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CapacityPayments_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CapacityPayments_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CapacityPayments_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CapacityPayments_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CapacityPayments_vals = { var: val, ...}``")}, {"export", (PyCFunction)CapacityPayments_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5847,22 +5847,22 @@ CapacityPayments_set_cp_system_nameplate(VarGroupObject *self, PyObject *value, static PyGetSetDef CapacityPayments_getset[] = { {"cp_battery_nameplate", (getter)CapacityPayments_get_cp_battery_nameplate,(setter)CapacityPayments_set_cp_battery_nameplate, - PyDoc_STR("*float*: Battery nameplate [MW]\n\n*Constraints*: MIN=0\n\n*Required*: True if cp_capacity_payment_type=0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - cp_system_nameplate\n\t - system_capacity\n"), + PyDoc_STR("*float*: Battery nameplate [MW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if cp_capacity_payment_type=0\n\nThe value of ``cp_battery_nameplate`` depends on the following variables:\n\n\t - cp_system_nameplate\n\t - system_capacity\n"), NULL}, {"cp_capacity_credit_percent", (getter)CapacityPayments_get_cp_capacity_credit_percent,(setter)CapacityPayments_set_cp_capacity_credit_percent, - PyDoc_STR("*sequence*: Capacity credit (eligible portion of nameplate) [%]\n\n*Required*: True if cp_capacity_payment_type=0"), + PyDoc_STR("*sequence*: Capacity credit (eligible portion of nameplate) [%]\n\n**Required:**\nRequired if cp_capacity_payment_type=0"), NULL}, {"cp_capacity_payment_amount", (getter)CapacityPayments_get_cp_capacity_payment_amount,(setter)CapacityPayments_set_cp_capacity_payment_amount, - PyDoc_STR("*sequence*: Capacity payment amount [$ or $/MW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Capacity payment amount [$ or $/MW]\n\n**Required:**\nTrue"), NULL}, {"cp_capacity_payment_esc", (getter)CapacityPayments_get_cp_capacity_payment_esc,(setter)CapacityPayments_set_cp_capacity_payment_esc, - PyDoc_STR("*float*: Capacity payment escalation [%/year]\n\n*Required*: True"), + PyDoc_STR("*float*: Capacity payment escalation [%/year]\n\n**Required:**\nTrue"), NULL}, {"cp_capacity_payment_type", (getter)CapacityPayments_get_cp_capacity_payment_type,(setter)CapacityPayments_set_cp_capacity_payment_type, - PyDoc_STR("*float*: Capacity payment type\n\n*Options*: 0=Energy basis,1=Fixed amount\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Capacity payment type\n\n**Options:**\n0=Energy basis,1=Fixed amount\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"cp_system_nameplate", (getter)CapacityPayments_get_cp_system_nameplate,(setter)CapacityPayments_set_cp_system_nameplate, - PyDoc_STR("*float*: System nameplate [MW]\n\n*Constraints*: MIN=0\n\n*Required*: True if cp_capacity_payment_type=0\n\n*Changes to this variable may require updating the values of the following*: \n\t - cp_battery_nameplate\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: System nameplate [MW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if cp_capacity_payment_type=0\n\nThe value of the following variables depends on ``cp_system_nameplate``:\n\n\t - cp_battery_nameplate\n\n\nThe value of ``cp_system_nameplate`` depends on the following variables:\n\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -5977,11 +5977,11 @@ GridLimits_export(VarGroupObject *self, PyObject *args) static PyMethodDef GridLimits_methods[] = { {"assign", (PyCFunction)GridLimits_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GridLimits_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GridLimits_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GridLimits_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GridLimits_vals = { var: val, ...}``")}, {"export", (PyCFunction)GridLimits_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6011,10 +6011,10 @@ GridLimits_set_grid_curtailment_price_esc(VarGroupObject *self, PyObject *value, static PyGetSetDef GridLimits_getset[] = { {"grid_curtailment_price", (getter)GridLimits_get_grid_curtailment_price,(setter)GridLimits_set_grid_curtailment_price, - PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Curtailment price [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"grid_curtailment_price_esc", (getter)GridLimits_get_grid_curtailment_price_esc,(setter)GridLimits_set_grid_curtailment_price_esc, - PyDoc_STR("*float*: Curtailment price escalation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Curtailment price escalation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6129,11 +6129,11 @@ LCOS_export(VarGroupObject *self, PyObject *args) static PyMethodDef LCOS_methods[] = { {"assign", (PyCFunction)LCOS_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LCOS_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LCOS_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LCOS_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LCOS_vals = { var: val, ...}``")}, {"export", (PyCFunction)LCOS_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6343,7 +6343,7 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Battery relative capacity to nameplate [%]"), NULL}, {"batt_salvage_percentage", (getter)LCOS_get_batt_salvage_percentage,(setter)LCOS_set_batt_salvage_percentage, - PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net pre-tax cash battery salvage value [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"battery_total_cost_lcos", (getter)LCOS_get_battery_total_cost_lcos,(setter)LCOS_set_battery_total_cost_lcos, PyDoc_STR("*float*: Battery total investment cost [$]"), @@ -6355,28 +6355,28 @@ static PyGetSetDef LCOS_getset[] = { PyDoc_STR("*sequence*: Electricity to grid from battery [kW]"), NULL}, {"monthly_batt_to_grid", (getter)LCOS_get_monthly_batt_to_grid,(setter)LCOS_set_monthly_batt_to_grid, - PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from battery [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_batt", (getter)LCOS_get_monthly_grid_to_batt,(setter)LCOS_set_monthly_grid_to_batt, - PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to battery from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_grid_to_load", (getter)LCOS_get_monthly_grid_to_load,(setter)LCOS_set_monthly_grid_to_load, - PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to load from grid [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"monthly_system_to_grid", (getter)LCOS_get_monthly_system_to_grid,(setter)LCOS_set_monthly_system_to_grid, - PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy to grid from system [kWh]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"true_up_credits_ym", (getter)LCOS_get_true_up_credits_ym,(setter)LCOS_set_true_up_credits_ym, PyDoc_STR("*sequence[sequence]*: Net annual true-up payments [$]"), NULL}, {"year1_monthly_ec_charge_gross_with_system", (getter)LCOS_get_year1_monthly_ec_charge_gross_with_system,(setter)LCOS_set_year1_monthly_ec_charge_gross_with_system, - PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Energy charge with system before credits [$/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {"year1_monthly_ec_charge_with_system", (getter)LCOS_get_year1_monthly_ec_charge_with_system,(setter)LCOS_set_year1_monthly_ec_charge_with_system, PyDoc_STR("*sequence*: Energy charge with system [$]"), NULL}, {"year1_monthly_electricity_to_grid", (getter)LCOS_get_year1_monthly_electricity_to_grid,(setter)LCOS_set_year1_monthly_electricity_to_grid, - PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n*Constraints*: LENGTH=12"), + PyDoc_STR("*sequence*: Electricity to/from grid [kWh/mo]\n\n**Constraints:**\nLENGTH=12"), NULL}, {NULL} /* Sentinel */ }; @@ -6491,11 +6491,11 @@ ChargesByMonth_export(VarGroupObject *self, PyObject *args) static PyMethodDef ChargesByMonth_methods[] = { {"assign", (PyCFunction)ChargesByMonth_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ChargesByMonth_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ChargesByMonth_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ChargesByMonth_vals = { var: val, ...}``")}, {"export", (PyCFunction)ChargesByMonth_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6643,11 +6643,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -11567,34 +11567,34 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: State ITC income [$]"), NULL}, {"lcoe_nom", (getter)Outputs_get_lcoe_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy nominal [cents/kWh]"), NULL}, {"lcoe_real", (getter)Outputs_get_lcoe_real,(setter)0, - PyDoc_STR("*float*: Levelized cost (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOE Levelized cost of energy real [cents/kWh]"), NULL}, {"lcoptc_fed_nom", (getter)Outputs_get_lcoptc_fed_nom,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC nominal [cents/kWh]"), NULL}, {"lcoptc_fed_real", (getter)Outputs_get_lcoptc_fed_real,(setter)0, - PyDoc_STR("*float*: Levelized federal PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized federal PTC real [cents/kWh]"), NULL}, {"lcoptc_sta_nom", (getter)Outputs_get_lcoptc_sta_nom,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (nominal) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC nominal [cents/kWh]"), NULL}, {"lcoptc_sta_real", (getter)Outputs_get_lcoptc_sta_real,(setter)0, - PyDoc_STR("*float*: Levelized state PTC (real) [cents/kWh]"), + PyDoc_STR("*float*: Levelized state PTC real [cents/kWh]"), NULL}, {"lcos_nom", (getter)Outputs_get_lcos_nom,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage nominal [cents/kWh]"), NULL}, {"lcos_real", (getter)Outputs_get_lcos_real,(setter)0, - PyDoc_STR("*float*: Levelized cost of storage (real) [cents/kWh]"), + PyDoc_STR("*float*: LCOS Levelized cost of storage real [cents/kWh]"), NULL}, {"lppa_nom", (getter)Outputs_get_lppa_nom,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (nominal) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price nominal [cents/kWh]"), NULL}, {"lppa_real", (getter)Outputs_get_lppa_real,(setter)0, - PyDoc_STR("*float*: Levelized PPA price (real) [cents/kWh]"), + PyDoc_STR("*float*: LPPA Levelized PPA price real [cents/kWh]"), NULL}, {"min_dscr", (getter)Outputs_get_min_dscr,(setter)0, PyDoc_STR("*float*: Minimum DSCR"), @@ -11621,10 +11621,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of annual stored energy (real) [kWh]"), NULL}, {"npv_energy_nom", (getter)Outputs_get_npv_energy_nom,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (nominal) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy nominal [kWh]"), NULL}, {"npv_energy_real", (getter)Outputs_get_npv_energy_real,(setter)0, - PyDoc_STR("*float*: Present value of annual energy (real) [kWh]"), + PyDoc_STR("*float*: Present value of annual energy real [kWh]"), NULL}, {"npv_fed_pbi_income", (getter)Outputs_get_npv_fed_pbi_income,(setter)0, PyDoc_STR("*float*: Present value of federal PBI income [$]"), @@ -11648,7 +11648,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of utility PBI income [$]"), NULL}, {"ppa", (getter)Outputs_get_ppa,(setter)0, - PyDoc_STR("*float*: PPA price (Year 1) [cents/kWh]"), + PyDoc_STR("*float*: PPA price in Year 1 [cents/kWh]"), NULL}, {"ppa_escalation", (getter)Outputs_get_ppa_escalation,(setter)0, PyDoc_STR("*float*: PPA price escalation [%/year]"), @@ -11672,10 +11672,10 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Present value of non-fuel O&M [$]"), NULL}, {"project_return_aftertax_irr", (getter)Outputs_get_project_return_aftertax_irr,(setter)0, - PyDoc_STR("*float*: Internal rate of return (after-tax) [%]"), + PyDoc_STR("*float*: IRR Internal rate of return [%]"), NULL}, {"project_return_aftertax_npv", (getter)Outputs_get_project_return_aftertax_npv,(setter)0, - PyDoc_STR("*float*: Net present value (after-tax) [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"prop_tax_assessed_value", (getter)Outputs_get_prop_tax_assessed_value,(setter)0, PyDoc_STR("*float*: Assessed value of property for tax purposes [$]"), @@ -11699,7 +11699,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Equity [$]"), NULL}, {"wacc", (getter)Outputs_get_wacc,(setter)0, - PyDoc_STR("*float*: Weighted average cost of capital (WACC) [$]"), + PyDoc_STR("*float*: WACC Weighted average cost of capital [$]"), NULL}, {NULL} /* Sentinel */ }; @@ -12090,12 +12090,11 @@ static PyMethodDef SingleownerModule_methods[] = { {"new", Singleowner_new, METH_VARARGS, PyDoc_STR("new() -> Singleowner")}, {"default", Singleowner_default, METH_VARARGS, - PyDoc_STR("default(config) -> Singleowner\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerSingleOwner\"\n- \"DSLFSingleOwner\"\n- \"ETESSingleOwner\"\n- \"EmpiricalTroughSingleOwner\"\n- \"FlatPlatePVSingleOwner\"\n- \"FuelCellSingleOwner\"\n- \"GenericBatterySingleOwner\"\n- \"GenericCSPSystemSingleOwner\"\n- \"GenericSystemSingleOwner\"\n- \"GeothermalPowerSingleOwner\"\n- \"HighXConcentratingPVSingleOwner\"\n- \"MSLFSingleOwner\"\n- \"MSPTSingleOwner\"\n- \"PVBatterySingleOwner\"\n- \"PVWattsSingleOwner\"\n- \"PhysicalTroughSingleOwner\"\n- \"StandaloneBatterySingleOwner\"\n- \"WindPowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Singleowner\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerSingleOwner\"*\n\n - *\"DSLFSingleOwner\"*\n\n - *\"ETESSingleOwner\"*\n\n - *\"EmpiricalTroughSingleOwner\"*\n\n - *\"FlatPlatePVSingleOwner\"*\n\n - *\"FuelCellSingleOwner\"*\n\n - *\"GenericBatterySingleOwner\"*\n\n - *\"GenericCSPSystemSingleOwner\"*\n\n - *\"GenericSystemSingleOwner\"*\n\n - *\"GeothermalPowerSingleOwner\"*\n\n - *\"HighXConcentratingPVSingleOwner\"*\n\n - *\"MSLFSingleOwner\"*\n\n - *\"MSPTSingleOwner\"*\n\n - *\"PVBatterySingleOwner\"*\n\n - *\"PVWattsSingleOwner\"*\n\n - *\"PhysicalTroughSingleOwner\"*\n\n - *\"StandaloneBatterySingleOwner\"*\n\n - *\"WindPowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Singleowner_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Singleowner\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Singleowner\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Singleowner_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Singleowner\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Singleowner\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/SixParsolve.c b/modules/SixParsolve.c index 9f0a11f7..c0fc7d2f 100644 --- a/modules/SixParsolve.c +++ b/modules/SixParsolve.c @@ -69,11 +69,11 @@ SixParameterSolver_export(VarGroupObject *self, PyObject *args) static PyMethodDef SixParameterSolver_methods[] = { {"assign", (PyCFunction)SixParameterSolver_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SixParameterSolver_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SixParameterSolver_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SixParameterSolver_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SixParameterSolver_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SixParameterSolver_vals = { var: val, ...}``")}, {"export", (PyCFunction)SixParameterSolver_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,34 +199,34 @@ SixParameterSolver_set_gamma_pmp(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SixParameterSolver_getset[] = { {"Imp", (getter)SixParameterSolver_get_Imp,(setter)SixParameterSolver_set_Imp, - PyDoc_STR("*float*: Maximum power point current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum power point current [A]\n\n**Required:**\nTrue"), NULL}, {"Isc", (getter)SixParameterSolver_get_Isc,(setter)SixParameterSolver_set_Isc, - PyDoc_STR("*float*: Short circuit current [A]\n\n*Required*: True"), + PyDoc_STR("*float*: Short circuit current [A]\n\n**Required:**\nTrue"), NULL}, {"Nser", (getter)SixParameterSolver_get_Nser,(setter)SixParameterSolver_set_Nser, - PyDoc_STR("*float*: Number of cells in series\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of cells in series\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"Tref", (getter)SixParameterSolver_get_Tref,(setter)SixParameterSolver_set_Tref, - PyDoc_STR("*float*: Reference cell temperature ['C]\n\n*Required*: False"), + PyDoc_STR("*float*: Reference cell temperature ['C]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"Vmp", (getter)SixParameterSolver_get_Vmp,(setter)SixParameterSolver_set_Vmp, - PyDoc_STR("*float*: Maximum power point voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum power point voltage [V]\n\n**Required:**\nTrue"), NULL}, {"Voc", (getter)SixParameterSolver_get_Voc,(setter)SixParameterSolver_set_Voc, - PyDoc_STR("*float*: Open circuit voltage [V]\n\n*Required*: True"), + PyDoc_STR("*float*: Open circuit voltage [V]\n\n**Required:**\nTrue"), NULL}, {"alpha_isc", (getter)SixParameterSolver_get_alpha_isc,(setter)SixParameterSolver_set_alpha_isc, - PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of current at SC [A/'C]\n\n**Required:**\nTrue"), NULL}, {"beta_voc", (getter)SixParameterSolver_get_beta_voc,(setter)SixParameterSolver_set_beta_voc, - PyDoc_STR("*float*: Temp coeff of voltage at OC [V/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of voltage at OC [V/'C]\n\n**Required:**\nTrue"), NULL}, {"celltype", (getter)SixParameterSolver_get_celltype,(setter)SixParameterSolver_set_celltype, - PyDoc_STR("*str*: Cell technology type [monoSi,multiSi/polySi,cis,cigs,cdte,amorphous]\n\n*Required*: True"), + PyDoc_STR("*str*: Cell technology type [monoSi,multiSi/polySi,cis,cigs,cdte,amorphous]\n\n**Required:**\nTrue"), NULL}, {"gamma_pmp", (getter)SixParameterSolver_get_gamma_pmp,(setter)SixParameterSolver_set_gamma_pmp, - PyDoc_STR("*float*: Temp coeff of power at MP [%/'C]\n\n*Required*: True"), + PyDoc_STR("*float*: Temp coeff of power at MP [%/'C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -729,17 +729,16 @@ static PyMethodDef SixParsolveModule_methods[] = { {"new", SixParsolve_new, METH_VARARGS, PyDoc_STR("new() -> SixParsolve")}, {"default", SixParsolve_default, METH_VARARGS, - PyDoc_STR("default(config) -> SixParsolve\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> SixParsolve\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", SixParsolve_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> SixParsolve\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> SixParsolve\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", SixParsolve_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> SixParsolve\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> SixParsolve\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; PyDoc_STRVAR(module_doc, - "SixParsolve"); + "Coefficient generator for six-parameter single diode module model"); static int diff --git a/modules/Snowmodel.c b/modules/Snowmodel.c index deb5696e..1efc9499 100644 --- a/modules/Snowmodel.c +++ b/modules/Snowmodel.c @@ -69,11 +69,11 @@ PVSnowModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef PVSnowModel_methods[] = { {"assign", (PyCFunction)PVSnowModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PVSnowModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PVSnowModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PVSnowModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PVSnowModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PVSnowModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)PVSnowModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -175,28 +175,28 @@ PVSnowModel_set_wspd(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef PVSnowModel_getset[] = { {"snowdepth", (getter)PVSnowModel_get_snowdepth,(setter)PVSnowModel_set_snowdepth, - PyDoc_STR("*sequence*: Snow Depth [cm]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Snow Depth [cm]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"subarray1_nmody", (getter)PVSnowModel_get_subarray1_nmody,(setter)PVSnowModel_set_subarray1_nmody, - PyDoc_STR("*float*: Number of Modules in a Row\n\n*Required*: True"), + PyDoc_STR("*float*: Number of Modules in a Row\n\n**Required:**\nTrue"), NULL}, {"subarray1_poa_shaded", (getter)PVSnowModel_get_subarray1_poa_shaded,(setter)PVSnowModel_set_subarray1_poa_shaded, - PyDoc_STR("*sequence*: Plane of Array Incidence [W/m^2]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Plane of Array Incidence [W/m^2]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"subarray1_surf_tilt", (getter)PVSnowModel_get_subarray1_surf_tilt,(setter)PVSnowModel_set_subarray1_surf_tilt, - PyDoc_STR("*sequence*: Surface Tilt [Degrees]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Surface Tilt [Degrees]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"subarray1_tilt", (getter)PVSnowModel_get_subarray1_tilt,(setter)PVSnowModel_set_subarray1_tilt, - PyDoc_STR("*float*: Base tilt [Degrees]\n\n*Required*: True"), + PyDoc_STR("*float*: Base tilt [Degrees]\n\n**Required:**\nTrue"), NULL}, {"subarray1_track_mode", (getter)PVSnowModel_get_subarray1_track_mode,(setter)PVSnowModel_set_subarray1_track_mode, - PyDoc_STR("*float*: Tracking Mode\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking Mode\n\n**Required:**\nTrue"), NULL}, {"tdry", (getter)PVSnowModel_get_tdry,(setter)PVSnowModel_set_tdry, - PyDoc_STR("*sequence*: Ambient Temperature [Degrees Celsius]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Ambient Temperature [Degrees Celsius]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"wspd", (getter)PVSnowModel_get_wspd,(setter)PVSnowModel_set_wspd, - PyDoc_STR("*sequence*: Wind Speed [m/s]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind Speed [m/s]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -311,11 +311,11 @@ TimeSeries_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSeries_methods[] = { {"assign", (PyCFunction)TimeSeries_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSeries_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSeries_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -345,10 +345,10 @@ TimeSeries_set_sunup(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TimeSeries_getset[] = { {"hourly_gen", (getter)TimeSeries_get_hourly_gen,(setter)TimeSeries_set_hourly_gen, - PyDoc_STR("*sequence*: Hourly Energy [kwh]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Hourly Energy [kwh]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"sunup", (getter)TimeSeries_get_sunup,(setter)TimeSeries_set_sunup, - PyDoc_STR("*sequence*: Sun up over horizon [0/1]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Sun up over horizon [0/1]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -463,11 +463,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -855,12 +855,11 @@ static PyMethodDef SnowmodelModule_methods[] = { {"new", Snowmodel_new, METH_VARARGS, PyDoc_STR("new() -> Snowmodel")}, {"default", Snowmodel_default, METH_VARARGS, - PyDoc_STR("default(config) -> Snowmodel\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Snowmodel\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Snowmodel_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Snowmodel\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Snowmodel\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Snowmodel_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Snowmodel\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Snowmodel\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Solarpilot.c b/modules/Solarpilot.c index 233e7ff5..62af2a7d 100644 --- a/modules/Solarpilot.c +++ b/modules/Solarpilot.c @@ -69,11 +69,11 @@ SolarPILOT_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarPILOT_methods[] = { {"assign", (PyCFunction)SolarPILOT_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarPILOT_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarPILOT_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarPILOT_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarPILOT_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarPILOT_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarPILOT_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -739,169 +739,169 @@ SolarPILOT_set_tower_fixed_cost(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef SolarPILOT_getset[] = { {"c_atm_0", (getter)SolarPILOT_get_c_atm_0,(setter)SolarPILOT_set_c_atm_0, - PyDoc_STR("*float*: Attenuation coefficient 0\n\n*Required*: If not provided, assumed to be 0.006789"), + PyDoc_STR("*float*: Attenuation coefficient 0\n\n**Required:**\nFalse. Automatically set to 0.006789 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_1", (getter)SolarPILOT_get_c_atm_1,(setter)SolarPILOT_set_c_atm_1, - PyDoc_STR("*float*: Attenuation coefficient 1\n\n*Required*: If not provided, assumed to be 0.1046"), + PyDoc_STR("*float*: Attenuation coefficient 1\n\n**Required:**\nFalse. Automatically set to 0.1046 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_2", (getter)SolarPILOT_get_c_atm_2,(setter)SolarPILOT_set_c_atm_2, - PyDoc_STR("*float*: Attenuation coefficient 2\n\n*Required*: If not provided, assumed to be -0.0107"), + PyDoc_STR("*float*: Attenuation coefficient 2\n\n**Required:**\nFalse. Automatically set to -0.0107 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_3", (getter)SolarPILOT_get_c_atm_3,(setter)SolarPILOT_set_c_atm_3, - PyDoc_STR("*float*: Attenuation coefficient 3\n\n*Required*: If not provided, assumed to be 0.002845"), + PyDoc_STR("*float*: Attenuation coefficient 3\n\n**Required:**\nFalse. Automatically set to 0.002845 if not assigned explicitly or loaded from defaults."), NULL}, {"calc_fluxmaps", (getter)SolarPILOT_get_calc_fluxmaps,(setter)SolarPILOT_set_calc_fluxmaps, - PyDoc_STR("*float*: Include fluxmap calculations\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Include fluxmap calculations\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cant_type", (getter)SolarPILOT_get_cant_type,(setter)SolarPILOT_set_cant_type, - PyDoc_STR("*float*: Heliostat cant method\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat cant method\n\n**Required:**\nTrue"), NULL}, {"cav_rec_height", (getter)SolarPILOT_get_cav_rec_height,(setter)SolarPILOT_set_cav_rec_height, - PyDoc_STR("*float*: Cavity receiver height [m]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver height [m]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_span", (getter)SolarPILOT_get_cav_rec_span,(setter)SolarPILOT_set_cav_rec_span, - PyDoc_STR("*float*: Cavity receiver span angle [deg]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver span angle [deg]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_width", (getter)SolarPILOT_get_cav_rec_width,(setter)SolarPILOT_set_cav_rec_width, - PyDoc_STR("*float*: Cavity receiver width [m]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver width [m]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"check_max_flux", (getter)SolarPILOT_get_check_max_flux,(setter)SolarPILOT_set_check_max_flux, - PyDoc_STR("*float*: Check max flux at design point\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Check max flux at design point\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"contingency_rate", (getter)SolarPILOT_get_contingency_rate,(setter)SolarPILOT_set_contingency_rate, - PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n**Required:**\nTrue"), NULL}, {"cost_sf_fixed", (getter)SolarPILOT_get_cost_sf_fixed,(setter)SolarPILOT_set_cost_sf_fixed, - PyDoc_STR("*float*: Soalr field fixed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Soalr field fixed cost [$]\n\n**Required:**\nTrue"), NULL}, {"delta_flux_hrs", (getter)SolarPILOT_get_delta_flux_hrs,(setter)SolarPILOT_set_delta_flux_hrs, - PyDoc_STR("*float*: Hourly frequency in flux map lookup\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Hourly frequency in flux map lookup\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dens_mirror", (getter)SolarPILOT_get_dens_mirror,(setter)SolarPILOT_set_dens_mirror, - PyDoc_STR("*float*: Ratio of reflective area to profile [frac]\n\n*Required*: True"), + PyDoc_STR("*float*: Ratio of reflective area to profile [frac]\n\n**Required:**\nTrue"), NULL}, {"dni_des", (getter)SolarPILOT_get_dni_des,(setter)SolarPILOT_set_dni_des, - PyDoc_STR("*float*: Design-point DNI [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point DNI [W/m2]\n\n**Required:**\nTrue"), NULL}, {"flux_max", (getter)SolarPILOT_get_flux_max,(setter)SolarPILOT_set_flux_max, - PyDoc_STR("*float*: Maximum allowable flux\n\n*Required*: If not provided, assumed to be 1000"), + PyDoc_STR("*float*: Maximum allowable flux\n\n**Required:**\nFalse. Automatically set to 1000 if not assigned explicitly or loaded from defaults."), NULL}, {"focus_type", (getter)SolarPILOT_get_focus_type,(setter)SolarPILOT_set_focus_type, - PyDoc_STR("*float*: Heliostat focus method\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat focus method\n\n**Required:**\nTrue"), NULL}, {"h_tower", (getter)SolarPILOT_get_h_tower,(setter)SolarPILOT_set_h_tower, - PyDoc_STR("*float*: Tower height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower height [m]\n\n**Required:**\nTrue"), NULL}, {"helio_active_fraction", (getter)SolarPILOT_get_helio_active_fraction,(setter)SolarPILOT_set_helio_active_fraction, - PyDoc_STR("*float*: Active fraction of reflective area [frac]\n\n*Required*: True"), + PyDoc_STR("*float*: Active fraction of reflective area [frac]\n\n**Required:**\nTrue"), NULL}, {"helio_height", (getter)SolarPILOT_get_helio_height,(setter)SolarPILOT_set_helio_height, - PyDoc_STR("*float*: Heliostat height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat height [m]\n\n**Required:**\nTrue"), NULL}, {"helio_optical_error", (getter)SolarPILOT_get_helio_optical_error,(setter)SolarPILOT_set_helio_optical_error, - PyDoc_STR("*float*: Optical error [rad]\n\n*Required*: True"), + PyDoc_STR("*float*: Optical error [rad]\n\n**Required:**\nTrue"), NULL}, {"helio_positions_in", (getter)SolarPILOT_get_helio_positions_in,(setter)SolarPILOT_set_helio_positions_in, PyDoc_STR("*sequence[sequence]*: Heliostat position table"), NULL}, {"helio_reflectance", (getter)SolarPILOT_get_helio_reflectance,(setter)SolarPILOT_set_helio_reflectance, - PyDoc_STR("*float*: Mirror reflectance [frac]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror reflectance [frac]\n\n**Required:**\nTrue"), NULL}, {"helio_width", (getter)SolarPILOT_get_helio_width,(setter)SolarPILOT_set_helio_width, - PyDoc_STR("*float*: Heliostat width [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat width [m]\n\n**Required:**\nTrue"), NULL}, {"heliostat_spec_cost", (getter)SolarPILOT_get_heliostat_spec_cost,(setter)SolarPILOT_set_heliostat_spec_cost, - PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"is_optimize", (getter)SolarPILOT_get_is_optimize,(setter)SolarPILOT_set_is_optimize, - PyDoc_STR("*float*: Do SolarPILOT optimization\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Do SolarPILOT optimization\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"land_max", (getter)SolarPILOT_get_land_max,(setter)SolarPILOT_set_land_max, - PyDoc_STR("*float*: Max heliostat-dist-to-tower-height ratio\n\n*Required*: True"), + PyDoc_STR("*float*: Max heliostat-dist-to-tower-height ratio\n\n**Required:**\nTrue"), NULL}, {"land_min", (getter)SolarPILOT_get_land_min,(setter)SolarPILOT_set_land_min, - PyDoc_STR("*float*: Min heliostat-dist-to-tower-height ratio\n\n*Required*: True"), + PyDoc_STR("*float*: Min heliostat-dist-to-tower-height ratio\n\n**Required:**\nTrue"), NULL}, {"land_spec_cost", (getter)SolarPILOT_get_land_spec_cost,(setter)SolarPILOT_set_land_spec_cost, - PyDoc_STR("*float*: Total land area cost [$/acre]\n\n*Required*: True"), + PyDoc_STR("*float*: Total land area cost [$/acre]\n\n**Required:**\nTrue"), NULL}, {"n_cav_rec_panels", (getter)SolarPILOT_get_n_cav_rec_panels,(setter)SolarPILOT_set_n_cav_rec_panels, - PyDoc_STR("*float*: Cavity receiver number of panels\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver number of panels\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"n_facet_x", (getter)SolarPILOT_get_n_facet_x,(setter)SolarPILOT_set_n_facet_x, - PyDoc_STR("*float*: Number of heliostat facets - X\n\n*Required*: True"), + PyDoc_STR("*float*: Number of heliostat facets - X\n\n**Required:**\nTrue"), NULL}, {"n_facet_y", (getter)SolarPILOT_get_n_facet_y,(setter)SolarPILOT_set_n_facet_y, - PyDoc_STR("*float*: Number of heliostat facets - Y\n\n*Required*: True"), + PyDoc_STR("*float*: Number of heliostat facets - Y\n\n**Required:**\nTrue"), NULL}, {"n_flux_days", (getter)SolarPILOT_get_n_flux_days,(setter)SolarPILOT_set_n_flux_days, - PyDoc_STR("*float*: No. days in flux map lookup\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: No. days in flux map lookup\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"n_flux_x", (getter)SolarPILOT_get_n_flux_x,(setter)SolarPILOT_set_n_flux_x, - PyDoc_STR("*float*: Flux map X resolution\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Flux map X resolution\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"n_flux_y", (getter)SolarPILOT_get_n_flux_y,(setter)SolarPILOT_set_n_flux_y, - PyDoc_STR("*float*: Flux map Y resolution\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Flux map Y resolution\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_algorithm", (getter)SolarPILOT_get_opt_algorithm,(setter)SolarPILOT_set_opt_algorithm, - PyDoc_STR("*float*: Optimization algorithm\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Optimization algorithm\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_conv_tol", (getter)SolarPILOT_get_opt_conv_tol,(setter)SolarPILOT_set_opt_conv_tol, - PyDoc_STR("*float*: Optimization convergence tol\n\n*Required*: If not provided, assumed to be 0.001"), + PyDoc_STR("*float*: Optimization convergence tol\n\n**Required:**\nFalse. Automatically set to 0.001 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_flux_penalty", (getter)SolarPILOT_get_opt_flux_penalty,(setter)SolarPILOT_set_opt_flux_penalty, - PyDoc_STR("*float*: Optimization flux overage penalty\n\n*Required*: True"), + PyDoc_STR("*float*: Optimization flux overage penalty\n\n**Required:**\nTrue"), NULL}, {"opt_init_step", (getter)SolarPILOT_get_opt_init_step,(setter)SolarPILOT_set_opt_init_step, - PyDoc_STR("*float*: Optimization initial step size\n\n*Required*: If not provided, assumed to be 0.05"), + PyDoc_STR("*float*: Optimization initial step size\n\n**Required:**\nFalse. Automatically set to 0.05 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_max_iter", (getter)SolarPILOT_get_opt_max_iter,(setter)SolarPILOT_set_opt_max_iter, - PyDoc_STR("*float*: Max. number iteration steps\n\n*Required*: If not provided, assumed to be 200"), + PyDoc_STR("*float*: Max. number iteration steps\n\n**Required:**\nFalse. Automatically set to 200 if not assigned explicitly or loaded from defaults."), NULL}, {"q_design", (getter)SolarPILOT_get_q_design,(setter)SolarPILOT_set_q_design, - PyDoc_STR("*float*: Receiver thermal design power [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver thermal design power [MW]\n\n**Required:**\nTrue"), NULL}, {"rec_absorptance", (getter)SolarPILOT_get_rec_absorptance,(setter)SolarPILOT_set_rec_absorptance, - PyDoc_STR("*float*: Absorptance [frac]\n\n*Required*: True"), + PyDoc_STR("*float*: Absorptance [frac]\n\n**Required:**\nTrue"), NULL}, {"rec_aspect", (getter)SolarPILOT_get_rec_aspect,(setter)SolarPILOT_set_rec_aspect, - PyDoc_STR("*float*: External receiver aspect ratio (H/W) [frac]\n\n*Required*: True if receiver_type=0"), + PyDoc_STR("*float*: External receiver aspect ratio (H/W) [frac]\n\n**Required:**\nRequired if receiver_type=0"), NULL}, {"rec_cost_exp", (getter)SolarPILOT_get_rec_cost_exp,(setter)SolarPILOT_set_rec_cost_exp, - PyDoc_STR("*float*: Receiver cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"rec_height", (getter)SolarPILOT_get_rec_height,(setter)SolarPILOT_set_rec_height, - PyDoc_STR("*float*: External receiver height [m]\n\n*Required*: True if receiver_type=0"), + PyDoc_STR("*float*: External receiver height [m]\n\n**Required:**\nRequired if receiver_type=0"), NULL}, {"rec_hl_perm2", (getter)SolarPILOT_get_rec_hl_perm2,(setter)SolarPILOT_set_rec_hl_perm2, - PyDoc_STR("*float*: Receiver design heat loss [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver design heat loss [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"rec_ref_area", (getter)SolarPILOT_get_rec_ref_area,(setter)SolarPILOT_set_rec_ref_area, - PyDoc_STR("*float*: Receiver reference area for cost scale\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference area for cost scale\n\n**Required:**\nTrue"), NULL}, {"rec_ref_cost", (getter)SolarPILOT_get_rec_ref_cost,(setter)SolarPILOT_set_rec_ref_cost, - PyDoc_STR("*float*: Receiver reference cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference cost [$]\n\n**Required:**\nTrue"), NULL}, {"receiver_type", (getter)SolarPILOT_get_receiver_type,(setter)SolarPILOT_set_receiver_type, - PyDoc_STR("*float*: 0: external (default), 1; cavity\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: external (default), 1; cavity\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"sales_tax_frac", (getter)SolarPILOT_get_sales_tax_frac,(setter)SolarPILOT_set_sales_tax_frac, - PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_rate", (getter)SolarPILOT_get_sales_tax_rate,(setter)SolarPILOT_set_sales_tax_rate, - PyDoc_STR("*float*: Sales tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Sales tax rate [%]\n\n**Required:**\nTrue"), NULL}, {"site_spec_cost", (getter)SolarPILOT_get_site_spec_cost,(setter)SolarPILOT_set_site_spec_cost, - PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"solar_resource_file", (getter)SolarPILOT_get_solar_resource_file,(setter)SolarPILOT_set_solar_resource_file, - PyDoc_STR("*str*: Solar weather data file\n\n*Constraints*: LOCAL_FILE\n\n*Required*: False"), + PyDoc_STR("*str*: Solar weather data file\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"tower_exp", (getter)SolarPILOT_get_tower_exp,(setter)SolarPILOT_set_tower_exp, - PyDoc_STR("*float*: Tower cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Tower cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"tower_fixed_cost", (getter)SolarPILOT_get_tower_fixed_cost,(setter)SolarPILOT_set_tower_fixed_cost, - PyDoc_STR("*float*: Tower fixed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower fixed cost [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1016,11 +1016,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1503,12 +1503,11 @@ static PyMethodDef SolarpilotModule_methods[] = { {"new", Solarpilot_new, METH_VARARGS, PyDoc_STR("new() -> Solarpilot")}, {"default", Solarpilot_default, METH_VARARGS, - PyDoc_STR("default(config) -> Solarpilot\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Solarpilot\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Solarpilot_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Solarpilot\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Solarpilot\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Solarpilot_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Solarpilot\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Solarpilot\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Swh.c b/modules/Swh.c index 64e2418a..118d96a0 100644 --- a/modules/Swh.c +++ b/modules/Swh.c @@ -69,11 +69,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ SolarResource_set_solar_resource_file(VarGroupObject *self, PyObject *value, voi static PyGetSetDef SolarResource_getset[] = { {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather data\n\n*Info*: dn,df,tdry,wspd,lat,lon,tz\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather data\n\n**Info:**\ndn,df,tdry,wspd,lat,lon,tz\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: False"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ SWH_export(VarGroupObject *self, PyObject *args) static PyMethodDef SWH_methods[] = { {"assign", (PyCFunction)SWH_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SWH_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SWH_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SWH_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SWH_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SWH_vals = { var: val, ...}``")}, {"export", (PyCFunction)SWH_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -699,121 +699,121 @@ SWH_set_use_custom_set(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SWH_getset[] = { {"FRUL", (getter)SWH_get_FRUL,(setter)SWH_set_FRUL, - PyDoc_STR("*float*: FRUL\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: FRUL\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``FRUL``:\n\n\t - system_capacity\n"), NULL}, {"FRta", (getter)SWH_get_FRta,(setter)SWH_set_FRta, - PyDoc_STR("*float*: FRta\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: FRta\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``FRta``:\n\n\t - system_capacity\n"), NULL}, {"T_room", (getter)SWH_get_T_room,(setter)SWH_set_T_room, - PyDoc_STR("*float*: Temperature around solar tank [C]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Temperature around solar tank [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"T_set", (getter)SWH_get_T_set,(setter)SWH_set_T_set, - PyDoc_STR("*float*: Set temperature [C]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Set temperature [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"T_tank_max", (getter)SWH_get_T_tank_max,(setter)SWH_set_T_tank_max, - PyDoc_STR("*float*: Max temperature in solar tank [C]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Max temperature in solar tank [C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"U_tank", (getter)SWH_get_U_tank,(setter)SWH_set_U_tank, - PyDoc_STR("*float*: Solar tank heat loss coefficient [W/m2K]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Solar tank heat loss coefficient [W/m2K]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"V_tank", (getter)SWH_get_V_tank,(setter)SWH_set_V_tank, - PyDoc_STR("*float*: Solar tank volume [m3]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Solar tank volume [m3]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"albedo", (getter)SWH_get_albedo,(setter)SWH_set_albedo, - PyDoc_STR("*float*: Ground reflectance factor [0..1]\n\n*Constraints*: FACTOR\n\n*Required*: True"), + PyDoc_STR("*float*: Ground reflectance factor [0..1]\n\n**Constraints:**\nFACTOR\n\n**Required:**\nTrue"), NULL}, {"area_coll", (getter)SWH_get_area_coll,(setter)SWH_set_area_coll, - PyDoc_STR("*float*: Single collector area [m2]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Single collector area [m2]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``area_coll``:\n\n\t - system_capacity\n"), NULL}, {"azimuth", (getter)SWH_get_azimuth,(setter)SWH_set_azimuth, - PyDoc_STR("*float*: Collector azimuth [deg]\n\n*Options*: 90=E,180=S\n\n*Constraints*: MIN=0,MAX=360\n\n*Required*: True"), + PyDoc_STR("*float*: Collector azimuth [deg]\n\n**Options:**\n90=E,180=S\n\n**Constraints:**\nMIN=0,MAX=360\n\n**Required:**\nTrue"), NULL}, {"custom_mains", (getter)SWH_get_custom_mains,(setter)SWH_set_custom_mains, - PyDoc_STR("*sequence*: Custom mains [C]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom mains [C]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"custom_set", (getter)SWH_get_custom_set,(setter)SWH_set_custom_set, - PyDoc_STR("*sequence*: Custom set points [C]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom set points [C]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"fluid", (getter)SWH_get_fluid,(setter)SWH_set_fluid, - PyDoc_STR("*float*: Working fluid in system\n\n*Info*: Water,Glycol\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Working fluid in system\n\n**Info:**\nWater,Glycol\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"hx_eff", (getter)SWH_get_hx_eff,(setter)SWH_set_hx_eff, - PyDoc_STR("*float*: Heat exchanger effectiveness [0..1]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Heat exchanger effectiveness [0..1]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"iam", (getter)SWH_get_iam,(setter)SWH_set_iam, - PyDoc_STR("*float*: Incidence angle modifier\n\n*Required*: True"), + PyDoc_STR("*float*: Incidence angle modifier\n\n**Required:**\nTrue"), NULL}, {"irrad_mode", (getter)SWH_get_irrad_mode,(setter)SWH_set_irrad_mode, - PyDoc_STR("*float*: Irradiance input mode [0/1/2]\n\n*Info*: Beam+Diff,Global+Beam,Global+Diff\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Irradiance input mode [0/1/2]\n\n**Info:**\nBeam+Diff,Global+Beam,Global+Diff\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"load", (getter)SWH_get_load,(setter)SWH_set_load, PyDoc_STR("*sequence*: Electricity load (year 1) [kW]"), NULL}, {"load_escalation", (getter)SWH_get_load_escalation,(setter)SWH_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mdot", (getter)SWH_get_mdot,(setter)SWH_set_mdot, - PyDoc_STR("*float*: Total system mass flow rate [kg/s]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Total system mass flow rate [kg/s]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"ncoll", (getter)SWH_get_ncoll,(setter)SWH_set_ncoll, - PyDoc_STR("*float*: Number of collectors\n\n*Constraints*: POSITIVE,INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n"), + PyDoc_STR("*float*: Number of collectors\n\n**Constraints:**\nPOSITIVE,INTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ncoll``:\n\n\t - system_capacity\n"), NULL}, {"pipe_diam", (getter)SWH_get_pipe_diam,(setter)SWH_set_pipe_diam, - PyDoc_STR("*float*: Pipe diameter [m]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Pipe diameter [m]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"pipe_insul", (getter)SWH_get_pipe_insul,(setter)SWH_set_pipe_insul, - PyDoc_STR("*float*: Pipe insulation thickness [m]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Pipe insulation thickness [m]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"pipe_k", (getter)SWH_get_pipe_k,(setter)SWH_set_pipe_k, - PyDoc_STR("*float*: Pipe insulation conductivity [W/m-C]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Pipe insulation conductivity [W/m-C]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"pipe_length", (getter)SWH_get_pipe_length,(setter)SWH_set_pipe_length, - PyDoc_STR("*float*: Length of piping in system [m]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Length of piping in system [m]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"pump_eff", (getter)SWH_get_pump_eff,(setter)SWH_set_pump_eff, - PyDoc_STR("*float*: Pumping efficiency [%]\n\n*Constraints*: PERCENT\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping efficiency [%]\n\n**Constraints:**\nPERCENT\n\n**Required:**\nTrue"), NULL}, {"pump_power", (getter)SWH_get_pump_power,(setter)SWH_set_pump_power, - PyDoc_STR("*float*: Pump power [W]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Pump power [W]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"scaled_draw", (getter)SWH_get_scaled_draw,(setter)SWH_set_scaled_draw, - PyDoc_STR("*sequence*: Hot water draw [kg/hr]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Hot water draw [kg/hr]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"shading_azal", (getter)SWH_get_shading_azal,(setter)SWH_set_shading_azal, - PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Azimuth x altitude beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_diff", (getter)SWH_get_shading_diff,(setter)SWH_set_shading_diff, - PyDoc_STR("*float*: Diffuse shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*float*: Diffuse shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_mxh", (getter)SWH_get_shading_mxh,(setter)SWH_set_shading_mxh, - PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Month x Hour beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"shading_timestep", (getter)SWH_get_shading_timestep,(setter)SWH_set_shading_timestep, - PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Time step beam shading loss [%]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"sky_model", (getter)SWH_get_sky_model,(setter)SWH_set_sky_model, - PyDoc_STR("*float*: Tilted surface irradiance model [0/1/2]\n\n*Info*: Isotropic,HDKR,Perez\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Tilted surface irradiance model [0/1/2]\n\n**Info:**\nIsotropic,HDKR,Perez\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"system_capacity", (getter)SWH_get_system_capacity,(setter)SWH_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - FRUL\n\t - FRta\n\t - area_coll\n\t - ncoll\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - FRUL\n\t - FRta\n\t - area_coll\n\t - ncoll\n"), NULL}, {"tank_h2d_ratio", (getter)SWH_get_tank_h2d_ratio,(setter)SWH_set_tank_h2d_ratio, - PyDoc_STR("*float*: Solar tank height to diameter ratio\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Solar tank height to diameter ratio\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"test_flow", (getter)SWH_get_test_flow,(setter)SWH_set_test_flow, - PyDoc_STR("*float*: Flow rate used in collector test [kg/s]\n\n*Constraints*: POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Flow rate used in collector test [kg/s]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue"), NULL}, {"test_fluid", (getter)SWH_get_test_fluid,(setter)SWH_set_test_fluid, - PyDoc_STR("*float*: Fluid used in collector test\n\n*Info*: Water,Glycol\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Fluid used in collector test\n\n**Info:**\nWater,Glycol\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SWH_get_tilt,(setter)SWH_set_tilt, - PyDoc_STR("*float*: Collector tilt [deg]\n\n*Constraints*: MIN=0,MAX=90\n\n*Required*: True"), + PyDoc_STR("*float*: Collector tilt [deg]\n\n**Constraints:**\nMIN=0,MAX=90\n\n**Required:**\nTrue"), NULL}, {"use_custom_mains", (getter)SWH_get_use_custom_mains,(setter)SWH_set_use_custom_mains, - PyDoc_STR("*float*: Use custom mains [%]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom mains [%]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"use_custom_set", (getter)SWH_get_use_custom_set,(setter)SWH_set_use_custom_set, - PyDoc_STR("*float*: Use custom set points [%]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom set points [%]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -928,11 +928,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1605,12 +1605,11 @@ static PyMethodDef SwhModule_methods[] = { {"new", Swh_new, METH_VARARGS, PyDoc_STR("new() -> Swh")}, {"default", Swh_default, METH_VARARGS, - PyDoc_STR("default(config) -> Swh\n\nUse default attributes\n" - "`config` options:\n\n- \"SolarWaterHeatingCommercial\"\n- \"SolarWaterHeatingLCOECalculator\"\n- \"SolarWaterHeatingNone\"\n- \"SolarWaterHeatingResidential\"")}, + PyDoc_STR("default(config) -> Swh\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"SolarWaterHeatingCommercial\"*\n\n - *\"SolarWaterHeatingLCOECalculator\"*\n\n - *\"SolarWaterHeatingNone\"*\n\n - *\"SolarWaterHeatingResidential\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Swh_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Swh\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Swh\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Swh_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Swh\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Swh\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcsMSLF.c b/modules/TcsMSLF.c index 74ba977c..2d9af733 100644 --- a/modules/TcsMSLF.c +++ b/modules/TcsMSLF.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Mslf_export(VarGroupObject *self, PyObject *args) static PyMethodDef Mslf_methods[] = { {"assign", (PyCFunction)Mslf_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Mslf_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Mslf_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Mslf_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Mslf_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Mslf_vals = { var: val, ...}``")}, {"export", (PyCFunction)Mslf_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ Mslf_set_system_capacity(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Mslf_getset[] = { {"system_capacity", (getter)Mslf_get_system_capacity,(setter)Mslf_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - P_ref\n"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -422,10 +422,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -540,11 +540,11 @@ Controller_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controller_methods[] = { {"assign", (PyCFunction)Controller_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controller_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controller_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controller_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controller_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2266,433 +2266,433 @@ Controller_set_vol_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Controller_getset[] = { {"A_aperture", (getter)Controller_get_A_aperture,(setter)Controller_set_A_aperture, - PyDoc_STR("*float*: Reflective aperture area of the collector [m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Reflective aperture area of the collector [m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``A_aperture``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"AbsorberMaterial", (getter)Controller_get_AbsorberMaterial,(setter)Controller_set_AbsorberMaterial, - PyDoc_STR("*sequence*: Absorber material type\n\n*Required*: True"), + PyDoc_STR("*sequence*: Absorber material type\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)Controller_get_AnnulusGas,(setter)Controller_set_AnnulusGas, - PyDoc_STR("*sequence*: Annulus gas type (1=air; 26=Ar; 27=H2)\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annulus gas type (1=air; 26=Ar; 27=H2)\n\n**Required:**\nTrue"), NULL}, {"ColAz", (getter)Controller_get_ColAz,(setter)Controller_set_ColAz, - PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n**Required:**\nTrue"), NULL}, {"DP_SGS", (getter)Controller_get_DP_SGS,(setter)Controller_set_DP_SGS, - PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n**Required:**\nTrue"), NULL}, {"DP_coefs", (getter)Controller_get_DP_coefs,(setter)Controller_set_DP_coefs, - PyDoc_STR("*sequence*: Pressure drop mass flow based part-load curve\n\n*Required*: True"), + PyDoc_STR("*sequence*: Pressure drop mass flow based part-load curve\n\n**Required:**\nTrue"), NULL}, {"DP_nominal", (getter)Controller_get_DP_nominal,(setter)Controller_set_DP_nominal, - PyDoc_STR("*float*: Pressure drop across a single collector assembly at design [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop across a single collector assembly at design [bar]\n\n**Required:**\nTrue"), NULL}, {"D_abs_in", (getter)Controller_get_D_abs_in,(setter)Controller_set_D_abs_in, - PyDoc_STR("*sequence*: The inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_abs_out", (getter)Controller_get_D_abs_out,(setter)Controller_set_D_abs_out, - PyDoc_STR("*sequence*: The outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_glass_in", (getter)Controller_get_D_glass_in,(setter)Controller_set_D_glass_in, - PyDoc_STR("*sequence*: The inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_glass_out", (getter)Controller_get_D_glass_out,(setter)Controller_set_D_glass_out, - PyDoc_STR("*sequence*: The outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_plug", (getter)Controller_get_D_plug,(setter)Controller_set_D_plug, - PyDoc_STR("*sequence*: The diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)Controller_get_Design_loss,(setter)Controller_set_Design_loss, - PyDoc_STR("*sequence*: Receiver heat loss at design [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Receiver heat loss at design [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_mirror", (getter)Controller_get_Dirt_mirror,(setter)Controller_set_Dirt_mirror, - PyDoc_STR("*float*: User-defined dirt on mirror derate\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: User-defined dirt on mirror derate\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Dirt_mirror``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"Error", (getter)Controller_get_Error,(setter)Controller_set_Error, - PyDoc_STR("*float*: User-defined general optical error derate\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: User-defined general optical error derate\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Error``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"FieldConfig", (getter)Controller_get_FieldConfig,(setter)Controller_set_FieldConfig, - PyDoc_STR("*float*: Number of subfield headers\n\n*Required*: True"), + PyDoc_STR("*float*: Number of subfield headers\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)Controller_get_Flow_type,(setter)Controller_set_Flow_type, - PyDoc_STR("*sequence*: The flow type through the absorber\n\n*Required*: True"), + PyDoc_STR("*sequence*: The flow type through the absorber\n\n**Required:**\nTrue"), NULL}, {"Fluid", (getter)Controller_get_Fluid,(setter)Controller_set_Fluid, - PyDoc_STR("*float*: Field HTF fluid number\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - field_fluid\n\t - is_hx\n"), + PyDoc_STR("*float*: Field HTF fluid number\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Fluid``:\n\n\t - field_fluid\n\t - is_hx\n"), NULL}, {"GeomEffects", (getter)Controller_get_GeomEffects,(setter)Controller_set_GeomEffects, - PyDoc_STR("*float*: Geometry effects derate\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Geometry effects derate\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``GeomEffects``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"GlazingIntactIn", (getter)Controller_get_GlazingIntactIn,(setter)Controller_set_GlazingIntactIn, - PyDoc_STR("*sequence*: The glazing intact flag\n\n*Required*: True"), + PyDoc_STR("*sequence*: The glazing intact flag\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)Controller_get_HCE_FieldFrac,(setter)Controller_set_HCE_FieldFrac, - PyDoc_STR("*sequence*: The fraction of the field occupied by this HCE type\n\n*Required*: True"), + PyDoc_STR("*sequence*: The fraction of the field occupied by this HCE type\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)Controller_get_HDR_rough,(setter)Controller_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"HL_T_coefs", (getter)Controller_get_HL_T_coefs,(setter)Controller_set_HL_T_coefs, - PyDoc_STR("*sequence*: HTF temperature-dependent heat loss coefficients [W/m-K]\n\n*Required*: True"), + PyDoc_STR("*sequence*: HTF temperature-dependent heat loss coefficients [W/m-K]\n\n**Required:**\nTrue"), NULL}, {"HL_w_coefs", (getter)Controller_get_HL_w_coefs,(setter)Controller_set_HL_w_coefs, - PyDoc_STR("*sequence*: Wind-speed-dependent heat loss coefficients [W/m-(m/s)]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind-speed-dependent heat loss coefficients [W/m-(m/s)]\n\n**Required:**\nTrue"), NULL}, {"IAM_L_coefs", (getter)Controller_get_IAM_L_coefs,(setter)Controller_set_IAM_L_coefs, - PyDoc_STR("*sequence*: Incidence angle modifier coefficients - longitudinal plane\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incidence angle modifier coefficients - longitudinal plane\n\n**Required:**\nTrue"), NULL}, {"IAM_T_coefs", (getter)Controller_get_IAM_T_coefs,(setter)Controller_set_IAM_T_coefs, - PyDoc_STR("*sequence*: Incidence angle modifier coefficients - transversal plane\n\n*Required*: True"), + PyDoc_STR("*sequence*: Incidence angle modifier coefficients - transversal plane\n\n**Required:**\nTrue"), NULL}, {"I_b", (getter)Controller_get_I_b,(setter)Controller_set_I_b, - PyDoc_STR("*float*: Direct normal incident solar irradiation [kJ/m2-hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Direct normal incident solar irradiation [kJ/m2-hr]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)Controller_get_I_bn_des,(setter)Controller_set_I_bn_des, - PyDoc_STR("*float*: Solar irradiation at design [W/m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Solar irradiation at design [W/m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``I_bn_des``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"L_crossover", (getter)Controller_get_L_crossover,(setter)Controller_set_L_crossover, - PyDoc_STR("*float*: Length of crossover piping in a loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of crossover piping in a loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_mod", (getter)Controller_get_L_mod,(setter)Controller_set_L_mod, - PyDoc_STR("*float*: The length of the collector module [m]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: The length of the collector module [m]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``L_mod``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"L_mod_spacing", (getter)Controller_get_L_mod_spacing,(setter)Controller_set_L_mod_spacing, - PyDoc_STR("*float*: Piping distance between sequential modules in a loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Piping distance between sequential modules in a loop [m]\n\n**Required:**\nTrue"), NULL}, {"OpticalTable", (getter)Controller_get_OpticalTable,(setter)Controller_set_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)Controller_get_P_a,(setter)Controller_set_P_a, - PyDoc_STR("*sequence*: Annulus gas pressure [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annulus gas pressure [torr]\n\n**Required:**\nTrue"), NULL}, {"P_amb", (getter)Controller_get_P_amb,(setter)Controller_set_P_amb, - PyDoc_STR("*float*: Ambient pressure [atm]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient pressure [atm]\n\n**Required:**\nTrue"), NULL}, {"Pipe_hl_coef", (getter)Controller_get_Pipe_hl_coef,(setter)Controller_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header - runner pipe - and non-HCE piping [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header - runner pipe - and non-HCE piping [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)Controller_get_Rough,(setter)Controller_set_Rough, - PyDoc_STR("*sequence*: Roughness of the internal surface [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Roughness of the internal surface [m]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)Controller_get_SCA_drives_elec,(setter)Controller_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power in Watts per SCA drive [W/module]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power in Watts per SCA drive [W/module]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)Controller_get_Shadowing,(setter)Controller_set_Shadowing, - PyDoc_STR("*sequence*: Receiver bellows shadowing loss factor\n\n*Required*: True"), + PyDoc_STR("*sequence*: Receiver bellows shadowing loss factor\n\n**Required:**\nTrue"), NULL}, {"T_amb_sf_des", (getter)Controller_get_T_amb_sf_des,(setter)Controller_set_T_amb_sf_des, - PyDoc_STR("*float*: Ambient design-point temperature for the solar field [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Ambient design-point temperature for the solar field [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_amb_sf_des``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"T_cold_in", (getter)Controller_get_T_cold_in,(setter)Controller_set_T_cold_in, - PyDoc_STR("*float*: HTF return temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF return temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_db", (getter)Controller_get_T_db,(setter)Controller_set_T_db, - PyDoc_STR("*float*: Dry bulb air temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Dry bulb air temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_dp", (getter)Controller_get_T_dp,(setter)Controller_set_T_dp, - PyDoc_STR("*float*: The dewpoint temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: The dewpoint temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_field_in_des", (getter)Controller_get_T_field_in_des,(setter)Controller_set_T_field_in_des, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_in_des\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``T_field_in_des`` depends on the following variables:\n\n\t - T_loop_in_des\n"), NULL}, {"T_field_ini", (getter)Controller_get_T_field_ini,(setter)Controller_set_T_field_ini, - PyDoc_STR("*float*: Initial field temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial field temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_field_out_des", (getter)Controller_get_T_field_out_des,(setter)Controller_set_T_field_out_des, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_out\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``T_field_out_des`` depends on the following variables:\n\n\t - T_loop_out\n"), NULL}, {"T_fp", (getter)Controller_get_T_fp,(setter)Controller_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_in_des", (getter)Controller_get_T_loop_in_des,(setter)Controller_set_T_loop_in_des, - PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - T_field_in_des\n\t - T_htf_cold_ref\n\t - T_tank_cold_ini\n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\t - tes_temp\n\t - vol_tank\n"), + PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_loop_in_des``:\n\n\t - T_field_in_des\n\t - T_htf_cold_ref\n\t - T_tank_cold_ini\n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\t - tes_temp\n\t - vol_tank\n"), NULL}, {"T_loop_out", (getter)Controller_get_T_loop_out,(setter)Controller_set_T_loop_out, - PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - T_field_out_des\n\t - T_htf_hot_ref\n\t - T_tank_hot_ini\n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\t - tes_temp\n\t - vol_tank\n"), + PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_loop_out``:\n\n\t - T_field_out_des\n\t - T_htf_hot_ref\n\t - T_tank_hot_ini\n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\t - tes_temp\n\t - vol_tank\n"), NULL}, {"T_set_aux", (getter)Controller_get_T_set_aux,(setter)Controller_set_T_set_aux, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"T_startup", (getter)Controller_get_T_startup,(setter)Controller_set_T_startup, - PyDoc_STR("*float*: Power block startup temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Power block startup temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_tank_cold_ini", (getter)Controller_get_T_tank_cold_ini,(setter)Controller_set_T_tank_cold_ini, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_in_des\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``T_tank_cold_ini`` depends on the following variables:\n\n\t - T_loop_in_des\n"), NULL}, {"T_tank_hot_ini", (getter)Controller_get_T_tank_hot_ini,(setter)Controller_set_T_tank_hot_ini, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_out\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``T_tank_hot_ini`` depends on the following variables:\n\n\t - T_loop_out\n"), NULL}, {"T_tank_hot_inlet_min", (getter)Controller_get_T_tank_hot_inlet_min,(setter)Controller_set_T_tank_hot_inlet_min, - PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)Controller_get_Tau_envelope,(setter)Controller_set_Tau_envelope, - PyDoc_STR("*sequence*: Envelope transmittance\n\n*Required*: True"), + PyDoc_STR("*sequence*: Envelope transmittance\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)Controller_get_TrackingError,(setter)Controller_set_TrackingError, - PyDoc_STR("*float*: Tracking error derate\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Tracking error derate\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TrackingError``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"V_hdr_max", (getter)Controller_get_V_hdr_max,(setter)Controller_set_V_hdr_max, - PyDoc_STR("*float*: Maximum HTF velocity in the header at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the header at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_min", (getter)Controller_get_V_hdr_min,(setter)Controller_set_V_hdr_min, - PyDoc_STR("*float*: Minimum HTF velocity in the header at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the header at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_tank_hot_ini", (getter)Controller_get_V_tank_hot_ini,(setter)Controller_set_V_tank_hot_ini, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n\t - T_loop_in_des\n\t - T_loop_out\n\t - dt_cold\n\t - dt_hot\n\t - eta_ref\n\t - store_fl_props\n\t - tes_temp\n\t - tshours\n\t - vol_tank\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``V_tank_hot_ini`` depends on the following variables:\n\n\t - P_ref\n\t - T_loop_in_des\n\t - T_loop_out\n\t - dt_cold\n\t - dt_hot\n\t - eta_ref\n\t - store_fl_props\n\t - tes_temp\n\t - tshours\n\t - vol_tank\n"), NULL}, {"V_tes_des", (getter)Controller_get_V_tes_des,(setter)Controller_set_V_tes_des, - PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_wind", (getter)Controller_get_V_wind,(setter)Controller_set_V_wind, - PyDoc_STR("*float*: Ambient windspeed [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient windspeed [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_wind_des", (getter)Controller_get_V_wind_des,(setter)Controller_set_V_wind_des, - PyDoc_STR("*float*: Design-point wind velocity [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point wind velocity [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_pb_design", (getter)Controller_get_W_pb_design,(setter)Controller_set_W_pb_design, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``W_pb_design`` depends on the following variables:\n\n\t - P_ref\n"), NULL}, {"alpha_abs", (getter)Controller_get_alpha_abs,(setter)Controller_set_alpha_abs, - PyDoc_STR("*sequence*: Absorber absorptance\n\n*Required*: True"), + PyDoc_STR("*sequence*: Absorber absorptance\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)Controller_get_alpha_env,(setter)Controller_set_alpha_env, - PyDoc_STR("*sequence*: Envelope absorptance\n\n*Required*: True"), + PyDoc_STR("*sequence*: Envelope absorptance\n\n**Required:**\nTrue"), NULL}, {"aux_array", (getter)Controller_get_aux_array,(setter)Controller_set_aux_array, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)Controller_get_bop_array,(setter)Controller_set_bop_array, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"calc_design_pipe_vals", (getter)Controller_get_calc_design_pipe_vals,(setter)Controller_set_calc_design_pipe_vals, - PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [-]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_Thtr", (getter)Controller_get_cold_tank_Thtr,(setter)Controller_set_cold_tank_Thtr, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"custom_sgs_pipe_sizes", (getter)Controller_get_custom_sgs_pipe_sizes,(setter)Controller_set_custom_sgs_pipe_sizes, - PyDoc_STR("*float*: Use custom SGS pipe diams, wallthks, and lengths [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom SGS pipe diams, wallthks, and lengths [-]\n\n**Required:**\nTrue"), NULL}, {"custom_tes_p_loss", (getter)Controller_get_custom_tes_p_loss,(setter)Controller_set_custom_tes_p_loss, - PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n*Required*: True"), + PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_cutoff_frac", (getter)Controller_get_cycle_cutoff_frac,(setter)Controller_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)Controller_get_cycle_max_frac,(setter)Controller_set_cycle_max_frac, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"defocus", (getter)Controller_get_defocus,(setter)Controller_set_defocus, - PyDoc_STR("*float*: Defocus control\n\n*Required*: True"), + PyDoc_STR("*float*: Defocus control\n\n**Required:**\nTrue"), NULL}, {"dirt_env", (getter)Controller_get_dirt_env,(setter)Controller_set_dirt_env, - PyDoc_STR("*sequence*: Loss due to dirt on the receiver envelope\n\n*Required*: True"), + PyDoc_STR("*sequence*: Loss due to dirt on the receiver envelope\n\n**Required:**\nTrue"), NULL}, {"dt_cold", (getter)Controller_get_dt_cold,(setter)Controller_set_dt_cold, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - vol_tank\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - dt_hot\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``dt_cold``:\n\n\t - V_tank_hot_ini\n\t - vol_tank\n\n\nThe value of ``dt_cold`` depends on the following variables:\n\n\t - dt_hot\n"), NULL}, {"dt_hot", (getter)Controller_get_dt_hot,(setter)Controller_set_dt_hot, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - dt_cold\n\t - vol_tank\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``dt_hot``:\n\n\t - V_tank_hot_ini\n\t - dt_cold\n\t - vol_tank\n"), NULL}, {"epsilon_abs_1", (getter)Controller_get_epsilon_abs_1,(setter)Controller_set_epsilon_abs_1, - PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 1\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 1\n\n**Required:**\nTrue"), NULL}, {"epsilon_abs_2", (getter)Controller_get_epsilon_abs_2,(setter)Controller_set_epsilon_abs_2, - PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 2\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 2\n\n**Required:**\nTrue"), NULL}, {"epsilon_abs_3", (getter)Controller_get_epsilon_abs_3,(setter)Controller_set_epsilon_abs_3, - PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 3\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 3\n\n**Required:**\nTrue"), NULL}, {"epsilon_abs_4", (getter)Controller_get_epsilon_abs_4,(setter)Controller_set_epsilon_abs_4, - PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 4\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance - HCE variation 4\n\n**Required:**\nTrue"), NULL}, {"epsilon_glass", (getter)Controller_get_epsilon_glass,(setter)Controller_set_epsilon_glass, - PyDoc_STR("*sequence*: Glass envelope emissivity\n\n*Required*: True"), + PyDoc_STR("*sequence*: Glass envelope emissivity\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)Controller_get_eta_pump,(setter)Controller_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency\n\n**Required:**\nTrue"), NULL}, {"f_tc_cold", (getter)Controller_get_f_tc_cold,(setter)Controller_set_f_tc_cold, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"fc_on", (getter)Controller_get_fc_on,(setter)Controller_set_fc_on, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"ffrac", (getter)Controller_get_ffrac,(setter)Controller_set_ffrac, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Controller_get_field_fl_props,(setter)Controller_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: Fluid property data\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fluid property data\n\n**Required:**\nTrue"), NULL}, {"field_fluid", (getter)Controller_get_field_fluid,(setter)Controller_set_field_fluid, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - Fluid\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``field_fluid`` depends on the following variables:\n\n\t - Fluid\n"), NULL}, {"fossil_mode", (getter)Controller_get_fossil_mode,(setter)Controller_set_fossil_mode, - PyDoc_STR("*float*: Label\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"fthr_ok", (getter)Controller_get_fthr_ok,(setter)Controller_set_fthr_ok, - PyDoc_STR("*float*: Label\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - fthrok\n"), + PyDoc_STR("*float*: Label\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of ``fthr_ok`` depends on the following variables:\n\n\t - fthrok\n"), NULL}, {"fthrctrl", (getter)Controller_get_fthrctrl,(setter)Controller_set_fthrctrl, - PyDoc_STR("*float*: Defocusing strategy\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Defocusing strategy\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"fthrok", (getter)Controller_get_fthrok,(setter)Controller_set_fthrok, - PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - fthr_ok\n"), + PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``fthrok``:\n\n\t - fthr_ok\n"), NULL}, {"h_tank", (getter)Controller_get_h_tank,(setter)Controller_set_h_tank, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)Controller_get_h_tank_min,(setter)Controller_set_h_tank_min, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"has_hot_tank_bypass", (getter)Controller_get_has_hot_tank_bypass,(setter)Controller_set_has_hot_tank_bypass, - PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)Controller_get_hot_tank_Thtr,(setter)Controller_set_hot_tank_Thtr, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"hx_config", (getter)Controller_get_hx_config,(setter)Controller_set_hx_config, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"is_hx", (getter)Controller_get_is_hx,(setter)Controller_set_is_hx, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - Fluid\n\t - store_fluid\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``is_hx`` depends on the following variables:\n\n\t - Fluid\n\t - store_fluid\n"), NULL}, {"k_tes_loss_coeffs", (getter)Controller_get_k_tes_loss_coeffs,(setter)Controller_set_k_tes_loss_coeffs, - PyDoc_STR("*sequence*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmax", (getter)Controller_get_m_dot_htfmax,(setter)Controller_set_m_dot_htfmax, - PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmin", (getter)Controller_get_m_dot_htfmin,(setter)Controller_set_m_dot_htfmin, - PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_cold", (getter)Controller_get_mc_bal_cold,(setter)Controller_set_mc_bal_cold, - PyDoc_STR("*float*: The heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: The heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_hot", (getter)Controller_get_mc_bal_hot,(setter)Controller_set_mc_bal_hot, - PyDoc_STR("*float*: The heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: The heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_sca", (getter)Controller_get_mc_bal_sca,(setter)Controller_set_mc_bal_sca, - PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n*Required*: True"), + PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)Controller_get_nLoops,(setter)Controller_set_nLoops, - PyDoc_STR("*float*: Number of loops in the field\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nMod\n\t - reflectivity\n"), + PyDoc_STR("*float*: Number of loops in the field\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nLoops``:\n\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n\n\nThe value of ``nLoops`` depends on the following variables:\n\n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nMod\n\t - reflectivity\n"), NULL}, {"nMod", (getter)Controller_get_nMod,(setter)Controller_set_nMod, - PyDoc_STR("*float*: Number of collector modules in a loop\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - nSCA\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Number of collector modules in a loop\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nMod``:\n\n\t - nLoops\n\t - nSCA\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"nRecVar", (getter)Controller_get_nRecVar,(setter)Controller_set_nRecVar, - PyDoc_STR("*float*: Number of receiver variantions\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 4"), + PyDoc_STR("*float*: Number of receiver variantions\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 4 if not assigned explicitly or loaded from defaults."), NULL}, {"nSCA", (getter)Controller_get_nSCA,(setter)Controller_set_nSCA, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - nMod\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``nSCA`` depends on the following variables:\n\n\t - nMod\n"), NULL}, {"nodes", (getter)Controller_get_nodes,(setter)Controller_set_nodes, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"opt_model", (getter)Controller_get_opt_model,(setter)Controller_set_opt_model, - PyDoc_STR("*float*: The optical model\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: The optical model\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"pb_fixed_par", (getter)Controller_get_pb_fixed_par,(setter)Controller_set_pb_fixed_par, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)Controller_get_pb_pump_coef,(setter)Controller_set_pb_pump_coef, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"pb_rated_cap", (getter)Controller_get_pb_rated_cap,(setter)Controller_set_pb_rated_cap, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue\n\nThe value of ``pb_rated_cap`` depends on the following variables:\n\n\t - P_ref\n"), NULL}, {"q_max_aux", (getter)Controller_get_q_max_aux,(setter)Controller_set_q_max_aux, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n\t - solar_mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``q_max_aux`` depends on the following variables:\n\n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n\t - solar_mult\n"), NULL}, {"q_pb_design", (getter)Controller_get_q_pb_design,(setter)Controller_set_q_pb_design, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n\t - eta_ref\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``q_pb_design`` depends on the following variables:\n\n\t - P_ref\n\t - eta_ref\n"), NULL}, {"rec_htf_vol", (getter)Controller_get_rec_htf_vol,(setter)Controller_set_rec_htf_vol, - PyDoc_STR("*float*: Volume of HTF in a single collector unit per unit aperture area [L/m2-ap]\n\n*Required*: True"), + PyDoc_STR("*float*: Volume of HTF in a single collector unit per unit aperture area [L/m2-ap]\n\n**Required:**\nTrue"), NULL}, {"rec_model", (getter)Controller_get_rec_model,(setter)Controller_set_rec_model, - PyDoc_STR("*float*: Receiver model type (1=Polynomial ; 2=Evac tube)\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver model type (1=Polynomial ; 2=Evac tube)\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"reflectivity", (getter)Controller_get_reflectivity,(setter)Controller_set_reflectivity, - PyDoc_STR("*float*: Solar-weighted mirror reflectivity value\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), + PyDoc_STR("*float*: Solar-weighted mirror reflectivity value\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``reflectivity``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solar_mult\n\t - solarm\n"), NULL}, {"sgs_diams", (getter)Controller_get_sgs_diams,(setter)Controller_set_sgs_diams, - PyDoc_STR("*sequence*: Custom SGS diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sgs_lengths", (getter)Controller_get_sgs_lengths,(setter)Controller_set_sgs_lengths, - PyDoc_STR("*sequence*: Custom SGS lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sgs_wallthicks", (getter)Controller_get_sgs_wallthicks,(setter)Controller_set_sgs_wallthicks, - PyDoc_STR("*sequence*: Custom SGS wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"solar_mult", (getter)Controller_get_solar_mult,(setter)Controller_set_solar_mult, - PyDoc_STR("*float*: Solar multiple\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - q_max_aux\n\t - solarm\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n"), + PyDoc_STR("*float*: Solar multiple\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``solar_mult``:\n\n\t - q_max_aux\n\t - solarm\n\n\nThe value of ``solar_mult`` depends on the following variables:\n\n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n"), NULL}, {"solarm", (getter)Controller_get_solarm,(setter)Controller_set_solarm, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n\t - solar_mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``solarm`` depends on the following variables:\n\n\t - A_aperture\n\t - Dirt_mirror\n\t - Error\n\t - GeomEffects\n\t - I_bn_des\n\t - L_mod\n\t - P_ref\n\t - T_amb_sf_des\n\t - T_loop_in_des\n\t - T_loop_out\n\t - TrackingError\n\t - eta_ref\n\t - nLoops\n\t - nMod\n\t - reflectivity\n\t - solar_mult\n"), NULL}, {"store_fl_props", (getter)Controller_get_store_fl_props,(setter)Controller_set_store_fl_props, - PyDoc_STR("*sequence[sequence]*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - vol_tank\n"), + PyDoc_STR("*sequence[sequence]*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``store_fl_props``:\n\n\t - V_tank_hot_ini\n\t - vol_tank\n"), NULL}, {"store_fluid", (getter)Controller_get_store_fluid,(setter)Controller_set_store_fluid, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - is_hx\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``store_fluid``:\n\n\t - is_hx\n"), NULL}, {"t_ch_out_max", (getter)Controller_get_t_ch_out_max,(setter)Controller_set_t_ch_out_max, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"t_dis_out_min", (getter)Controller_get_t_dis_out_min,(setter)Controller_set_t_dis_out_min, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"t_standby_reset", (getter)Controller_get_t_standby_reset,(setter)Controller_set_t_standby_reset, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"tank_max_heat", (getter)Controller_get_tank_max_heat,(setter)Controller_set_tank_max_heat, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)Controller_get_tank_pairs,(setter)Controller_set_tank_pairs, - PyDoc_STR("*float*: Label\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tanks_in_parallel", (getter)Controller_get_tanks_in_parallel,(setter)Controller_set_tanks_in_parallel, - PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n**Required:**\nTrue"), NULL}, {"tc_fill", (getter)Controller_get_tc_fill,(setter)Controller_set_tc_fill, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"tc_void", (getter)Controller_get_tc_void,(setter)Controller_set_tc_void, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"tes_pump_coef", (getter)Controller_get_tes_pump_coef,(setter)Controller_set_tes_pump_coef, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"tes_temp", (getter)Controller_get_tes_temp,(setter)Controller_set_tes_temp, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - vol_tank\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_in_des\n\t - T_loop_out\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``tes_temp``:\n\n\t - V_tank_hot_ini\n\t - vol_tank\n\n\nThe value of ``tes_temp`` depends on the following variables:\n\n\t - T_loop_in_des\n\t - T_loop_out\n"), NULL}, {"tes_type", (getter)Controller_get_tes_type,(setter)Controller_set_tes_type, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)Controller_get_theta_dep,(setter)Controller_set_theta_dep, - PyDoc_STR("*float*: deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)Controller_get_theta_stow,(setter)Controller_set_theta_stow, - PyDoc_STR("*float*: stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)Controller_get_tshours,(setter)Controller_set_tshours, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - vol_tank\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``tshours``:\n\n\t - V_tank_hot_ini\n\t - vol_tank\n"), NULL}, {"tslogic_a", (getter)Controller_get_tslogic_a,(setter)Controller_set_tslogic_a, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"tslogic_b", (getter)Controller_get_tslogic_b,(setter)Controller_set_tslogic_b, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"tslogic_c", (getter)Controller_get_tslogic_c,(setter)Controller_set_tslogic_c, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)Controller_get_u_tank,(setter)Controller_set_u_tank, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"vol_tank", (getter)Controller_get_vol_tank,(setter)Controller_set_vol_tank, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_ref\n\t - T_loop_in_des\n\t - T_loop_out\n\t - dt_cold\n\t - dt_hot\n\t - eta_ref\n\t - store_fl_props\n\t - tes_temp\n\t - tshours\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``vol_tank``:\n\n\t - V_tank_hot_ini\n\n\nThe value of ``vol_tank`` depends on the following variables:\n\n\t - P_ref\n\t - T_loop_in_des\n\t - T_loop_out\n\t - dt_cold\n\t - dt_hot\n\t - eta_ref\n\t - store_fl_props\n\t - tes_temp\n\t - tshours\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2807,11 +2807,11 @@ SolarField_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarField_methods[] = { {"assign", (PyCFunction)SolarField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarField_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2841,10 +2841,10 @@ SolarField_set_water_per_wash(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef SolarField_getset[] = { {"washes_per_year", (getter)SolarField_get_washes_per_year,(setter)SolarField_set_washes_per_year, - PyDoc_STR("*float*: Mirror washing frequency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [none]\n\n**Required:**\nTrue"), NULL}, {"water_per_wash", (getter)SolarField_get_water_per_wash,(setter)SolarField_set_water_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2959,11 +2959,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3209,64 +3209,64 @@ Powerblock_set_tech_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Powerblock_getset[] = { {"CT", (getter)Powerblock_get_CT,(setter)Powerblock_set_CT, - PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"F_wc", (getter)Powerblock_get_F_wc,(setter)Powerblock_set_F_wc, - PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n*Options*: constant=[0,0,0,0,0,0,0,0,0]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n**Options:**\nconstant=[0,0,0,0,0,0,0,0,0]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_boil", (getter)Powerblock_get_P_boil,(setter)Powerblock_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)Powerblock_get_P_cond_min,(setter)Powerblock_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)Powerblock_get_P_cond_ratio,(setter)Powerblock_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_ref", (getter)Powerblock_get_P_ref,(setter)Powerblock_set_P_ref, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - W_pb_design\n\t - nLoops\n\t - pb_rated_cap\n\t - q_max_aux\n\t - q_pb_design\n\t - solar_mult\n\t - solarm\n\t - system_capacity\n\t - vol_tank\n"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``P_ref``:\n\n\t - V_tank_hot_ini\n\t - W_pb_design\n\t - nLoops\n\t - pb_rated_cap\n\t - q_max_aux\n\t - q_pb_design\n\t - solar_mult\n\t - solarm\n\t - system_capacity\n\t - vol_tank\n"), NULL}, {"T_ITD_des", (getter)Powerblock_get_T_ITD_des,(setter)Powerblock_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)Powerblock_get_T_amb_des,(setter)Powerblock_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)Powerblock_get_T_approach,(setter)Powerblock_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_htf_cold_ref", (getter)Powerblock_get_T_htf_cold_ref,(setter)Powerblock_set_T_htf_cold_ref, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_in_des\n"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue\n\nThe value of ``T_htf_cold_ref`` depends on the following variables:\n\n\t - T_loop_in_des\n"), NULL}, {"T_htf_hot_ref", (getter)Powerblock_get_T_htf_hot_ref,(setter)Powerblock_set_T_htf_hot_ref, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - T_loop_out\n"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue\n\nThe value of ``T_htf_hot_ref`` depends on the following variables:\n\n\t - T_loop_out\n"), NULL}, {"dT_cw_ref", (getter)Powerblock_get_dT_cw_ref,(setter)Powerblock_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"eta_ref", (getter)Powerblock_get_eta_ref,(setter)Powerblock_set_eta_ref, - PyDoc_STR("*float*: Cycle thermal efficiency at design point [-]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - q_pb_design\n\t - solar_mult\n\t - solarm\n\t - vol_tank\n"), + PyDoc_STR("*float*: Cycle thermal efficiency at design point [-]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``eta_ref``:\n\n\t - V_tank_hot_ini\n\t - nLoops\n\t - q_max_aux\n\t - q_pb_design\n\t - solar_mult\n\t - solarm\n\t - vol_tank\n"), NULL}, {"n_pl_inc", (getter)Powerblock_get_n_pl_inc,(setter)Powerblock_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)Powerblock_get_pb_bd_frac,(setter)Powerblock_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pc_config", (getter)Powerblock_get_pc_config,(setter)Powerblock_set_pc_config, - PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)Powerblock_get_q_sby_frac,(setter)Powerblock_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)Powerblock_get_startup_frac,(setter)Powerblock_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)Powerblock_get_startup_time,(setter)Powerblock_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {"tech_type", (getter)Powerblock_get_tech_type,(setter)Powerblock_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n*Info*: tower/trough/user\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n**Info:**\ntower/trough/user\n\n**Required:**\nRequired if pc_config=0"), NULL}, {NULL} /* Sentinel */ }; @@ -3381,11 +3381,11 @@ UserDefinedPC_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPC_methods[] = { {"assign", (PyCFunction)UserDefinedPC_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPC_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPC_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3427,13 +3427,13 @@ UserDefinedPC_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject *value, static PyGetSetDef UserDefinedPC_getset[] = { {"ud_f_W_dot_cool_des", (getter)UserDefinedPC_get_ud_f_W_dot_cool_des,(setter)UserDefinedPC_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)UserDefinedPC_get_ud_ind_od,(setter)UserDefinedPC_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)UserDefinedPC_get_ud_m_dot_water_cool_des,(setter)UserDefinedPC_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3548,11 +3548,11 @@ Enet_export(VarGroupObject *self, PyObject *args) static PyMethodDef Enet_methods[] = { {"assign", (PyCFunction)Enet_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Enet_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Enet_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Enet_vals = { var: val, ...}``")}, {"export", (PyCFunction)Enet_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3594,13 +3594,13 @@ Enet_set_fp_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Enet_getset[] = { {"eta_lhv", (getter)Enet_get_eta_lhv,(setter)Enet_set_eta_lhv, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue"), NULL}, {"eta_tes_htr", (getter)Enet_get_eta_tes_htr,(setter)Enet_set_eta_tes_htr, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue"), NULL}, {"fp_mode", (getter)Enet_get_fp_mode,(setter)Enet_set_fp_mode, - PyDoc_STR("*float*: Label [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Label [-]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3715,11 +3715,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4812,12 +4812,11 @@ static PyMethodDef TcsMSLFModule_methods[] = { {"new", TcsMSLF_new, METH_VARARGS, PyDoc_STR("new() -> TcsMSLF")}, {"default", TcsMSLF_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcsMSLF\n\nUse default attributes\n" - "`config` options:\n\n- \"MSLFAllEquityPartnershipFlip\"\n- \"MSLFCommercial\"\n- \"MSLFLCOECalculator\"\n- \"MSLFLeveragedPartnershipFlip\"\n- \"MSLFMerchantPlant\"\n- \"MSLFNone\"\n- \"MSLFSaleLeaseback\"\n- \"MSLFSingleOwner\"")}, + PyDoc_STR("default(config) -> TcsMSLF\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"MSLFAllEquityPartnershipFlip\"*\n\n - *\"MSLFCommercial\"*\n\n - *\"MSLFLCOECalculator\"*\n\n - *\"MSLFLeveragedPartnershipFlip\"*\n\n - *\"MSLFMerchantPlant\"*\n\n - *\"MSLFNone\"*\n\n - *\"MSLFSaleLeaseback\"*\n\n - *\"MSLFSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcsMSLF_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcsMSLF\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcsMSLF\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcsMSLF_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcsMSLF\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcsMSLF\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcsgenericSolar.c b/modules/TcsgenericSolar.c index 73240fa6..b6ab4ed6 100644 --- a/modules/TcsgenericSolar.c +++ b/modules/TcsgenericSolar.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ GenericSolar_export(VarGroupObject *self, PyObject *args) static PyMethodDef GenericSolar_methods[] = { {"assign", (PyCFunction)GenericSolar_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``GenericSolar_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``GenericSolar_vals = { var: val, ...}``")}, {"replace", (PyCFunction)GenericSolar_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``GenericSolar_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``GenericSolar_vals = { var: val, ...}``")}, {"export", (PyCFunction)GenericSolar_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ GenericSolar_set_system_capacity(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef GenericSolar_getset[] = { {"system_capacity", (getter)GenericSolar_get_system_capacity,(setter)GenericSolar_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - w_des\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - w_des\n"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -422,10 +422,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -540,11 +540,11 @@ Type260_export(VarGroupObject *self, PyObject *args) static PyMethodDef Type260_methods[] = { {"assign", (PyCFunction)Type260_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Type260_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Type260_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Type260_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Type260_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Type260_vals = { var: val, ...}``")}, {"export", (PyCFunction)Type260_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1198,166 +1198,166 @@ Type260_set_w_des(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Type260_getset[] = { {"OpticalTable", (getter)Type260_get_OpticalTable,(setter)Type260_set_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Optical table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Optical table [none]\n\n**Required:**\nTrue"), NULL}, {"PC_T_corr", (getter)Type260_get_PC_T_corr,(setter)Type260_set_PC_T_corr, - PyDoc_STR("*float*: Power conversion temperature correction mode (1=wetb, 2=dryb) [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Power conversion temperature correction mode (1=wetb, 2=dryb) [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"T_pcdes", (getter)Type260_get_T_pcdes,(setter)Type260_set_T_pcdes, - PyDoc_STR("*float*: Power conversion reference temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Power conversion reference temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_sfdes", (getter)Type260_get_T_sfdes,(setter)Type260_set_T_sfdes, - PyDoc_STR("*float*: Solar field design point temperature (dry bulb) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar field design point temperature (dry bulb) [C]\n\n**Required:**\nTrue"), NULL}, {"Wpar_prodD_coefs", (getter)Type260_get_Wpar_prodD_coefs,(setter)Type260_set_Wpar_prodD_coefs, - PyDoc_STR("*sequence*: DNI-based production parasitic adjustment coefs. [m2/W]\n\n*Required*: True"), + PyDoc_STR("*sequence*: DNI-based production parasitic adjustment coefs. [m2/W]\n\n**Required:**\nTrue"), NULL}, {"Wpar_prodQ_coefs", (getter)Type260_get_Wpar_prodQ_coefs,(setter)Type260_set_Wpar_prodQ_coefs, - PyDoc_STR("*sequence*: Part-load production parasitic adjustment coefs. [1/MWe]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Part-load production parasitic adjustment coefs. [1/MWe]\n\n**Required:**\nTrue"), NULL}, {"Wpar_prodT_coefs", (getter)Type260_get_Wpar_prodT_coefs,(setter)Type260_set_Wpar_prodT_coefs, - PyDoc_STR("*sequence*: Temp.-based production parasitic adjustment coefs. [1/C]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Temp.-based production parasitic adjustment coefs. [1/C]\n\n**Required:**\nTrue"), NULL}, {"diswos", (getter)Type260_get_diswos,(setter)Type260_set_diswos, - PyDoc_STR("*sequence*: Time-of-dispatch control for without-solar conditions [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Time-of-dispatch control for without-solar conditions [none]\n\n**Required:**\nTrue"), NULL}, {"disws", (getter)Type260_get_disws,(setter)Type260_set_disws, - PyDoc_STR("*sequence*: Time-of-dispatch control for with-solar conditions [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Time-of-dispatch control for with-solar conditions [none]\n\n**Required:**\nTrue"), NULL}, {"etaQ_coefs", (getter)Type260_get_etaQ_coefs,(setter)Type260_set_etaQ_coefs, - PyDoc_STR("*sequence*: Part-load power conversion efficiency adjustment coefficients [1/MWt]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Part-load power conversion efficiency adjustment coefficients [1/MWt]\n\n**Required:**\nTrue"), NULL}, {"etaT_coefs", (getter)Type260_get_etaT_coefs,(setter)Type260_set_etaT_coefs, - PyDoc_STR("*sequence*: Temp.-based power conversion efficiency adjustment coefs. [1/C]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Temp.-based power conversion efficiency adjustment coefs. [1/C]\n\n**Required:**\nTrue"), NULL}, {"eta_des", (getter)Type260_get_eta_des,(setter)Type260_set_eta_des, - PyDoc_STR("*float*: Design power cycle gross efficiency [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - qsf_des\n"), + PyDoc_STR("*float*: Design power cycle gross efficiency [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``eta_des``:\n\n\t - qsf_des\n"), NULL}, {"eta_lhv", (getter)Type260_get_eta_lhv,(setter)Type260_set_eta_lhv, - PyDoc_STR("*float*: Fossil backup lower heating value efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil backup lower heating value efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"eta_opt_gen", (getter)Type260_get_eta_opt_gen,(setter)Type260_set_eta_opt_gen, - PyDoc_STR("*float*: General/other optical derate [none]\n\n*Required*: True"), + PyDoc_STR("*float*: General/other optical derate [none]\n\n**Required:**\nTrue"), NULL}, {"eta_opt_soil", (getter)Type260_get_eta_opt_soil,(setter)Type260_set_eta_opt_soil, - PyDoc_STR("*float*: Soiling optical derate factor [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Soiling optical derate factor [none]\n\n**Required:**\nTrue"), NULL}, {"exergy_table", (getter)Type260_get_exergy_table,(setter)Type260_set_exergy_table, - PyDoc_STR("*sequence[sequence]*: Exergy table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Exergy table [none]\n\n**Required:**\nTrue"), NULL}, {"f_Wpar_fixed", (getter)Type260_get_f_Wpar_fixed,(setter)Type260_set_f_Wpar_fixed, - PyDoc_STR("*float*: Fixed capacity-based parasitic loss fraction [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed capacity-based parasitic loss fraction [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"f_Wpar_prod", (getter)Type260_get_f_Wpar_prod,(setter)Type260_set_f_Wpar_prod, - PyDoc_STR("*float*: Production-based parasitic loss fraction [MWe/MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Production-based parasitic loss fraction [MWe/MWe]\n\n**Required:**\nTrue"), NULL}, {"f_charge", (getter)Type260_get_f_charge,(setter)Type260_set_f_charge, - PyDoc_STR("*float*: Storage charging energy derate [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Storage charging energy derate [none]\n\n**Required:**\nTrue"), NULL}, {"f_disch", (getter)Type260_get_f_disch,(setter)Type260_set_f_disch, - PyDoc_STR("*float*: Storage discharging energy derate [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Storage discharging energy derate [none]\n\n**Required:**\nTrue"), NULL}, {"f_etes_0", (getter)Type260_get_f_etes_0,(setter)Type260_set_f_etes_0, - PyDoc_STR("*float*: Initial fractional charge level of thermal storage (0..1) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial fractional charge level of thermal storage (0..1) [none]\n\n**Required:**\nTrue"), NULL}, {"f_sfhl_ref", (getter)Type260_get_f_sfhl_ref,(setter)Type260_set_f_sfhl_ref, - PyDoc_STR("*float*: Reference solar field thermal loss fraction [MW/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference solar field thermal loss fraction [MW/MWcap]\n\n**Required:**\nTrue"), NULL}, {"f_startup", (getter)Type260_get_f_startup,(setter)Type260_set_f_startup, - PyDoc_STR("*float*: Equivalent full-load hours required for power system startup [hours]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load hours required for power system startup [hours]\n\n**Required:**\nTrue"), NULL}, {"f_teshl_ref", (getter)Type260_get_f_teshl_ref,(setter)Type260_set_f_teshl_ref, - PyDoc_STR("*float*: Reference heat loss from storage per max stored capacity [kWt/MWhr-stored]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference heat loss from storage per max stored capacity [kWt/MWhr-stored]\n\n**Required:**\nTrue"), NULL}, {"f_wmax", (getter)Type260_get_f_wmax,(setter)Type260_set_f_wmax, - PyDoc_STR("*float*: Maximum over-design power cycle operation fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum over-design power cycle operation fraction [none]\n\n**Required:**\nTrue"), NULL}, {"f_wmin", (getter)Type260_get_f_wmin,(setter)Type260_set_f_wmin, - PyDoc_STR("*float*: Minimum part-load power cycle operation fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum part-load power cycle operation fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fdisp", (getter)Type260_get_fdisp,(setter)Type260_set_fdisp, - PyDoc_STR("*sequence*: Fossil backup output control factors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fossil backup output control factors [none]\n\n**Required:**\nTrue"), NULL}, {"hrs_tes", (getter)Type260_get_hrs_tes,(setter)Type260_set_hrs_tes, - PyDoc_STR("*float*: Equivalent full-load hours of storage [hours]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load hours of storage [hours]\n\n**Required:**\nTrue"), NULL}, {"ibh", (getter)Type260_get_ibh,(setter)Type260_set_ibh, - PyDoc_STR("*float*: Beam-horizontal irradiation [kJ/hr-m^2]\n\n*Required*: True"), + PyDoc_STR("*float*: Beam-horizontal irradiation [kJ/hr-m^2]\n\n**Required:**\nTrue"), NULL}, {"ibn", (getter)Type260_get_ibn,(setter)Type260_set_ibn, - PyDoc_STR("*float*: Beam-normal (DNI) irradiation [kJ/hr-m^2]\n\n*Required*: True"), + PyDoc_STR("*float*: Beam-normal (DNI) irradiation [kJ/hr-m^2]\n\n**Required:**\nTrue"), NULL}, {"interp_arr", (getter)Type260_get_interp_arr,(setter)Type260_set_interp_arr, - PyDoc_STR("*float*: Interpolate the array or find nearest neighbor? (1=interp,2=no) [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Interpolate the array or find nearest neighbor? (1=interp,2=no) [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"irr_des", (getter)Type260_get_irr_des,(setter)Type260_set_irr_des, - PyDoc_STR("*float*: Irradiation design point [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Irradiation design point [W/m2]\n\n**Required:**\nTrue"), NULL}, {"istableunsorted", (getter)Type260_get_istableunsorted,(setter)Type260_set_istableunsorted, - PyDoc_STR("*float*: Is optical table unsorted format? [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Is optical table unsorted format? [none]\n\n**Required:**\nTrue"), NULL}, {"itoth", (getter)Type260_get_itoth,(setter)Type260_set_itoth, - PyDoc_STR("*float*: Total horizontal irradiation [kJ/hr-m^2]\n\n*Required*: True"), + PyDoc_STR("*float*: Total horizontal irradiation [kJ/hr-m^2]\n\n**Required:**\nTrue"), NULL}, {"latitude", (getter)Type260_get_latitude,(setter)Type260_set_latitude, - PyDoc_STR("*float*: Site latitude\n\n*Required*: True"), + PyDoc_STR("*float*: Site latitude\n\n**Required:**\nTrue"), NULL}, {"longitude", (getter)Type260_get_longitude,(setter)Type260_set_longitude, - PyDoc_STR("*float*: Site longitude\n\n*Required*: True"), + PyDoc_STR("*float*: Site longitude\n\n**Required:**\nTrue"), NULL}, {"ntod", (getter)Type260_get_ntod,(setter)Type260_set_ntod, - PyDoc_STR("*float*: Number of time-of-dispatch periods in the dispatch schedule [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of time-of-dispatch periods in the dispatch schedule [none]\n\n**Required:**\nTrue"), NULL}, {"qdisp", (getter)Type260_get_qdisp,(setter)Type260_set_qdisp, - PyDoc_STR("*sequence*: TOD power output control factors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: TOD power output control factors [none]\n\n**Required:**\nTrue"), NULL}, {"qsf_des", (getter)Type260_get_qsf_des,(setter)Type260_set_qsf_des, - PyDoc_STR("*float*: Solar field thermal production at design [MWt]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - eta_des\n\t - solarm\n\t - w_des\n"), + PyDoc_STR("*float*: Solar field thermal production at design [MWt]\n\n**Required:**\nTrue\n\nThe value of ``qsf_des`` depends on the following variables:\n\n\t - eta_des\n\t - solarm\n\t - w_des\n"), NULL}, {"rad_type", (getter)Type260_get_rad_type,(setter)Type260_set_rad_type, - PyDoc_STR("*float*: Solar resource radiation type (1=DNI,2=horiz.beam,3=tot.horiz) [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Solar resource radiation type (1=DNI,2=horiz.beam,3=tot.horiz) [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"sfhlQ_coefs", (getter)Type260_get_sfhlQ_coefs,(setter)Type260_set_sfhlQ_coefs, - PyDoc_STR("*sequence*: Irr-based solar field thermal loss adjustment coefficients [1/MWt]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Irr-based solar field thermal loss adjustment coefficients [1/MWt]\n\n**Required:**\nTrue"), NULL}, {"sfhlT_coefs", (getter)Type260_get_sfhlT_coefs,(setter)Type260_set_sfhlT_coefs, - PyDoc_STR("*sequence*: Temp.-based solar field thermal loss adjustment coefficients [1/C]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Temp.-based solar field thermal loss adjustment coefficients [1/C]\n\n**Required:**\nTrue"), NULL}, {"sfhlV_coefs", (getter)Type260_get_sfhlV_coefs,(setter)Type260_set_sfhlV_coefs, - PyDoc_STR("*sequence*: Wind-based solar field thermal loss adjustment coefficients [1/(m/s)]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Wind-based solar field thermal loss adjustment coefficients [1/(m/s)]\n\n**Required:**\nTrue"), NULL}, {"solarm", (getter)Type260_get_solarm,(setter)Type260_set_solarm, - PyDoc_STR("*float*: Solar multiple [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - qsf_des\n"), + PyDoc_STR("*float*: Solar multiple [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``solarm``:\n\n\t - qsf_des\n"), NULL}, {"storage_config", (getter)Type260_get_storage_config,(setter)Type260_set_storage_config, - PyDoc_STR("*float*: Thermal storage configuration [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal storage configuration [none]\n\n**Required:**\nTrue"), NULL}, {"tdb", (getter)Type260_get_tdb,(setter)Type260_set_tdb, - PyDoc_STR("*float*: Ambient dry-bulb temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient dry-bulb temperature [C]\n\n**Required:**\nTrue"), NULL}, {"teshlT_coefs", (getter)Type260_get_teshlT_coefs,(setter)Type260_set_teshlT_coefs, - PyDoc_STR("*sequence*: Temp.-based thermal loss adjustment - constant coef. [1/C]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Temp.-based thermal loss adjustment - constant coef. [1/C]\n\n**Required:**\nTrue"), NULL}, {"teshlX_coefs", (getter)Type260_get_teshlX_coefs,(setter)Type260_set_teshlX_coefs, - PyDoc_STR("*sequence*: Charge-based thermal loss adjustment - constant coef. [1/MWhr-stored]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Charge-based thermal loss adjustment - constant coef. [1/MWhr-stored]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)Type260_get_theta_dep,(setter)Type260_set_theta_dep, - PyDoc_STR("*float*: Solar elevation angle at which the solar field begins operating [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar elevation angle at which the solar field begins operating [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)Type260_get_theta_stow,(setter)Type260_set_theta_stow, - PyDoc_STR("*float*: Solar elevation angle at which the solar field stops operating [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar elevation angle at which the solar field stops operating [deg]\n\n**Required:**\nTrue"), NULL}, {"timezone", (getter)Type260_get_timezone,(setter)Type260_set_timezone, - PyDoc_STR("*float*: Site timezone [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Site timezone [hr]\n\n**Required:**\nTrue"), NULL}, {"twb", (getter)Type260_get_twb,(setter)Type260_set_twb, - PyDoc_STR("*float*: Ambient wet-bulb temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient wet-bulb temperature [C]\n\n**Required:**\nTrue"), NULL}, {"vwind", (getter)Type260_get_vwind,(setter)Type260_set_vwind, - PyDoc_STR("*float*: Wind velocity [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Wind velocity [m/s]\n\n**Required:**\nTrue"), NULL}, {"w_des", (getter)Type260_get_w_des,(setter)Type260_set_w_des, - PyDoc_STR("*float*: Design power cycle gross output [MWe]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - qsf_des\n\t - system_capacity\n"), + PyDoc_STR("*float*: Design power cycle gross output [MWe]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``w_des``:\n\n\t - qsf_des\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1472,11 +1472,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2472,12 +2472,11 @@ static PyMethodDef TcsgenericSolarModule_methods[] = { {"new", TcsgenericSolar_new, METH_VARARGS, PyDoc_STR("new() -> TcsgenericSolar")}, {"default", TcsgenericSolar_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcsgenericSolar\n\nUse default attributes\n" - "`config` options:\n\n- \"GenericCSPSystemAllEquityPartnershipFlip\"\n- \"GenericCSPSystemCommercial\"\n- \"GenericCSPSystemLCOECalculator\"\n- \"GenericCSPSystemLeveragedPartnershipFlip\"\n- \"GenericCSPSystemMerchantPlant\"\n- \"GenericCSPSystemNone\"\n- \"GenericCSPSystemSaleLeaseback\"\n- \"GenericCSPSystemSingleOwner\"")}, + PyDoc_STR("default(config) -> TcsgenericSolar\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"GenericCSPSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericCSPSystemCommercial\"*\n\n - *\"GenericCSPSystemLCOECalculator\"*\n\n - *\"GenericCSPSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericCSPSystemMerchantPlant\"*\n\n - *\"GenericCSPSystemNone\"*\n\n - *\"GenericCSPSystemSaleLeaseback\"*\n\n - *\"GenericCSPSystemSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcsgenericSolar_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcsgenericSolar\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcsgenericSolar\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcsgenericSolar_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcsgenericSolar\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcsgenericSolar\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcslinearFresnel.c b/modules/TcslinearFresnel.c index 7b0748fa..b952304b 100644 --- a/modules/TcslinearFresnel.c +++ b/modules/TcslinearFresnel.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ColAz\n"), + PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n**Required:**\nTrue\n\nThe value of ``azimuth`` depends on the following variables:\n\n\t - ColAz\n"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ LinearFresnelr_export(VarGroupObject *self, PyObject *args) static PyMethodDef LinearFresnelr_methods[] = { {"assign", (PyCFunction)LinearFresnelr_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``LinearFresnelr_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``LinearFresnelr_vals = { var: val, ...}``")}, {"replace", (PyCFunction)LinearFresnelr_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``LinearFresnelr_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``LinearFresnelr_vals = { var: val, ...}``")}, {"export", (PyCFunction)LinearFresnelr_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ LinearFresnelr_set_system_capacity(VarGroupObject *self, PyObject *value, void * static PyGetSetDef LinearFresnelr_getset[] = { {"system_capacity", (getter)LinearFresnelr_get_system_capacity,(setter)LinearFresnelr_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - demand_var\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - demand_var\n"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -422,10 +422,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -540,11 +540,11 @@ Solarfield_export(VarGroupObject *self, PyObject *args) static PyMethodDef Solarfield_methods[] = { {"assign", (PyCFunction)Solarfield_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Solarfield_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Solarfield_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Solarfield_vals = { var: val, ...}``")}, {"export", (PyCFunction)Solarfield_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1690,289 +1690,289 @@ Solarfield_set_x_b_des(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Solarfield_getset[] = { {"A_aperture", (getter)Solarfield_get_A_aperture,(setter)Solarfield_set_A_aperture, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Reflective aperture area of the collector module [m^2]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Reflective aperture area of the collector module [m^2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)Solarfield_get_AbsorberMaterial,(setter)Solarfield_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)Solarfield_get_AnnulusGas,(setter)Solarfield_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas type {1=air; 26=Ar; 27=H2} (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas type {1=air; 26=Ar; 27=H2} (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"ColAz", (getter)Solarfield_get_ColAz,(setter)Solarfield_set_ColAz, - PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - azimuth\n"), + PyDoc_STR("*float*: Collector azimuth angle [deg]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ColAz``:\n\n\t - azimuth\n"), NULL}, {"D_2", (getter)Solarfield_get_D_2,(setter)Solarfield_set_D_2, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)Solarfield_get_D_3,(setter)Solarfield_set_D_3, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)Solarfield_get_D_4,(setter)Solarfield_set_D_4, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)Solarfield_get_D_5,(setter)Solarfield_set_D_5, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)Solarfield_get_D_p,(setter)Solarfield_set_D_p, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)Solarfield_get_Design_loss,(setter)Solarfield_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver heat loss at design (4: # field fracs) [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver heat loss at design (4: # field fracs) [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)Solarfield_get_Dirt_HCE,(setter)Solarfield_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Loss due to dirt on the receiver envelope (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Loss due to dirt on the receiver envelope (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)Solarfield_get_EPSILON_4,(setter)Solarfield_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Inner glass envelope emissivities (Pyrex) (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Inner glass envelope emissivities (Pyrex) (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)Solarfield_get_Flow_type,(setter)Solarfield_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)Solarfield_get_GeomEffects,(setter)Solarfield_set_GeomEffects, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)Solarfield_get_GlazingIntactIn,(setter)Solarfield_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The glazing intact flag {true=0; false=1} (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The glazing intact flag {true=0; false=1} (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)Solarfield_get_HCE_FieldFrac,(setter)Solarfield_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The fraction of the field occupied by this HCE type (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The fraction of the field occupied by this HCE type (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"HLCharType", (getter)Solarfield_get_HLCharType,(setter)Solarfield_set_HLCharType, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Flag indicating the heat loss model type {1=poly.; 2=Forristall} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Flag indicating the heat loss model type {1=poly.; 2=Forristall} [none]\n\n**Required:**\nTrue"), NULL}, {"HL_W", (getter)Solarfield_get_HL_W,(setter)Solarfield_set_HL_W, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coef adj wind velocity (0,1,2,3,4 order terms) [1/(m/s)^order]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coef adj wind velocity (0,1,2,3,4 order terms) [1/(m/s)^order]\n\n**Required:**\nTrue"), NULL}, {"HL_dT", (getter)Solarfield_get_HL_dT,(setter)Solarfield_set_HL_dT, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coefficient - HTF temperature (0,1,2,3,4 order terms) [W/m-K^order]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Heat loss coefficient - HTF temperature (0,1,2,3,4 order terms) [W/m-K^order]\n\n**Required:**\nTrue"), NULL}, {"IAM_L", (getter)Solarfield_get_IAM_L,(setter)Solarfield_set_IAM_L, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Longitudinal Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Longitudinal Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n**Required:**\nTrue"), NULL}, {"IAM_T", (getter)Solarfield_get_IAM_T,(setter)Solarfield_set_IAM_T, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Transverse Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Transverse Incident angle modifiers (0,1,2,3,4 order terms) [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn", (getter)Solarfield_get_I_bn,(setter)Solarfield_set_I_bn, - PyDoc_STR("*float*: Beam normal radiation (input kJ/m2-hr) [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Beam normal radiation (input kJ/m2-hr) [W/m2]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)Solarfield_get_I_bn_des,(setter)Solarfield_set_I_bn_des, - PyDoc_STR("*float*: Design point irradiation value [W/m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Design point irradiation value [W/m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``I_bn_des``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"LHV_eff", (getter)Solarfield_get_LHV_eff,(setter)Solarfield_set_LHV_eff, - PyDoc_STR("*float*: Fuel LHV efficiency (0..1) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fuel LHV efficiency (0..1) [none]\n\n**Required:**\nTrue"), NULL}, {"L_col", (getter)Solarfield_get_L_col,(setter)Solarfield_set_L_col, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Active length of the superheater section collector module [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Active length of the superheater section collector module [m]\n\n**Required:**\nTrue"), NULL}, {"OptCharType", (getter)Solarfield_get_OptCharType,(setter)Solarfield_set_OptCharType, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) The optical characterization method [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) The optical characterization method [none]\n\n**Required:**\nTrue"), NULL}, {"PB_fixed_par", (getter)Solarfield_get_PB_fixed_par,(setter)Solarfield_set_PB_fixed_par, - PyDoc_STR("*float*: fraction of rated gross power consumed at all hours of the year [none]\n\n*Required*: True"), + PyDoc_STR("*float*: fraction of rated gross power consumed at all hours of the year [none]\n\n**Required:**\nTrue"), NULL}, {"PB_pump_coef", (getter)Solarfield_get_PB_pump_coef,(setter)Solarfield_set_PB_pump_coef, - PyDoc_STR("*float*: Pumping power required to move 1kg of HTF through power block flow [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power required to move 1kg of HTF through power block flow [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)Solarfield_get_P_a,(setter)Solarfield_set_P_a, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas pressure (4: # field fracs) [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Annulus gas pressure (4: # field fracs) [torr]\n\n**Required:**\nTrue"), NULL}, {"P_amb", (getter)Solarfield_get_P_amb,(setter)Solarfield_set_P_amb, - PyDoc_STR("*float*: Ambient pressure [atm]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient pressure [atm]\n\n**Required:**\nTrue"), NULL}, {"P_turb_des", (getter)Solarfield_get_P_turb_des,(setter)Solarfield_set_P_turb_des, - PyDoc_STR("*float*: Design-point turbine inlet pressure [bar]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - P_boil_des\n"), + PyDoc_STR("*float*: Design-point turbine inlet pressure [bar]\n\n**Required:**\nTrue\n\nThe value of ``P_turb_des`` depends on the following variables:\n\n\t - P_boil_des\n"), NULL}, {"Pipe_hl_coef", (getter)Solarfield_get_Pipe_hl_coef,(setter)Solarfield_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header.. runner pipe.. and non-HCE pipin [W/m2-K]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Loss coefficient from the header.. runner pipe.. and non-HCE pipin [W/m2-K]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Pipe_hl_coef``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"Rough", (getter)Solarfield_get_Rough,(setter)Solarfield_set_Rough, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Roughness of the internal surface [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Roughness of the internal surface [m]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)Solarfield_get_SCA_drives_elec,(setter)Solarfield_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power.. in Watts per SCA drive [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power.. in Watts per SCA drive [W/m2]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)Solarfield_get_Shadowing,(setter)Solarfield_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver bellows shadowing loss factor (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Receiver bellows shadowing loss factor (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"SolarAz_init", (getter)Solarfield_get_SolarAz_init,(setter)Solarfield_set_SolarAz_init, - PyDoc_STR("*float*: Solar azimuth angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar azimuth angle [deg]\n\n**Required:**\nTrue"), NULL}, {"SolarZen", (getter)Solarfield_get_SolarZen,(setter)Solarfield_set_SolarZen, - PyDoc_STR("*float*: Solar zenith angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar zenith angle [deg]\n\n**Required:**\nTrue"), NULL}, {"T_amb_des_sf", (getter)Solarfield_get_T_amb_des_sf,(setter)Solarfield_set_T_amb_des_sf, - PyDoc_STR("*float*: Design-point ambient temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Design-point ambient temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_amb_des_sf``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"T_db", (getter)Solarfield_get_T_db,(setter)Solarfield_set_T_db, - PyDoc_STR("*float*: Dry bulb air temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Dry bulb air temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_dp", (getter)Solarfield_get_T_dp,(setter)Solarfield_set_T_dp, - PyDoc_STR("*float*: The dewpoint temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: The dewpoint temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_fp", (getter)Solarfield_get_T_fp,(setter)Solarfield_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"T_pb_out_init", (getter)Solarfield_get_T_pb_out_init,(setter)Solarfield_set_T_pb_out_init, - PyDoc_STR("*float*: Fluid temperature from the power block [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Fluid temperature from the power block [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)Solarfield_get_Tau_envelope,(setter)Solarfield_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope transmittance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope transmittance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)Solarfield_get_TrackingError,(setter)Solarfield_set_TrackingError, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"V_wind", (getter)Solarfield_get_V_wind,(setter)Solarfield_set_V_wind, - PyDoc_STR("*float*: Ambient windspeed [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient windspeed [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_wind_max", (getter)Solarfield_get_V_wind_max,(setter)Solarfield_set_V_wind_max, - PyDoc_STR("*float*: Maximum allowable wind velocity before safety stow [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum allowable wind velocity before safety stow [m/s]\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)Solarfield_get_alpha_abs,(setter)Solarfield_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber absorptance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Absorber absorptance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)Solarfield_get_alpha_env,(setter)Solarfield_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope absorptance (4: # field fracs) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) Envelope absorptance (4: # field fracs) [none]\n\n**Required:**\nTrue"), NULL}, {"aux_array", (getter)Solarfield_get_aux_array,(setter)Solarfield_set_aux_array, - PyDoc_STR("*sequence*: Aux_parVal, Aux_parPF, Aux_par0, Aux_par1, Aux_par2 [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Aux_parVal, Aux_parPF, Aux_par0, Aux_par1, Aux_par2 [-]\n\n**Required:**\nTrue"), NULL}, {"b_OpticalTable", (getter)Solarfield_get_b_OpticalTable,(setter)Solarfield_set_b_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE1", (getter)Solarfield_get_b_eps_HCE1,(setter)Solarfield_set_b_eps_HCE1, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE2", (getter)Solarfield_get_b_eps_HCE2,(setter)Solarfield_set_b_eps_HCE2, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE3", (getter)Solarfield_get_b_eps_HCE3,(setter)Solarfield_set_b_eps_HCE3, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"b_eps_HCE4", (getter)Solarfield_get_b_eps_HCE4,(setter)Solarfield_set_b_eps_HCE4, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)Solarfield_get_bop_array,(setter)Solarfield_set_bop_array, - PyDoc_STR("*sequence*: BOP_parVal, BOP_parPF, BOP_par0, BOP_par1, BOP_par2 [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: BOP_parVal, BOP_parPF, BOP_par0, BOP_par1, BOP_par2 [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_cutoff_frac", (getter)Solarfield_get_cycle_cutoff_frac,(setter)Solarfield_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [none]\n\n**Required:**\nTrue"), NULL}, {"cycle_max_fraction", (getter)Solarfield_get_cycle_max_fraction,(setter)Solarfield_set_cycle_max_fraction, - PyDoc_STR("*float*: Maximum turbine over design operation fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction [none]\n\n**Required:**\nTrue"), NULL}, {"dirt_mirror", (getter)Solarfield_get_dirt_mirror,(setter)Solarfield_set_dirt_mirror, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"dnifc", (getter)Solarfield_get_dnifc,(setter)Solarfield_set_dnifc, - PyDoc_STR("*float*: Forecast DNI [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Forecast DNI [W/m2]\n\n**Required:**\nTrue"), NULL}, {"e_startup", (getter)Solarfield_get_e_startup,(setter)Solarfield_set_e_startup, - PyDoc_STR("*float*: Thermal inertia contribution per sq meter of solar field [kJ/K-m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal inertia contribution per sq meter of solar field [kJ/K-m2]\n\n**Required:**\nTrue"), NULL}, {"error", (getter)Solarfield_get_error,(setter)Solarfield_set_error, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)Solarfield_get_eta_pump,(setter)Solarfield_set_eta_pump, - PyDoc_STR("*float*: Feedwater pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Feedwater pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"fP_boil_to_sh", (getter)Solarfield_get_fP_boil_to_sh,(setter)Solarfield_set_fP_boil_to_sh, - PyDoc_STR("*float*: Design-point pressure drop between the boiler and superheater frac [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point pressure drop between the boiler and superheater frac [none]\n\n**Required:**\nTrue"), NULL}, {"fP_hdr_c", (getter)Solarfield_get_fP_hdr_c,(setter)Solarfield_set_fP_hdr_c, - PyDoc_STR("*float*: Average design-point cold header pressure drop fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Average design-point cold header pressure drop fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fP_hdr_h", (getter)Solarfield_get_fP_hdr_h,(setter)Solarfield_set_fP_hdr_h, - PyDoc_STR("*float*: Average design-point hot header pressure drop fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Average design-point hot header pressure drop fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fP_sf_boil", (getter)Solarfield_get_fP_sf_boil,(setter)Solarfield_set_fP_sf_boil, - PyDoc_STR("*float*: Design-point pressure drop across the solar field boiler fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point pressure drop across the solar field boiler fraction [none]\n\n**Required:**\nTrue"), NULL}, {"fP_sf_sh", (getter)Solarfield_get_fP_sf_sh,(setter)Solarfield_set_fP_sf_sh, - PyDoc_STR("*float*: Design-point pressure drop across the solar field superheater frac [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point pressure drop across the solar field superheater frac [none]\n\n**Required:**\nTrue"), NULL}, {"ffrac", (getter)Solarfield_get_ffrac,(setter)Solarfield_set_ffrac, - PyDoc_STR("*sequence*: Fossil dispatch logic - TOU periods [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fossil dispatch logic - TOU periods [none]\n\n**Required:**\nTrue"), NULL}, {"fossil_mode", (getter)Solarfield_get_fossil_mode,(setter)Solarfield_set_fossil_mode, - PyDoc_STR("*float*: Operation mode for the fossil backup {1=Normal,2=supp,3=toppin} [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Operation mode for the fossil backup {1=Normal,2=supp,3=toppin} [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"is_multgeom", (getter)Solarfield_get_is_multgeom,(setter)Solarfield_set_is_multgeom, - PyDoc_STR("*float*: Does the superheater have a different geometry from the boiler {1=yes} [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Does the superheater have a different geometry from the boiler {1=yes} [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"is_oncethru", (getter)Solarfield_get_is_oncethru,(setter)Solarfield_set_is_oncethru, - PyDoc_STR("*float*: Flag indicating whether flow is once through with superheat [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Flag indicating whether flow is once through with superheat [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"is_sh", (getter)Solarfield_get_is_sh,(setter)Solarfield_set_is_sh, - PyDoc_STR("*float*: Does the solar field include a superheating section [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Does the solar field include a superheating section [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"latitude", (getter)Solarfield_get_latitude,(setter)Solarfield_set_latitude, - PyDoc_STR("*float*: Site latitude resource page [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Site latitude resource page [deg]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htf_ref", (getter)Solarfield_get_m_dot_htf_ref,(setter)Solarfield_set_m_dot_htf_ref, - PyDoc_STR("*float*: Reference HTF flow rate at design conditions [kg/hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference HTF flow rate at design conditions [kg/hr]\n\n**Required:**\nTrue"), NULL}, {"m_dot_min", (getter)Solarfield_get_m_dot_min,(setter)Solarfield_set_m_dot_min, - PyDoc_STR("*float*: Minimum loop flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_pb_demand", (getter)Solarfield_get_m_pb_demand,(setter)Solarfield_set_m_pb_demand, - PyDoc_STR("*float*: Demand htf flow from the power block [kg/hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Demand htf flow from the power block [kg/hr]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)Solarfield_get_nLoops,(setter)Solarfield_set_nLoops, - PyDoc_STR("*float*: Number of loops [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - q_max_aux\n\t - solarm\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nModBoil\n\t - nModSH\n"), + PyDoc_STR("*float*: Number of loops [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nLoops``:\n\n\t - q_max_aux\n\t - solarm\n\n\nThe value of ``nLoops`` depends on the following variables:\n\n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nModBoil\n\t - nModSH\n"), NULL}, {"nModBoil", (getter)Solarfield_get_nModBoil,(setter)Solarfield_set_nModBoil, - PyDoc_STR("*float*: Number of modules in the boiler section [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Number of modules in the boiler section [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nModBoil``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"nModSH", (getter)Solarfield_get_nModSH,(setter)Solarfield_set_nModSH, - PyDoc_STR("*float*: Number of modules in the superheater section [none]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Number of modules in the superheater section [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``nModSH``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"q_max_aux", (getter)Solarfield_get_q_max_aux,(setter)Solarfield_set_q_max_aux, - PyDoc_STR("*float*: Maximum heat rate of the auxiliary heater [MW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nLoops\n\t - nModBoil\n\t - nModSH\n"), + PyDoc_STR("*float*: Maximum heat rate of the auxiliary heater [MW]\n\n**Required:**\nTrue\n\nThe value of ``q_max_aux`` depends on the following variables:\n\n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nLoops\n\t - nModBoil\n\t - nModSH\n"), NULL}, {"q_pb_des", (getter)Solarfield_get_q_pb_des,(setter)Solarfield_set_q_pb_des, - PyDoc_STR("*float*: Design heat input to the power block [MW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - demand_var\n\t - eta_ref\n"), + PyDoc_STR("*float*: Design heat input to the power block [MW]\n\n**Required:**\nTrue\n\nThe value of ``q_pb_des`` depends on the following variables:\n\n\t - demand_var\n\t - eta_ref\n"), NULL}, {"q_sby_frac", (getter)Solarfield_get_q_sby_frac,(setter)Solarfield_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby [none]\n\n**Required:**\nTrue"), NULL}, {"rho_mirror_clean", (getter)Solarfield_get_rho_mirror_clean,(setter)Solarfield_set_rho_mirror_clean, - PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (boiler, SH) User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"sh_OpticalTable", (getter)Solarfield_get_sh_OpticalTable,(setter)Solarfield_set_sh_OpticalTable, - PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Values of the optical efficiency table [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE1", (getter)Solarfield_get_sh_eps_HCE1,(setter)Solarfield_set_sh_eps_HCE1, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE2", (getter)Solarfield_get_sh_eps_HCE2,(setter)Solarfield_set_sh_eps_HCE2, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE3", (getter)Solarfield_get_sh_eps_HCE3,(setter)Solarfield_set_sh_eps_HCE3, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"sh_eps_HCE4", (getter)Solarfield_get_sh_eps_HCE4,(setter)Solarfield_set_sh_eps_HCE4, - PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: (temperature) Absorber emittance (eps) [none]\n\n**Required:**\nTrue"), NULL}, {"shift", (getter)Solarfield_get_shift,(setter)Solarfield_set_shift, - PyDoc_STR("*float*: Shift in longitude from local standard meridian [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Shift in longitude from local standard meridian [deg]\n\n**Required:**\nTrue"), NULL}, {"solarm", (getter)Solarfield_get_solarm,(setter)Solarfield_set_solarm, - PyDoc_STR("*float*: Solar multiple [none]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nLoops\n\t - nModBoil\n\t - nModSH\n"), + PyDoc_STR("*float*: Solar multiple [none]\n\n**Required:**\nTrue\n\nThe value of ``solarm`` depends on the following variables:\n\n\t - I_bn_des\n\t - Pipe_hl_coef\n\t - T_amb_des_sf\n\t - T_cold_ref\n\t - T_hot\n\t - demand_var\n\t - eta_ref\n\t - nLoops\n\t - nModBoil\n\t - nModSH\n"), NULL}, {"t_sby", (getter)Solarfield_get_t_sby,(setter)Solarfield_set_t_sby, - PyDoc_STR("*float*: Low resource standby period [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Low resource standby period [hr]\n\n**Required:**\nTrue"), NULL}, {"tes_hours", (getter)Solarfield_get_tes_hours,(setter)Solarfield_set_tes_hours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)Solarfield_get_theta_dep,(setter)Solarfield_set_theta_dep, - PyDoc_STR("*float*: deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)Solarfield_get_theta_stow,(setter)Solarfield_set_theta_stow, - PyDoc_STR("*float*: stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"x_b_des", (getter)Solarfield_get_x_b_des,(setter)Solarfield_set_x_b_des, - PyDoc_STR("*float*: Design point boiler outlet steam quality [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Design point boiler outlet steam quality [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2087,11 +2087,11 @@ Heliostat_export(VarGroupObject *self, PyObject *args) static PyMethodDef Heliostat_methods[] = { {"assign", (PyCFunction)Heliostat_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Heliostat_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Heliostat_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Heliostat_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Heliostat_vals = { var: val, ...}``")}, {"export", (PyCFunction)Heliostat_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2121,10 +2121,10 @@ Heliostat_set_csp_lf_sf_water_per_wash(VarGroupObject *self, PyObject *value, vo static PyGetSetDef Heliostat_getset[] = { {"csp_lf_sf_washes_per_year", (getter)Heliostat_get_csp_lf_sf_washes_per_year,(setter)Heliostat_set_csp_lf_sf_washes_per_year, - PyDoc_STR("*float*: Mirror washing frequency\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency\n\n**Required:**\nTrue"), NULL}, {"csp_lf_sf_water_per_wash", (getter)Heliostat_get_csp_lf_sf_water_per_wash,(setter)Heliostat_set_csp_lf_sf_water_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2239,11 +2239,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2621,97 +2621,97 @@ Powerblock_set_startup_time(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef Powerblock_getset[] = { {"CT", (getter)Powerblock_get_CT,(setter)Powerblock_set_CT, - PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"F_wc", (getter)Powerblock_get_F_wc,(setter)Powerblock_set_F_wc, - PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n**Required:**\nTrue"), NULL}, {"P_amb_pwb", (getter)Powerblock_get_P_amb_pwb,(setter)Powerblock_set_P_amb_pwb, - PyDoc_STR("*float*: Ambient pressure [atm]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient pressure [atm]\n\n**Required:**\nTrue"), NULL}, {"P_boil_des", (getter)Powerblock_get_P_boil_des,(setter)Powerblock_set_P_boil_des, - PyDoc_STR("*float*: Boiler operating pressure @ design [bar]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - P_turb_des\n"), + PyDoc_STR("*float*: Boiler operating pressure @ design [bar]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``P_boil_des``:\n\n\t - P_turb_des\n"), NULL}, {"P_cond_min", (getter)Powerblock_get_P_cond_min,(setter)Powerblock_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nTrue"), NULL}, {"P_cond_ratio", (getter)Powerblock_get_P_cond_ratio,(setter)Powerblock_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n**Required:**\nTrue"), NULL}, {"P_rh_ref", (getter)Powerblock_get_P_rh_ref,(setter)Powerblock_set_P_rh_ref, - PyDoc_STR("*float*: Reheater operating pressure at design [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Reheater operating pressure at design [bar]\n\n**Required:**\nTrue"), NULL}, {"T_ITD_des", (getter)Powerblock_get_T_ITD_des,(setter)Powerblock_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nTrue"), NULL}, {"T_amb_des", (getter)Powerblock_get_T_amb_des,(setter)Powerblock_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nTrue"), NULL}, {"T_approach", (getter)Powerblock_get_T_approach,(setter)Powerblock_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_cold_ref", (getter)Powerblock_get_T_cold_ref,(setter)Powerblock_set_T_cold_ref, - PyDoc_STR("*float*: Reference HTF outlet temperature at design [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Reference HTF outlet temperature at design [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_cold_ref``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"T_db_pwb", (getter)Powerblock_get_T_db_pwb,(setter)Powerblock_set_T_db_pwb, - PyDoc_STR("*float*: Ambient dry bulb temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient dry bulb temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_hot", (getter)Powerblock_get_T_hot,(setter)Powerblock_set_T_hot, - PyDoc_STR("*float*: Hot HTF inlet temperature, from storage tank [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), + PyDoc_STR("*float*: Hot HTF inlet temperature, from storage tank [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``T_hot``:\n\n\t - nLoops\n\t - q_max_aux\n\t - solarm\n"), NULL}, {"T_wb", (getter)Powerblock_get_T_wb,(setter)Powerblock_set_T_wb, - PyDoc_STR("*float*: Ambient wet bulb temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Ambient wet bulb temperature [C]\n\n**Required:**\nTrue"), NULL}, {"dT_cw_ref", (getter)Powerblock_get_dT_cw_ref,(setter)Powerblock_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nTrue"), NULL}, {"demand_var", (getter)Powerblock_get_demand_var,(setter)Powerblock_set_demand_var, - PyDoc_STR("*float*: Control signal indicating operational mode [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - q_pb_des\n\t - solarm\n\t - system_capacity\n"), + PyDoc_STR("*float*: Control signal indicating operational mode [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``demand_var``:\n\n\t - nLoops\n\t - q_max_aux\n\t - q_pb_des\n\t - solarm\n\t - system_capacity\n"), NULL}, {"dp_b", (getter)Powerblock_get_dp_b,(setter)Powerblock_set_dp_b, - PyDoc_STR("*float*: Pressure drop in boiler [Pa]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop in boiler [Pa]\n\n**Required:**\nTrue"), NULL}, {"dp_rh", (getter)Powerblock_get_dp_rh,(setter)Powerblock_set_dp_rh, - PyDoc_STR("*float*: Pressure drop in reheater [Pa]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop in reheater [Pa]\n\n**Required:**\nTrue"), NULL}, {"dp_sh", (getter)Powerblock_get_dp_sh,(setter)Powerblock_set_dp_sh, - PyDoc_STR("*float*: Pressure drop in superheater [Pa]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop in superheater [Pa]\n\n**Required:**\nTrue"), NULL}, {"eta_ref", (getter)Powerblock_get_eta_ref,(setter)Powerblock_set_eta_ref, - PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - nLoops\n\t - q_max_aux\n\t - q_pb_des\n\t - solarm\n"), + PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``eta_ref``:\n\n\t - nLoops\n\t - q_max_aux\n\t - q_pb_des\n\t - solarm\n"), NULL}, {"f_recSU", (getter)Powerblock_get_f_recSU,(setter)Powerblock_set_f_recSU, - PyDoc_STR("*float*: Fraction powerblock can run due to receiver startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction powerblock can run due to receiver startup [none]\n\n**Required:**\nTrue"), NULL}, {"m_dot_st", (getter)Powerblock_get_m_dot_st,(setter)Powerblock_set_m_dot_st, - PyDoc_STR("*float*: HTF mass flow rate [kg/hr]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF mass flow rate [kg/hr]\n\n**Required:**\nTrue"), NULL}, {"n_pl_inc", (getter)Powerblock_get_n_pl_inc,(setter)Powerblock_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"pb_bd_frac", (getter)Powerblock_get_pb_bd_frac,(setter)Powerblock_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n**Required:**\nTrue"), NULL}, {"pc_mode", (getter)Powerblock_get_pc_mode,(setter)Powerblock_set_pc_mode, - PyDoc_STR("*float*: Cycle part load control, from plant controller [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Cycle part load control, from plant controller [none]\n\n**Required:**\nTrue"), NULL}, {"q_sby_frac", (getter)Powerblock_get_q_sby_frac,(setter)Powerblock_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"relhum", (getter)Powerblock_get_relhum,(setter)Powerblock_set_relhum, - PyDoc_STR("*float*: Relative humidity of the ambient air [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Relative humidity of the ambient air [none]\n\n**Required:**\nTrue"), NULL}, {"rh_frac_ref", (getter)Powerblock_get_rh_frac_ref,(setter)Powerblock_set_rh_frac_ref, - PyDoc_STR("*float*: Reheater flow fraction at design [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Reheater flow fraction at design [none]\n\n**Required:**\nTrue"), NULL}, {"standby_control", (getter)Powerblock_get_standby_control,(setter)Powerblock_set_standby_control, - PyDoc_STR("*float*: Control signal indicating standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Control signal indicating standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)Powerblock_get_startup_frac,(setter)Powerblock_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)Powerblock_get_startup_time,(setter)Powerblock_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2826,11 +2826,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3735,12 +3735,11 @@ static PyMethodDef TcslinearFresnelModule_methods[] = { {"new", TcslinearFresnel_new, METH_VARARGS, PyDoc_STR("new() -> TcslinearFresnel")}, {"default", TcslinearFresnel_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcslinearFresnel\n\nUse default attributes\n" - "`config` options:\n\n- \"DSLFAllEquityPartnershipFlip\"\n- \"DSLFCommercial\"\n- \"DSLFLCOECalculator\"\n- \"DSLFLeveragedPartnershipFlip\"\n- \"DSLFMerchantPlant\"\n- \"DSLFNone\"\n- \"DSLFSaleLeaseback\"\n- \"DSLFSingleOwner\"")}, + PyDoc_STR("default(config) -> TcslinearFresnel\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"DSLFAllEquityPartnershipFlip\"*\n\n - *\"DSLFCommercial\"*\n\n - *\"DSLFLCOECalculator\"*\n\n - *\"DSLFLeveragedPartnershipFlip\"*\n\n - *\"DSLFMerchantPlant\"*\n\n - *\"DSLFNone\"*\n\n - *\"DSLFSaleLeaseback\"*\n\n - *\"DSLFSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcslinearFresnel_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcslinearFresnel\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcslinearFresnel\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcslinearFresnel_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcslinearFresnel\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcslinearFresnel\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcsmoltenSalt.c b/modules/TcsmoltenSalt.c index edfd2765..5ac7a958 100644 --- a/modules/TcsmoltenSalt.c +++ b/modules/TcsmoltenSalt.c @@ -69,11 +69,11 @@ SolarResource_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarResource_methods[] = { {"assign", (PyCFunction)SolarResource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarResource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarResource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarResource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarResource_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarResource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ SolarResource_set_solar_resource_file(VarGroupObject *self, PyObject *value, voi static PyGetSetDef SolarResource_getset[] = { {"solar_resource_data", (getter)SolarResource_get_solar_resource_data,(setter)SolarResource_set_solar_resource_data, - PyDoc_STR("*dict*: Weather resource data in memory\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather resource data in memory\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"solar_resource_file", (getter)SolarResource_get_solar_resource_file,(setter)SolarResource_set_solar_resource_file, - PyDoc_STR("*str*: Local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: False"), + PyDoc_STR("*str*: Local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ SystemControl_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemControl_methods[] = { {"assign", (PyCFunction)SystemControl_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemControl_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemControl_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemControl_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemControl_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -807,148 +807,148 @@ SystemControl_set_wlim_series(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef SystemControl_getset[] = { {"F_wc", (getter)SystemControl_get_F_wc,(setter)SystemControl_set_F_wc, - PyDoc_STR("*sequence*: TOU array of fractions indicating wet cooling share for hybrid cooling\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*sequence*: TOU array of fractions indicating wet cooling share for hybrid cooling\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"ampl_data_dir", (getter)SystemControl_get_ampl_data_dir,(setter)SystemControl_set_ampl_data_dir, - PyDoc_STR("*str*: AMPL data file directory\n\n*Required*: If not provided, assumed to be ''"), + PyDoc_STR("*str*: AMPL data file directory\n\n**Required:**\nFalse. Automatically set to '' if not assigned explicitly or loaded from defaults."), NULL}, {"ampl_exec_call", (getter)SystemControl_get_ampl_exec_call,(setter)SystemControl_set_ampl_exec_call, - PyDoc_STR("*str*: System command to run AMPL code\n\n*Required*: If not provided, assumed to be 'ampl sdk_solution.run'"), + PyDoc_STR("*str*: System command to run AMPL code\n\n**Required:**\nFalse. Automatically set to 'ampl sdk_solution.run' if not assigned explicitly or loaded from defaults."), NULL}, {"aux_par", (getter)SystemControl_get_aux_par,(setter)SystemControl_set_aux_par, - PyDoc_STR("*float*: Aux heater, boiler parasitic [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater, boiler parasitic [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"aux_par_0", (getter)SystemControl_get_aux_par_0,(setter)SystemControl_set_aux_par_0, - PyDoc_STR("*float*: Aux heater, boiler parasitic - constant coefficient\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater, boiler parasitic - constant coefficient\n\n**Required:**\nTrue"), NULL}, {"aux_par_1", (getter)SystemControl_get_aux_par_1,(setter)SystemControl_set_aux_par_1, - PyDoc_STR("*float*: Aux heater, boiler parasitic - linear coefficient\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater, boiler parasitic - linear coefficient\n\n**Required:**\nTrue"), NULL}, {"aux_par_2", (getter)SystemControl_get_aux_par_2,(setter)SystemControl_set_aux_par_2, - PyDoc_STR("*float*: Aux heater, boiler parasitic - quadratic coefficient\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater, boiler parasitic - quadratic coefficient\n\n**Required:**\nTrue"), NULL}, {"aux_par_f", (getter)SystemControl_get_aux_par_f,(setter)SystemControl_set_aux_par_f, - PyDoc_STR("*float*: Aux heater, boiler parasitic - multiplying fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater, boiler parasitic - multiplying fraction\n\n**Required:**\nTrue"), NULL}, {"bop_par", (getter)SystemControl_get_bop_par,(setter)SystemControl_set_bop_par, - PyDoc_STR("*float*: Balance of plant parasitic power fraction [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"bop_par_0", (getter)SystemControl_get_bop_par_0,(setter)SystemControl_set_bop_par_0, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - const coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - const coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_1", (getter)SystemControl_get_bop_par_1,(setter)SystemControl_set_bop_par_1, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - linear coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - linear coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_2", (getter)SystemControl_get_bop_par_2,(setter)SystemControl_set_bop_par_2, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - quadratic coeff\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - quadratic coeff\n\n**Required:**\nTrue"), NULL}, {"bop_par_f", (getter)SystemControl_get_bop_par_f,(setter)SystemControl_set_bop_par_f, - PyDoc_STR("*float*: Balance of plant parasitic power fraction - mult frac\n\n*Required*: True"), + PyDoc_STR("*float*: Balance of plant parasitic power fraction - mult frac\n\n**Required:**\nTrue"), NULL}, {"disp_csu_cost", (getter)SystemControl_get_disp_csu_cost,(setter)SystemControl_set_disp_csu_cost, - PyDoc_STR("*float*: Cycle startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Cycle startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_frequency", (getter)SystemControl_get_disp_frequency,(setter)SystemControl_set_disp_frequency, - PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_horizon", (getter)SystemControl_get_disp_horizon,(setter)SystemControl_set_disp_horizon, - PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_inventory_incentive", (getter)SystemControl_get_disp_inventory_incentive,(setter)SystemControl_set_disp_inventory_incentive, - PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_max_iter", (getter)SystemControl_get_disp_max_iter,(setter)SystemControl_set_disp_max_iter, - PyDoc_STR("*float*: Max number of dispatch optimization iterations\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max number of dispatch optimization iterations\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_mip_gap", (getter)SystemControl_get_disp_mip_gap,(setter)SystemControl_set_disp_mip_gap, - PyDoc_STR("*float*: Dispatch optimization solution tolerance\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch optimization solution tolerance\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_pen_delta_w", (getter)SystemControl_get_disp_pen_delta_w,(setter)SystemControl_set_disp_pen_delta_w, - PyDoc_STR("*float*: Dispatch cycle production change penalty [$/kWe-change]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch cycle production change penalty [$/kWe-change]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_reporting", (getter)SystemControl_get_disp_reporting,(setter)SystemControl_set_disp_reporting, - PyDoc_STR("*float*: Dispatch optimization reporting level\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization reporting level\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_rsu_cost", (getter)SystemControl_get_disp_rsu_cost,(setter)SystemControl_set_disp_rsu_cost, - PyDoc_STR("*float*: Receiver startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Receiver startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_spec_bb", (getter)SystemControl_get_disp_spec_bb,(setter)SystemControl_set_disp_spec_bb, - PyDoc_STR("*float*: Dispatch optimization B&B heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization B&B heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_presolve", (getter)SystemControl_get_disp_spec_presolve,(setter)SystemControl_set_disp_spec_presolve, - PyDoc_STR("*float*: Dispatch optimization presolve heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization presolve heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_scaling", (getter)SystemControl_get_disp_spec_scaling,(setter)SystemControl_set_disp_spec_scaling, - PyDoc_STR("*float*: Dispatch optimization scaling heuristic\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization scaling heuristic\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_steps_per_hour", (getter)SystemControl_get_disp_steps_per_hour,(setter)SystemControl_set_disp_steps_per_hour, - PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_time_weighting", (getter)SystemControl_get_disp_time_weighting,(setter)SystemControl_set_disp_time_weighting, - PyDoc_STR("*float*: Dispatch optimization future time discounting factor\n\n*Required*: If not provided, assumed to be 0.99"), + PyDoc_STR("*float*: Dispatch optimization future time discounting factor\n\n**Required:**\nFalse. Automatically set to 0.99 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_timeout", (getter)SystemControl_get_disp_timeout,(setter)SystemControl_set_disp_timeout, - PyDoc_STR("*float*: Max dispatch optimization solve duration [s]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max dispatch optimization solve duration [s]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"dispatch_series", (getter)SystemControl_get_dispatch_series,(setter)SystemControl_set_dispatch_series, PyDoc_STR("*sequence*: Time series dispatch factors"), NULL}, {"f_turb_tou_periods", (getter)SystemControl_get_f_turb_tou_periods,(setter)SystemControl_set_f_turb_tou_periods, - PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction\n\n**Required:**\nTrue"), NULL}, {"is_ampl_engine", (getter)SystemControl_get_is_ampl_engine,(setter)SystemControl_set_is_ampl_engine, - PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch", (getter)SystemControl_get_is_dispatch,(setter)SystemControl_set_is_dispatch, - PyDoc_STR("*float*: Allow dispatch optimization?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allow dispatch optimization?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch_series", (getter)SystemControl_get_is_dispatch_series,(setter)SystemControl_set_is_dispatch_series, - PyDoc_STR("*float*: Use time-series dispatch factors\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use time-series dispatch factors\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_parallel_htr", (getter)SystemControl_get_is_parallel_htr,(setter)SystemControl_set_is_parallel_htr, - PyDoc_STR("*float*: Does plant include a HTF heater parallel to solar field?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Does plant include a HTF heater parallel to solar field?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_tod_pc_target_also_pc_max", (getter)SystemControl_get_is_tod_pc_target_also_pc_max,(setter)SystemControl_set_is_tod_pc_target_also_pc_max, - PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_wlim_series", (getter)SystemControl_get_is_wlim_series,(setter)SystemControl_set_is_wlim_series, - PyDoc_STR("*float*: Use time-series net electricity generation limits\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use time-series net electricity generation limits\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_write_ampl_dat", (getter)SystemControl_get_is_write_ampl_dat,(setter)SystemControl_set_is_write_ampl_dat, - PyDoc_STR("*float*: Write AMPL data files for dispatch run\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Write AMPL data files for dispatch run\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"pb_fixed_par", (getter)SystemControl_get_pb_fixed_par,(setter)SystemControl_set_pb_fixed_par, - PyDoc_STR("*float*: Fixed parasitic load - runs at all times [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed parasitic load - runs at all times [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"q_rec_heattrace", (getter)SystemControl_get_q_rec_heattrace,(setter)SystemControl_set_q_rec_heattrace, - PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_rec_standby", (getter)SystemControl_get_q_rec_standby,(setter)SystemControl_set_q_rec_standby, - PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n*Required*: If not provided, assumed to be 9e99"), + PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n**Required:**\nFalse. Automatically set to 9e99 if not assigned explicitly or loaded from defaults."), NULL}, {"time_start", (getter)SystemControl_get_time_start,(setter)SystemControl_set_time_start, - PyDoc_STR("*float*: Simulation start time [s]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Simulation start time [s]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"time_steps_per_hour", (getter)SystemControl_get_time_steps_per_hour,(setter)SystemControl_set_time_steps_per_hour, - PyDoc_STR("*float*: Number of simulation time steps per hour\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Number of simulation time steps per hour\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"time_stop", (getter)SystemControl_get_time_stop,(setter)SystemControl_set_time_stop, - PyDoc_STR("*float*: Simulation stop time [s]\n\n*Required*: If not provided, assumed to be 31536000"), + PyDoc_STR("*float*: Simulation stop time [s]\n\n**Required:**\nFalse. Automatically set to 31536000 if not assigned explicitly or loaded from defaults."), NULL}, {"timestep_load_fractions", (getter)SystemControl_get_timestep_load_fractions,(setter)SystemControl_set_timestep_load_fractions, - PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n*Required*: False"), + PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"vacuum_arrays", (getter)SystemControl_get_vacuum_arrays,(setter)SystemControl_set_vacuum_arrays, - PyDoc_STR("*float*: Allocate arrays for only the required number of steps\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allocate arrays for only the required number of steps\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"weekday_schedule", (getter)SystemControl_get_weekday_schedule,(setter)SystemControl_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)SystemControl_get_weekend_schedule,(setter)SystemControl_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule\n\n**Required:**\nTrue"), NULL}, {"wlim_series", (getter)SystemControl_get_wlim_series,(setter)SystemControl_set_wlim_series, - PyDoc_STR("*sequence*: Time series net electicity generation limits [kWe]\n\n*Required*: True if is_wlim_series=1"), + PyDoc_STR("*sequence*: Time series net electicity generation limits [kWe]\n\n**Required:**\nRequired if is_wlim_series=1"), NULL}, {NULL} /* Sentinel */ }; @@ -1063,11 +1063,11 @@ FinancialModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialModel_methods[] = { {"assign", (PyCFunction)FinancialModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1085,7 +1085,7 @@ FinancialModel_set_csp_financial_model(VarGroupObject *self, PyObject *value, vo static PyGetSetDef FinancialModel_getset[] = { {"csp_financial_model", (getter)FinancialModel_get_csp_financial_model,(setter)FinancialModel_set_csp_financial_model, - PyDoc_STR("*float*: [1-8]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: [1-8]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1200,11 +1200,11 @@ TimeOfDeliveryFactors_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDeliveryFactors_methods[] = { {"assign", (PyCFunction)TimeOfDeliveryFactors_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDeliveryFactors_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDeliveryFactors_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDeliveryFactors_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1366,43 +1366,43 @@ TimeOfDeliveryFactors_set_ppa_multiplier_model(VarGroupObject *self, PyObject *v static PyGetSetDef TimeOfDeliveryFactors_getset[] = { {"dispatch_factor1", (getter)TimeOfDeliveryFactors_get_dispatch_factor1,(setter)TimeOfDeliveryFactors_set_dispatch_factor1, - PyDoc_STR("*float*: Dispatch payment factor 1\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 1\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor2", (getter)TimeOfDeliveryFactors_get_dispatch_factor2,(setter)TimeOfDeliveryFactors_set_dispatch_factor2, - PyDoc_STR("*float*: Dispatch payment factor 2\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 2\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor3", (getter)TimeOfDeliveryFactors_get_dispatch_factor3,(setter)TimeOfDeliveryFactors_set_dispatch_factor3, - PyDoc_STR("*float*: Dispatch payment factor 3\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 3\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor4", (getter)TimeOfDeliveryFactors_get_dispatch_factor4,(setter)TimeOfDeliveryFactors_set_dispatch_factor4, - PyDoc_STR("*float*: Dispatch payment factor 4\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 4\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor5", (getter)TimeOfDeliveryFactors_get_dispatch_factor5,(setter)TimeOfDeliveryFactors_set_dispatch_factor5, - PyDoc_STR("*float*: Dispatch payment factor 5\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 5\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor6", (getter)TimeOfDeliveryFactors_get_dispatch_factor6,(setter)TimeOfDeliveryFactors_set_dispatch_factor6, - PyDoc_STR("*float*: Dispatch payment factor 6\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 6\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor7", (getter)TimeOfDeliveryFactors_get_dispatch_factor7,(setter)TimeOfDeliveryFactors_set_dispatch_factor7, - PyDoc_STR("*float*: Dispatch payment factor 7\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 7\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor8", (getter)TimeOfDeliveryFactors_get_dispatch_factor8,(setter)TimeOfDeliveryFactors_set_dispatch_factor8, - PyDoc_STR("*float*: Dispatch payment factor 8\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 8\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor9", (getter)TimeOfDeliveryFactors_get_dispatch_factor9,(setter)TimeOfDeliveryFactors_set_dispatch_factor9, - PyDoc_STR("*float*: Dispatch payment factor 9\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 9\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factors_ts", (getter)TimeOfDeliveryFactors_get_dispatch_factors_ts,(setter)TimeOfDeliveryFactors_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_sched_weekday", (getter)TimeOfDeliveryFactors_get_dispatch_sched_weekday,(setter)TimeOfDeliveryFactors_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: PPA pricing weekday schedule, 12x24\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: PPA pricing weekday schedule, 12x24\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_sched_weekend", (getter)TimeOfDeliveryFactors_get_dispatch_sched_weekend,(setter)TimeOfDeliveryFactors_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: PPA pricing weekend schedule, 12x24\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: PPA pricing weekend schedule, 12x24\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDeliveryFactors_get_ppa_multiplier_model,(setter)TimeOfDeliveryFactors_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model 0: dispatch factors dispatch_factorX, 1: hourly multipliers dispatch_factors_ts [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model 0: dispatch factors dispatch_factorX, 1: hourly multipliers dispatch_factors_ts [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1517,11 +1517,11 @@ HeliostatField_export(VarGroupObject *self, PyObject *args) static PyMethodDef HeliostatField_methods[] = { {"assign", (PyCFunction)HeliostatField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``HeliostatField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``HeliostatField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)HeliostatField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``HeliostatField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``HeliostatField_vals = { var: val, ...}``")}, {"export", (PyCFunction)HeliostatField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2073,133 +2073,133 @@ static PyGetSetDef HeliostatField_getset[] = { PyDoc_STR("*float*: Number of heliostats"), NULL}, {"c_atm_0", (getter)HeliostatField_get_c_atm_0,(setter)HeliostatField_set_c_atm_0, - PyDoc_STR("*float*: Attenuation coefficient 0\n\n*Required*: If not provided, assumed to be 0.006789"), + PyDoc_STR("*float*: Attenuation coefficient 0\n\n**Required:**\nFalse. Automatically set to 0.006789 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_1", (getter)HeliostatField_get_c_atm_1,(setter)HeliostatField_set_c_atm_1, - PyDoc_STR("*float*: Attenuation coefficient 1\n\n*Required*: If not provided, assumed to be 0.1046"), + PyDoc_STR("*float*: Attenuation coefficient 1\n\n**Required:**\nFalse. Automatically set to 0.1046 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_2", (getter)HeliostatField_get_c_atm_2,(setter)HeliostatField_set_c_atm_2, - PyDoc_STR("*float*: Attenuation coefficient 2\n\n*Required*: If not provided, assumed to be -0.0107"), + PyDoc_STR("*float*: Attenuation coefficient 2\n\n**Required:**\nFalse. Automatically set to -0.0107 if not assigned explicitly or loaded from defaults."), NULL}, {"c_atm_3", (getter)HeliostatField_get_c_atm_3,(setter)HeliostatField_set_c_atm_3, - PyDoc_STR("*float*: Attenuation coefficient 3\n\n*Required*: If not provided, assumed to be 0.002845"), + PyDoc_STR("*float*: Attenuation coefficient 3\n\n**Required:**\nFalse. Automatically set to 0.002845 if not assigned explicitly or loaded from defaults."), NULL}, {"calc_fluxmaps", (getter)HeliostatField_get_calc_fluxmaps,(setter)HeliostatField_set_calc_fluxmaps, - PyDoc_STR("*float*: Include fluxmap calculations\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Include fluxmap calculations\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"cant_type", (getter)HeliostatField_get_cant_type,(setter)HeliostatField_set_cant_type, - PyDoc_STR("*float*: Heliostat canting method\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat canting method\n\n**Required:**\nTrue"), NULL}, {"check_max_flux", (getter)HeliostatField_get_check_max_flux,(setter)HeliostatField_set_check_max_flux, - PyDoc_STR("*float*: Check max flux at design point\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Check max flux at design point\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"csp_pt_sf_fixed_land_area", (getter)HeliostatField_get_csp_pt_sf_fixed_land_area,(setter)HeliostatField_set_csp_pt_sf_fixed_land_area, - PyDoc_STR("*float*: Fixed land area [acre]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed land area [acre]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_sf_land_overhead_factor", (getter)HeliostatField_get_csp_pt_sf_land_overhead_factor,(setter)HeliostatField_set_csp_pt_sf_land_overhead_factor, - PyDoc_STR("*float*: Land overhead factor\n\n*Required*: True"), + PyDoc_STR("*float*: Land overhead factor\n\n**Required:**\nTrue"), NULL}, {"dens_mirror", (getter)HeliostatField_get_dens_mirror,(setter)HeliostatField_set_dens_mirror, - PyDoc_STR("*float*: Ratio of heliostat reflective area to profile\n\n*Required*: True"), + PyDoc_STR("*float*: Ratio of heliostat reflective area to profile\n\n**Required:**\nTrue"), NULL}, {"eta_map", (getter)HeliostatField_get_eta_map,(setter)HeliostatField_set_eta_map, - PyDoc_STR("*sequence[sequence]*: Field efficiency array\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Field efficiency array\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"eta_map_aod_format", (getter)HeliostatField_get_eta_map_aod_format,(setter)HeliostatField_set_eta_map_aod_format, - PyDoc_STR("*float*: Use 3D AOD format field efficiency array\n\n*Info*: heliostat"), + PyDoc_STR("*float*: Use 3D AOD format field efficiency array\n\n**Info:**\nheliostat"), NULL}, {"field_model_type", (getter)HeliostatField_get_field_model_type,(setter)HeliostatField_set_field_model_type, - PyDoc_STR("*float*: 0=design field and tower/receiver geometry, 1=design field, 2=user specified field, 3=user performance maps vs solar position\n\n*Required*: True"), + PyDoc_STR("*float*: 0=design field and tower/receiver geometry, 1=design field, 2=user specified field, 3=user performance maps vs solar position\n\n**Required:**\nTrue"), NULL}, {"flux_maps", (getter)HeliostatField_get_flux_maps,(setter)HeliostatField_set_flux_maps, - PyDoc_STR("*sequence[sequence]*: Flux map intensities\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Flux map intensities\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"focus_type", (getter)HeliostatField_get_focus_type,(setter)HeliostatField_set_focus_type, - PyDoc_STR("*float*: Heliostat focus method\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat focus method\n\n**Required:**\nTrue"), NULL}, {"hel_stow_deploy", (getter)HeliostatField_get_hel_stow_deploy,(setter)HeliostatField_set_hel_stow_deploy, - PyDoc_STR("*float*: Stow/deploy elevation angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Stow/deploy elevation angle [deg]\n\n**Required:**\nTrue"), NULL}, {"helio_active_fraction", (getter)HeliostatField_get_helio_active_fraction,(setter)HeliostatField_set_helio_active_fraction, - PyDoc_STR("*float*: Heliostat active fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat active fraction\n\n**Required:**\nTrue"), NULL}, {"helio_aim_points", (getter)HeliostatField_get_helio_aim_points,(setter)HeliostatField_set_helio_aim_points, - PyDoc_STR("*sequence[sequence]*: Heliostat aim point table [m]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Heliostat aim point table [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"helio_height", (getter)HeliostatField_get_helio_height,(setter)HeliostatField_set_helio_height, - PyDoc_STR("*float*: Heliostat height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat height [m]\n\n**Required:**\nTrue"), NULL}, {"helio_optical_error_mrad", (getter)HeliostatField_get_helio_optical_error_mrad,(setter)HeliostatField_set_helio_optical_error_mrad, - PyDoc_STR("*float*: Heliostat optical error [mrad]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat optical error [mrad]\n\n**Required:**\nTrue"), NULL}, {"helio_positions", (getter)HeliostatField_get_helio_positions,(setter)HeliostatField_set_helio_positions, - PyDoc_STR("*sequence[sequence]*: Heliostat position table\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Heliostat position table\n\n**Required:**\nTrue"), NULL}, {"helio_reflectance", (getter)HeliostatField_get_helio_reflectance,(setter)HeliostatField_set_helio_reflectance, - PyDoc_STR("*float*: Heliostat reflectance\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat reflectance\n\n**Required:**\nTrue"), NULL}, {"helio_width", (getter)HeliostatField_get_helio_width,(setter)HeliostatField_set_helio_width, - PyDoc_STR("*float*: Heliostat width [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat width [m]\n\n**Required:**\nTrue"), NULL}, {"interp_beta", (getter)HeliostatField_get_interp_beta,(setter)HeliostatField_set_interp_beta, - PyDoc_STR("*float*: Interpolation beta coef. [-]\n\n*Required*: If not provided, assumed to be 1.99"), + PyDoc_STR("*float*: Interpolation beta coef. [-]\n\n**Required:**\nFalse. Automatically set to 1.99 if not assigned explicitly or loaded from defaults."), NULL}, {"interp_nug", (getter)HeliostatField_get_interp_nug,(setter)HeliostatField_set_interp_nug, - PyDoc_STR("*float*: Interpolation nugget [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Interpolation nugget [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"land_area_base", (getter)HeliostatField_get_land_area_base,(setter)HeliostatField_set_land_area_base, - PyDoc_STR("*float*: Base land area occupied by heliostats [acre]\n\n*Required*: True"), + PyDoc_STR("*float*: Base land area occupied by heliostats [acre]\n\n**Required:**\nTrue"), NULL}, {"land_bound_list", (getter)HeliostatField_get_land_bound_list,(setter)HeliostatField_set_land_bound_list, - PyDoc_STR("*sequence*: Land boundary table listing\n\n*Required*: False"), + PyDoc_STR("*sequence*: Land boundary table listing\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"land_bound_table", (getter)HeliostatField_get_land_bound_table,(setter)HeliostatField_set_land_bound_table, - PyDoc_STR("*sequence[sequence]*: Land boundary table [m]\n\n*Required*: False"), + PyDoc_STR("*sequence[sequence]*: Land boundary table [m]\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"land_max", (getter)HeliostatField_get_land_max,(setter)HeliostatField_set_land_max, - PyDoc_STR("*float*: Land max boundary [-ORm]\n\n*Required*: If not provided, assumed to be 7.5"), + PyDoc_STR("*float*: Land max boundary [-ORm]\n\n**Required:**\nFalse. Automatically set to 7.5 if not assigned explicitly or loaded from defaults."), NULL}, {"land_min", (getter)HeliostatField_get_land_min,(setter)HeliostatField_set_land_min, - PyDoc_STR("*float*: Land min boundary [-ORm]\n\n*Required*: If not provided, assumed to be 0.75"), + PyDoc_STR("*float*: Land min boundary [-ORm]\n\n**Required:**\nFalse. Automatically set to 0.75 if not assigned explicitly or loaded from defaults."), NULL}, {"n_facet_x", (getter)HeliostatField_get_n_facet_x,(setter)HeliostatField_set_n_facet_x, - PyDoc_STR("*float*: Number of heliostat facets - X\n\n*Required*: True"), + PyDoc_STR("*float*: Number of heliostat facets - X\n\n**Required:**\nTrue"), NULL}, {"n_facet_y", (getter)HeliostatField_get_n_facet_y,(setter)HeliostatField_set_n_facet_y, - PyDoc_STR("*float*: Number of heliostat facets - Y\n\n*Required*: True"), + PyDoc_STR("*float*: Number of heliostat facets - Y\n\n**Required:**\nTrue"), NULL}, {"opt_algorithm", (getter)HeliostatField_get_opt_algorithm,(setter)HeliostatField_set_opt_algorithm, - PyDoc_STR("*float*: Optimization algorithm\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Optimization algorithm\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_conv_tol", (getter)HeliostatField_get_opt_conv_tol,(setter)HeliostatField_set_opt_conv_tol, - PyDoc_STR("*float*: Optimization convergence tolerance\n\n*Required*: If not provided, assumed to be 0.001"), + PyDoc_STR("*float*: Optimization convergence tolerance\n\n**Required:**\nFalse. Automatically set to 0.001 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_flux_penalty", (getter)HeliostatField_get_opt_flux_penalty,(setter)HeliostatField_set_opt_flux_penalty, - PyDoc_STR("*float*: Optimization flux overage penalty\n\n*Required*: True"), + PyDoc_STR("*float*: Optimization flux overage penalty\n\n**Required:**\nTrue"), NULL}, {"opt_init_step", (getter)HeliostatField_get_opt_init_step,(setter)HeliostatField_set_opt_init_step, - PyDoc_STR("*float*: Optimization initial step size\n\n*Required*: If not provided, assumed to be 0.05"), + PyDoc_STR("*float*: Optimization initial step size\n\n**Required:**\nFalse. Automatically set to 0.05 if not assigned explicitly or loaded from defaults."), NULL}, {"opt_max_iter", (getter)HeliostatField_get_opt_max_iter,(setter)HeliostatField_set_opt_max_iter, - PyDoc_STR("*float*: Max number iteration steps\n\n*Required*: If not provided, assumed to be 200"), + PyDoc_STR("*float*: Max number iteration steps\n\n**Required:**\nFalse. Automatically set to 200 if not assigned explicitly or loaded from defaults."), NULL}, {"p_start", (getter)HeliostatField_get_p_start,(setter)HeliostatField_set_p_start, - PyDoc_STR("*float*: Heliostat startup energy [kWe-hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat startup energy [kWe-hr]\n\n**Required:**\nTrue"), NULL}, {"p_track", (getter)HeliostatField_get_p_track,(setter)HeliostatField_set_p_track, - PyDoc_STR("*float*: Heliostat tracking energy [kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat tracking energy [kWe]\n\n**Required:**\nTrue"), NULL}, {"receiver_type", (getter)HeliostatField_get_receiver_type,(setter)HeliostatField_set_receiver_type, - PyDoc_STR("*float*: 0: external (default), 1; cavity\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: external (default), 1; cavity\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"v_wind_max", (getter)HeliostatField_get_v_wind_max,(setter)HeliostatField_set_v_wind_max, - PyDoc_STR("*float*: Heliostat max wind velocity [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat max wind velocity [m/s]\n\n**Required:**\nTrue"), NULL}, {"washing_frequency", (getter)HeliostatField_get_washing_frequency,(setter)HeliostatField_set_washing_frequency, - PyDoc_STR("*float*: Mirror washing frequency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [none]\n\n**Required:**\nTrue"), NULL}, {"water_usage_per_wash", (getter)HeliostatField_get_water_usage_per_wash,(setter)HeliostatField_set_water_usage_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2314,11 +2314,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2432,31 +2432,31 @@ SystemDesign_set_tshours(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"P_ref", (getter)SystemDesign_get_P_ref,(setter)SystemDesign_set_P_ref, - PyDoc_STR("*float*: Reference output electric power at design condition [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference output electric power at design condition [MW]\n\n**Required:**\nTrue"), NULL}, {"T_htf_cold_des", (getter)SystemDesign_get_T_htf_cold_des,(setter)SystemDesign_set_T_htf_cold_des, - PyDoc_STR("*float*: Cold HTF inlet temperature at design conditions [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold HTF inlet temperature at design conditions [C]\n\n**Required:**\nTrue"), NULL}, {"T_htf_hot_des", (getter)SystemDesign_get_T_htf_hot_des,(setter)SystemDesign_set_T_htf_hot_des, - PyDoc_STR("*float*: Hot HTF outlet temperature at design conditions [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot HTF outlet temperature at design conditions [C]\n\n**Required:**\nTrue"), NULL}, {"design_eff", (getter)SystemDesign_get_design_eff,(setter)SystemDesign_set_design_eff, - PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n**Required:**\nTrue"), NULL}, {"dni_des", (getter)SystemDesign_get_dni_des,(setter)SystemDesign_set_dni_des, - PyDoc_STR("*float*: Design-point DNI [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point DNI [W/m2]\n\n**Required:**\nTrue"), NULL}, {"gross_net_conversion_factor", (getter)SystemDesign_get_gross_net_conversion_factor,(setter)SystemDesign_set_gross_net_conversion_factor, - PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n*Required*: True"), + PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n**Required:**\nTrue"), NULL}, {"sf_excess", (getter)SystemDesign_get_sf_excess,(setter)SystemDesign_set_sf_excess, - PyDoc_STR("*float*: Heliostat field multiple\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Heliostat field multiple\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"solarm", (getter)SystemDesign_get_solarm,(setter)SystemDesign_set_solarm, - PyDoc_STR("*float*: Solar multiple [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar multiple [-]\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)SystemDesign_get_tshours,(setter)SystemDesign_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2571,11 +2571,11 @@ TowerAndReceiver_export(VarGroupObject *self, PyObject *args) static PyMethodDef TowerAndReceiver_methods[] = { {"assign", (PyCFunction)TowerAndReceiver_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TowerAndReceiver_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TowerAndReceiver_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TowerAndReceiver_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TowerAndReceiver_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TowerAndReceiver_vals = { var: val, ...}``")}, {"export", (PyCFunction)TowerAndReceiver_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3193,100 +3193,100 @@ TowerAndReceiver_set_u_riser(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef TowerAndReceiver_getset[] = { {"D_rec", (getter)TowerAndReceiver_get_D_rec,(setter)TowerAndReceiver_set_D_rec, - PyDoc_STR("*float*: The overall outer diameter of the receiver [m]\n\n*Required*: True"), + PyDoc_STR("*float*: The overall outer diameter of the receiver [m]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)TowerAndReceiver_get_Flow_type,(setter)TowerAndReceiver_set_Flow_type, - PyDoc_STR("*float*: Receiver flow pattern: see figure on SAM Receiver page\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver flow pattern: see figure on SAM Receiver page\n\n**Required:**\nTrue"), NULL}, {"N_panels", (getter)TowerAndReceiver_get_N_panels,(setter)TowerAndReceiver_set_N_panels, - PyDoc_STR("*float*: Number of individual panels on the receiver\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of individual panels on the receiver\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"cav_rec_height", (getter)TowerAndReceiver_get_cav_rec_height,(setter)TowerAndReceiver_set_cav_rec_height, - PyDoc_STR("*float*: Cavity receiver height [m]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver height [m]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_passive_abs", (getter)TowerAndReceiver_get_cav_rec_passive_abs,(setter)TowerAndReceiver_set_cav_rec_passive_abs, - PyDoc_STR("*float*: Cavity receiver passive surface solar absorptance\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver passive surface solar absorptance\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_passive_eps", (getter)TowerAndReceiver_get_cav_rec_passive_eps,(setter)TowerAndReceiver_set_cav_rec_passive_eps, - PyDoc_STR("*float*: Cavity receiver passive surface thermal emissivity\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver passive surface thermal emissivity\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_span", (getter)TowerAndReceiver_get_cav_rec_span,(setter)TowerAndReceiver_set_cav_rec_span, - PyDoc_STR("*float*: Cavity receiver span angle [deg]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver span angle [deg]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"cav_rec_width", (getter)TowerAndReceiver_get_cav_rec_width,(setter)TowerAndReceiver_set_cav_rec_width, - PyDoc_STR("*float*: Cavity receiver width [m]\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver width [m]\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"crossover_shift", (getter)TowerAndReceiver_get_crossover_shift,(setter)TowerAndReceiver_set_crossover_shift, - PyDoc_STR("*float*: Number of panels shift in receiver crossover position\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of panels shift in receiver crossover position\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"csp_pt_rec_max_oper_frac", (getter)TowerAndReceiver_get_csp_pt_rec_max_oper_frac,(setter)TowerAndReceiver_set_csp_pt_rec_max_oper_frac, - PyDoc_STR("*float*: Maximum receiver mass flow rate fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum receiver mass flow rate fraction\n\n**Required:**\nTrue"), NULL}, {"d_tube_out", (getter)TowerAndReceiver_get_d_tube_out,(setter)TowerAndReceiver_set_d_tube_out, - PyDoc_STR("*float*: The outer diameter of an individual receiver tube [mm]\n\n*Required*: True"), + PyDoc_STR("*float*: The outer diameter of an individual receiver tube [mm]\n\n**Required:**\nTrue"), NULL}, {"delta_flux_hrs", (getter)TowerAndReceiver_get_delta_flux_hrs,(setter)TowerAndReceiver_set_delta_flux_hrs, - PyDoc_STR("*float*: Hourly frequency in flux map lookup\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Hourly frequency in flux map lookup\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"downc_tm_mult", (getter)TowerAndReceiver_get_downc_tm_mult,(setter)TowerAndReceiver_set_downc_tm_mult, - PyDoc_STR("*float*: Downcomer thermal mass multiplier\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Downcomer thermal mass multiplier\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"epsilon", (getter)TowerAndReceiver_get_epsilon,(setter)TowerAndReceiver_set_epsilon, - PyDoc_STR("*float*: The emissivity of the receiver surface coating\n\n*Required*: True"), + PyDoc_STR("*float*: The emissivity of the receiver surface coating\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)TowerAndReceiver_get_eta_pump,(setter)TowerAndReceiver_set_eta_pump, - PyDoc_STR("*float*: Receiver HTF pump efficiency\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver HTF pump efficiency\n\n**Required:**\nTrue"), NULL}, {"f_rec_min", (getter)TowerAndReceiver_get_f_rec_min,(setter)TowerAndReceiver_set_f_rec_min, - PyDoc_STR("*float*: Minimum receiver mass flow rate turn down fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum receiver mass flow rate turn down fraction\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)TowerAndReceiver_get_field_fl_props,(setter)TowerAndReceiver_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"flux_max", (getter)TowerAndReceiver_get_flux_max,(setter)TowerAndReceiver_set_flux_max, - PyDoc_STR("*float*: Maximum allowable flux\n\n*Required*: If not provided, assumed to be 1000"), + PyDoc_STR("*float*: Maximum allowable flux\n\n**Required:**\nFalse. Automatically set to 1000 if not assigned explicitly or loaded from defaults."), NULL}, {"h_tower", (getter)TowerAndReceiver_get_h_tower,(setter)TowerAndReceiver_set_h_tower, - PyDoc_STR("*float*: Tower height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower height [m]\n\n**Required:**\nTrue"), NULL}, {"heat_trace_power", (getter)TowerAndReceiver_get_heat_trace_power,(setter)TowerAndReceiver_set_heat_trace_power, - PyDoc_STR("*float*: Riser/downcomer heat trace power during startup [kW/m]\n\n*Required*: If not provided, assumed to be 500.0"), + PyDoc_STR("*float*: Riser/downcomer heat trace power during startup [kW/m]\n\n**Required:**\nFalse. Automatically set to 500.0 if not assigned explicitly or loaded from defaults."), NULL}, {"hl_ffact", (getter)TowerAndReceiver_get_hl_ffact,(setter)TowerAndReceiver_set_hl_ffact, - PyDoc_STR("*float*: The heat loss factor (thermal loss fudge factor)\n\n*Required*: True"), + PyDoc_STR("*float*: The heat loss factor (thermal loss fudge factor)\n\n**Required:**\nTrue"), NULL}, {"is_rec_enforce_min_startup", (getter)TowerAndReceiver_get_is_rec_enforce_min_startup,(setter)TowerAndReceiver_set_is_rec_enforce_min_startup, - PyDoc_STR("*float*: Always enforce minimum startup time\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Always enforce minimum startup time\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"is_rec_model_trans", (getter)TowerAndReceiver_get_is_rec_model_trans,(setter)TowerAndReceiver_set_is_rec_model_trans, - PyDoc_STR("*float*: Formulate receiver model as transient?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Formulate receiver model as transient?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_rec_startup_from_T_soln", (getter)TowerAndReceiver_get_is_rec_startup_from_T_soln,(setter)TowerAndReceiver_set_is_rec_startup_from_T_soln, - PyDoc_STR("*float*: Begin receiver startup from solved temperature profiles?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Begin receiver startup from solved temperature profiles?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_rec_startup_trans", (getter)TowerAndReceiver_get_is_rec_startup_trans,(setter)TowerAndReceiver_set_is_rec_startup_trans, - PyDoc_STR("*float*: Formulate receiver startup model as transient?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Formulate receiver startup model as transient?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mat_tube", (getter)TowerAndReceiver_get_mat_tube,(setter)TowerAndReceiver_set_mat_tube, - PyDoc_STR("*float*: Receiver tube material, 2=Stainless AISI316\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver tube material, 2=Stainless AISI316\n\n**Required:**\nTrue"), NULL}, {"min_fill_time", (getter)TowerAndReceiver_get_min_fill_time,(setter)TowerAndReceiver_set_min_fill_time, - PyDoc_STR("*float*: Startup time delay for filling the receiver/piping [hr]\n\n*Required*: If not provided, assumed to be 0.1333"), + PyDoc_STR("*float*: Startup time delay for filling the receiver/piping [hr]\n\n**Required:**\nFalse. Automatically set to 0.1333 if not assigned explicitly or loaded from defaults."), NULL}, {"min_preheat_time", (getter)TowerAndReceiver_get_min_preheat_time,(setter)TowerAndReceiver_set_min_preheat_time, - PyDoc_STR("*float*: Minimum time required in preheat startup stage [hr]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Minimum time required in preheat startup stage [hr]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"n_cav_rec_panels", (getter)TowerAndReceiver_get_n_cav_rec_panels,(setter)TowerAndReceiver_set_n_cav_rec_panels, - PyDoc_STR("*float*: Cavity receiver number of panels\n\n*Required*: True if receiver_type=1"), + PyDoc_STR("*float*: Cavity receiver number of panels\n\n**Required:**\nRequired if receiver_type=1"), NULL}, {"n_flux_days", (getter)TowerAndReceiver_get_n_flux_days,(setter)TowerAndReceiver_set_n_flux_days, - PyDoc_STR("*float*: Number of days in flux map lookup\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: Number of days in flux map lookup\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"piping_length_const", (getter)TowerAndReceiver_get_piping_length_const,(setter)TowerAndReceiver_set_piping_length_const, - PyDoc_STR("*float*: Piping constant length [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Piping constant length [m]\n\n**Required:**\nTrue"), NULL}, {"piping_length_mult", (getter)TowerAndReceiver_get_piping_length_mult,(setter)TowerAndReceiver_set_piping_length_mult, - PyDoc_STR("*float*: Piping length multiplier\n\n*Required*: True"), + PyDoc_STR("*float*: Piping length multiplier\n\n**Required:**\nTrue"), NULL}, {"piping_loss", (getter)TowerAndReceiver_get_piping_loss,(setter)TowerAndReceiver_set_piping_loss, PyDoc_STR("*float*: Thermal loss per meter of piping [Wt/m]"), @@ -3295,55 +3295,55 @@ static PyGetSetDef TowerAndReceiver_getset[] = { PyDoc_STR("*float*: Thermal loss per meter of piping [Wt/m2-K]"), NULL}, {"preheat_flux", (getter)TowerAndReceiver_get_preheat_flux,(setter)TowerAndReceiver_set_preheat_flux, - PyDoc_STR("*float*: Tube absorbed solar flux during preheat [kW/m2]\n\n*Required*: If not provided, assumed to be 50.0"), + PyDoc_STR("*float*: Tube absorbed solar flux during preheat [kW/m2]\n\n**Required:**\nFalse. Automatically set to 50.0 if not assigned explicitly or loaded from defaults."), NULL}, {"rec_absorptance", (getter)TowerAndReceiver_get_rec_absorptance,(setter)TowerAndReceiver_set_rec_absorptance, - PyDoc_STR("*float*: Receiver absorptance\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver absorptance\n\n**Required:**\nTrue"), NULL}, {"rec_clearsky_dni", (getter)TowerAndReceiver_get_rec_clearsky_dni,(setter)TowerAndReceiver_set_rec_clearsky_dni, - PyDoc_STR("*sequence*: User-defined clear-sky DNI [W/m2]\n\n*Required*: True if rec_clearsky_model=0"), + PyDoc_STR("*sequence*: User-defined clear-sky DNI [W/m2]\n\n**Required:**\nRequired if rec_clearsky_model=0"), NULL}, {"rec_clearsky_fraction", (getter)TowerAndReceiver_get_rec_clearsky_fraction,(setter)TowerAndReceiver_set_rec_clearsky_fraction, - PyDoc_STR("*float*: Weighting fraction on clear-sky DNI for receiver flow control\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Weighting fraction on clear-sky DNI for receiver flow control\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"rec_clearsky_model", (getter)TowerAndReceiver_get_rec_clearsky_model,(setter)TowerAndReceiver_set_rec_clearsky_model, - PyDoc_STR("*float*: Clearsky model: None = -1, User-defined data = 0, Meinel = 1; Hottel = 2; Allen = 3; Moon = 4\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Clearsky model: None = -1, User-defined data = 0, Meinel = 1; Hottel = 2; Allen = 3; Moon = 4\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"rec_height", (getter)TowerAndReceiver_get_rec_height,(setter)TowerAndReceiver_set_rec_height, - PyDoc_STR("*float*: Receiver height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver height [m]\n\n**Required:**\nTrue"), NULL}, {"rec_hl_perm2", (getter)TowerAndReceiver_get_rec_hl_perm2,(setter)TowerAndReceiver_set_rec_hl_perm2, - PyDoc_STR("*float*: Receiver design heatloss [kW/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver design heatloss [kW/m2]\n\n**Required:**\nTrue"), NULL}, {"rec_htf", (getter)TowerAndReceiver_get_rec_htf,(setter)TowerAndReceiver_set_rec_htf, - PyDoc_STR("*float*: Receiver HTF, 17=Salt (60% NaNO3, 40% KNO3) 10=Salt (46.5% LiF 11.5% NaF 42% KF) 50=Lookup tables\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver HTF, 17=Salt (60% NaNO3, 40% KNO3) 10=Salt (46.5% LiF 11.5% NaF 42% KF) 50=Lookup tables\n\n**Required:**\nTrue"), NULL}, {"rec_qf_delay", (getter)TowerAndReceiver_get_rec_qf_delay,(setter)TowerAndReceiver_set_rec_qf_delay, - PyDoc_STR("*float*: Energy-based receiver startup delay (fraction of rated thermal power)\n\n*Required*: True"), + PyDoc_STR("*float*: Energy-based receiver startup delay (fraction of rated thermal power)\n\n**Required:**\nTrue"), NULL}, {"rec_su_delay", (getter)TowerAndReceiver_get_rec_su_delay,(setter)TowerAndReceiver_set_rec_su_delay, - PyDoc_STR("*float*: Fixed startup delay time for the receiver [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed startup delay time for the receiver [hr]\n\n**Required:**\nTrue"), NULL}, {"rec_tm_mult", (getter)TowerAndReceiver_get_rec_tm_mult,(setter)TowerAndReceiver_set_rec_tm_mult, - PyDoc_STR("*float*: Receiver thermal mass multiplier\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Receiver thermal mass multiplier\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"riser_tm_mult", (getter)TowerAndReceiver_get_riser_tm_mult,(setter)TowerAndReceiver_set_riser_tm_mult, - PyDoc_STR("*float*: Riser thermal mass multiplier\n\n*Required*: If not provided, assumed to be 1.0"), + PyDoc_STR("*float*: Riser thermal mass multiplier\n\n**Required:**\nFalse. Automatically set to 1.0 if not assigned explicitly or loaded from defaults."), NULL}, {"startup_ramp_time", (getter)TowerAndReceiver_get_startup_ramp_time,(setter)TowerAndReceiver_set_startup_ramp_time, - PyDoc_STR("*float*: Time required to reach full flux during receiver startup [hr]\n\n*Required*: If not provided, assumed to be 0.1333"), + PyDoc_STR("*float*: Time required to reach full flux during receiver startup [hr]\n\n**Required:**\nFalse. Automatically set to 0.1333 if not assigned explicitly or loaded from defaults."), NULL}, {"startup_target_Tdiff", (getter)TowerAndReceiver_get_startup_target_Tdiff,(setter)TowerAndReceiver_set_startup_target_Tdiff, - PyDoc_STR("*float*: Target HTF T at end of startup - steady state hot HTF temperature [C]\n\n*Required*: If not provided, assumed to be -5.0"), + PyDoc_STR("*float*: Target HTF T at end of startup - steady state hot HTF temperature [C]\n\n**Required:**\nFalse. Automatically set to -5.0 if not assigned explicitly or loaded from defaults."), NULL}, {"th_riser", (getter)TowerAndReceiver_get_th_riser,(setter)TowerAndReceiver_set_th_riser, - PyDoc_STR("*float*: Riser or downcomer tube wall thickness [mm]\n\n*Required*: If not provided, assumed to be 15.0"), + PyDoc_STR("*float*: Riser or downcomer tube wall thickness [mm]\n\n**Required:**\nFalse. Automatically set to 15.0 if not assigned explicitly or loaded from defaults."), NULL}, {"th_tube", (getter)TowerAndReceiver_get_th_tube,(setter)TowerAndReceiver_set_th_tube, - PyDoc_STR("*float*: The wall thickness of a single receiver tube [mm]\n\n*Required*: True"), + PyDoc_STR("*float*: The wall thickness of a single receiver tube [mm]\n\n**Required:**\nTrue"), NULL}, {"u_riser", (getter)TowerAndReceiver_get_u_riser,(setter)TowerAndReceiver_set_u_riser, - PyDoc_STR("*float*: Design point HTF velocity in riser [m/s]\n\n*Required*: If not provided, assumed to be 4.0"), + PyDoc_STR("*float*: Design point HTF velocity in riser [m/s]\n\n**Required:**\nFalse. Automatically set to 4.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3458,11 +3458,11 @@ SystemCosts_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemCosts_methods[] = { {"assign", (PyCFunction)SystemCosts_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemCosts_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemCosts_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemCosts_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemCosts_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3732,70 +3732,70 @@ SystemCosts_set_tower_fixed_cost(VarGroupObject *self, PyObject *value, void *cl static PyGetSetDef SystemCosts_getset[] = { {"bop_spec_cost", (getter)SystemCosts_get_bop_spec_cost,(setter)SystemCosts_set_bop_spec_cost, - PyDoc_STR("*float*: BOS specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: BOS specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"contingency_rate", (getter)SystemCosts_get_contingency_rate,(setter)SystemCosts_set_contingency_rate, - PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Contingency for cost overrun [%]\n\n**Required:**\nTrue"), NULL}, {"cost_sf_fixed", (getter)SystemCosts_get_cost_sf_fixed,(setter)SystemCosts_set_cost_sf_fixed, - PyDoc_STR("*float*: Solar field fixed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar field fixed cost [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_fixed", (getter)SystemCosts_get_csp_pt_cost_epc_fixed,(setter)SystemCosts_set_csp_pt_cost_epc_fixed, - PyDoc_STR("*float*: EPC fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC fixed [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_per_acre", (getter)SystemCosts_get_csp_pt_cost_epc_per_acre,(setter)SystemCosts_set_csp_pt_cost_epc_per_acre, - PyDoc_STR("*float*: EPC cost per acre [$/acre]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost per acre [$/acre]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_per_watt", (getter)SystemCosts_get_csp_pt_cost_epc_per_watt,(setter)SystemCosts_set_csp_pt_cost_epc_per_watt, - PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_epc_percent", (getter)SystemCosts_get_csp_pt_cost_epc_percent,(setter)SystemCosts_set_csp_pt_cost_epc_percent, - PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: EPC cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_fixed", (getter)SystemCosts_get_csp_pt_cost_plm_fixed,(setter)SystemCosts_set_csp_pt_cost_plm_fixed, - PyDoc_STR("*float*: PLM fixed [$]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM fixed [$]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_per_watt", (getter)SystemCosts_get_csp_pt_cost_plm_per_watt,(setter)SystemCosts_set_csp_pt_cost_plm_per_watt, - PyDoc_STR("*float*: PLM cost per watt [$/W]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM cost per watt [$/W]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_cost_plm_percent", (getter)SystemCosts_get_csp_pt_cost_plm_percent,(setter)SystemCosts_set_csp_pt_cost_plm_percent, - PyDoc_STR("*float*: PLM cost percent of direct [%]\n\n*Required*: True"), + PyDoc_STR("*float*: PLM cost percent of direct [%]\n\n**Required:**\nTrue"), NULL}, {"fossil_spec_cost", (getter)SystemCosts_get_fossil_spec_cost,(setter)SystemCosts_set_fossil_spec_cost, - PyDoc_STR("*float*: Fossil system specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil system specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"heliostat_spec_cost", (getter)SystemCosts_get_heliostat_spec_cost,(setter)SystemCosts_set_heliostat_spec_cost, - PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Heliostat field cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"land_spec_cost", (getter)SystemCosts_get_land_spec_cost,(setter)SystemCosts_set_land_spec_cost, - PyDoc_STR("*float*: Total land area cost [$/acre]\n\n*Required*: True"), + PyDoc_STR("*float*: Total land area cost [$/acre]\n\n**Required:**\nTrue"), NULL}, {"plant_spec_cost", (getter)SystemCosts_get_plant_spec_cost,(setter)SystemCosts_set_plant_spec_cost, - PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle specific cost [$/kWe]\n\n**Required:**\nTrue"), NULL}, {"rec_cost_exp", (getter)SystemCosts_get_rec_cost_exp,(setter)SystemCosts_set_rec_cost_exp, - PyDoc_STR("*float*: Receiver cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"rec_ref_area", (getter)SystemCosts_get_rec_ref_area,(setter)SystemCosts_set_rec_ref_area, - PyDoc_STR("*float*: Receiver reference area for cost scale\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference area for cost scale\n\n**Required:**\nTrue"), NULL}, {"rec_ref_cost", (getter)SystemCosts_get_rec_ref_cost,(setter)SystemCosts_set_rec_ref_cost, - PyDoc_STR("*float*: Receiver reference cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Receiver reference cost [$]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_frac", (getter)SystemCosts_get_sales_tax_frac,(setter)SystemCosts_set_sales_tax_frac, - PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of cost to which sales tax applies [%]\n\n**Required:**\nTrue"), NULL}, {"site_spec_cost", (getter)SystemCosts_get_site_spec_cost,(setter)SystemCosts_set_site_spec_cost, - PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Site improvement cost [$/m2]\n\n**Required:**\nTrue"), NULL}, {"tes_spec_cost", (getter)SystemCosts_get_tes_spec_cost,(setter)SystemCosts_set_tes_spec_cost, - PyDoc_STR("*float*: Thermal energy storage cost [$/kWht]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal energy storage cost [$/kWht]\n\n**Required:**\nTrue"), NULL}, {"tower_exp", (getter)SystemCosts_get_tower_exp,(setter)SystemCosts_set_tower_exp, - PyDoc_STR("*float*: Tower cost scaling exponent\n\n*Required*: True"), + PyDoc_STR("*float*: Tower cost scaling exponent\n\n**Required:**\nTrue"), NULL}, {"tower_fixed_cost", (getter)SystemCosts_get_tower_fixed_cost,(setter)SystemCosts_set_tower_fixed_cost, - PyDoc_STR("*float*: Tower fixed cost [$]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower fixed cost [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3910,11 +3910,11 @@ FinancialParameters_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialParameters_methods[] = { {"assign", (PyCFunction)FinancialParameters_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialParameters_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialParameters_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialParameters_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialParameters_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4172,67 +4172,67 @@ FinancialParameters_set_sales_tax_rate(VarGroupObject *self, PyObject *value, vo static PyGetSetDef FinancialParameters_getset[] = { {"const_per_interest_rate1", (getter)FinancialParameters_get_const_per_interest_rate1,(setter)FinancialParameters_set_const_per_interest_rate1, - PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate2", (getter)FinancialParameters_get_const_per_interest_rate2,(setter)FinancialParameters_set_const_per_interest_rate2, - PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate3", (getter)FinancialParameters_get_const_per_interest_rate3,(setter)FinancialParameters_set_const_per_interest_rate3, - PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate4", (getter)FinancialParameters_get_const_per_interest_rate4,(setter)FinancialParameters_set_const_per_interest_rate4, - PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_interest_rate5", (getter)FinancialParameters_get_const_per_interest_rate5,(setter)FinancialParameters_set_const_per_interest_rate5, - PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Interest rate, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_months1", (getter)FinancialParameters_get_const_per_months1,(setter)FinancialParameters_set_const_per_months1, - PyDoc_STR("*float*: Months prior to operation, loan 1\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 1\n\n**Required:**\nTrue"), NULL}, {"const_per_months2", (getter)FinancialParameters_get_const_per_months2,(setter)FinancialParameters_set_const_per_months2, - PyDoc_STR("*float*: Months prior to operation, loan 2\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 2\n\n**Required:**\nTrue"), NULL}, {"const_per_months3", (getter)FinancialParameters_get_const_per_months3,(setter)FinancialParameters_set_const_per_months3, - PyDoc_STR("*float*: Months prior to operation, loan 3\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 3\n\n**Required:**\nTrue"), NULL}, {"const_per_months4", (getter)FinancialParameters_get_const_per_months4,(setter)FinancialParameters_set_const_per_months4, - PyDoc_STR("*float*: Months prior to operation, loan 4\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 4\n\n**Required:**\nTrue"), NULL}, {"const_per_months5", (getter)FinancialParameters_get_const_per_months5,(setter)FinancialParameters_set_const_per_months5, - PyDoc_STR("*float*: Months prior to operation, loan 5\n\n*Required*: True"), + PyDoc_STR("*float*: Months prior to operation, loan 5\n\n**Required:**\nTrue"), NULL}, {"const_per_percent1", (getter)FinancialParameters_get_const_per_percent1,(setter)FinancialParameters_set_const_per_percent1, - PyDoc_STR("*float*: Percent of total installed cost, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent2", (getter)FinancialParameters_get_const_per_percent2,(setter)FinancialParameters_set_const_per_percent2, - PyDoc_STR("*float*: Percent of total installed cost, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent3", (getter)FinancialParameters_get_const_per_percent3,(setter)FinancialParameters_set_const_per_percent3, - PyDoc_STR("*float*: Percent of total installed cost, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent4", (getter)FinancialParameters_get_const_per_percent4,(setter)FinancialParameters_set_const_per_percent4, - PyDoc_STR("*float*: Percent of total installed cost, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_percent5", (getter)FinancialParameters_get_const_per_percent5,(setter)FinancialParameters_set_const_per_percent5, - PyDoc_STR("*float*: Percent of total installed cost, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Percent of total installed cost, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate1", (getter)FinancialParameters_get_const_per_upfront_rate1,(setter)FinancialParameters_set_const_per_upfront_rate1, - PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 1 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate2", (getter)FinancialParameters_get_const_per_upfront_rate2,(setter)FinancialParameters_set_const_per_upfront_rate2, - PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 2 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate3", (getter)FinancialParameters_get_const_per_upfront_rate3,(setter)FinancialParameters_set_const_per_upfront_rate3, - PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 3 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate4", (getter)FinancialParameters_get_const_per_upfront_rate4,(setter)FinancialParameters_set_const_per_upfront_rate4, - PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 4 [%]\n\n**Required:**\nTrue"), NULL}, {"const_per_upfront_rate5", (getter)FinancialParameters_get_const_per_upfront_rate5,(setter)FinancialParameters_set_const_per_upfront_rate5, - PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Upfront fee on principal, loan 5 [%]\n\n**Required:**\nTrue"), NULL}, {"sales_tax_rate", (getter)FinancialParameters_get_sales_tax_rate,(setter)FinancialParameters_set_sales_tax_rate, - PyDoc_STR("*float*: Sales tax rate [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Sales tax rate [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4347,11 +4347,11 @@ ParallelHeater_export(VarGroupObject *self, PyObject *args) static PyMethodDef ParallelHeater_methods[] = { {"assign", (PyCFunction)ParallelHeater_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ParallelHeater_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ParallelHeater_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ParallelHeater_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ParallelHeater_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ParallelHeater_vals = { var: val, ...}``")}, {"export", (PyCFunction)ParallelHeater_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4405,16 +4405,16 @@ ParallelHeater_set_hrs_startup_at_max_rate(VarGroupObject *self, PyObject *value static PyGetSetDef ParallelHeater_getset[] = { {"f_q_dot_des_allowable_su", (getter)ParallelHeater_get_f_q_dot_des_allowable_su,(setter)ParallelHeater_set_f_q_dot_des_allowable_su, - PyDoc_STR("*float*: Fraction of design power allowed during startup [-]\n\n*Required*: True if is_parallel_htr=1"), + PyDoc_STR("*float*: Fraction of design power allowed during startup [-]\n\n**Required:**\nRequired if is_parallel_htr=1"), NULL}, {"f_q_dot_heater_min", (getter)ParallelHeater_get_f_q_dot_heater_min,(setter)ParallelHeater_set_f_q_dot_heater_min, - PyDoc_STR("*float*: Minimum allowable heater output as fraction of design\n\n*Required*: True if is_parallel_htr=1"), + PyDoc_STR("*float*: Minimum allowable heater output as fraction of design\n\n**Required:**\nRequired if is_parallel_htr=1"), NULL}, {"heater_mult", (getter)ParallelHeater_get_heater_mult,(setter)ParallelHeater_set_heater_mult, - PyDoc_STR("*float*: Heater multiple relative to design cycle thermal power [-]\n\n*Required*: True if is_parallel_htr=1"), + PyDoc_STR("*float*: Heater multiple relative to design cycle thermal power [-]\n\n**Required:**\nRequired if is_parallel_htr=1"), NULL}, {"hrs_startup_at_max_rate", (getter)ParallelHeater_get_hrs_startup_at_max_rate,(setter)ParallelHeater_set_hrs_startup_at_max_rate, - PyDoc_STR("*float*: Duration of startup at max startup power [hr]\n\n*Required*: True if is_parallel_htr=1"), + PyDoc_STR("*float*: Duration of startup at max startup power [hr]\n\n**Required:**\nRequired if is_parallel_htr=1"), NULL}, {NULL} /* Sentinel */ }; @@ -4529,11 +4529,11 @@ ThermalStorage_export(VarGroupObject *self, PyObject *args) static PyMethodDef ThermalStorage_methods[] = { {"assign", (PyCFunction)ThermalStorage_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ThermalStorage_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ThermalStorage_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ThermalStorage_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ThermalStorage_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ThermalStorage_vals = { var: val, ...}``")}, {"export", (PyCFunction)ThermalStorage_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4659,34 +4659,34 @@ ThermalStorage_set_u_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef ThermalStorage_getset[] = { {"cold_tank_Thtr", (getter)ThermalStorage_get_cold_tank_Thtr,(setter)ThermalStorage_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temperature [C]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_max_heat", (getter)ThermalStorage_get_cold_tank_max_heat,(setter)ThermalStorage_set_cold_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"csp_pt_tes_init_hot_htf_percent", (getter)ThermalStorage_get_csp_pt_tes_init_hot_htf_percent,(setter)ThermalStorage_set_csp_pt_tes_init_hot_htf_percent, - PyDoc_STR("*float*: Initial fraction of available volume that is hot [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial fraction of available volume that is hot [%]\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)ThermalStorage_get_h_tank,(setter)ThermalStorage_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full) [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)ThermalStorage_get_h_tank_min,(setter)ThermalStorage_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)ThermalStorage_get_hot_tank_Thtr,(setter)ThermalStorage_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temperature [C]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_max_heat", (getter)ThermalStorage_get_hot_tank_max_heat,(setter)ThermalStorage_set_hot_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)ThermalStorage_get_tank_pairs,(setter)ThermalStorage_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tanks_in_parallel", (getter)ThermalStorage_get_tanks_in_parallel,(setter)ThermalStorage_set_tanks_in_parallel, - PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)ThermalStorage_get_u_tank,(setter)ThermalStorage_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4801,11 +4801,11 @@ RADCOOL_export(VarGroupObject *self, PyObject *args) static PyMethodDef RADCOOL_methods[] = { {"assign", (PyCFunction)RADCOOL_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``RADCOOL_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``RADCOOL_vals = { var: val, ...}``")}, {"replace", (PyCFunction)RADCOOL_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``RADCOOL_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``RADCOOL_vals = { var: val, ...}``")}, {"export", (PyCFunction)RADCOOL_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5195,100 +5195,100 @@ RADCOOL_set_u_ctes_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef RADCOOL_getset[] = { {"D_rad_tubes", (getter)RADCOOL_get_D_rad_tubes,(setter)RADCOOL_set_D_rad_tubes, - PyDoc_STR("*float*: Inner diameter of tubes in radiator panel [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Inner diameter of tubes in radiator panel [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"L_rad", (getter)RADCOOL_get_L_rad,(setter)RADCOOL_set_L_rad, - PyDoc_STR("*float*: Length of radiator panel row [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Length of radiator panel row [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"L_rad_sections", (getter)RADCOOL_get_L_rad_sections,(setter)RADCOOL_set_L_rad_sections, - PyDoc_STR("*float*: Length of individual radiator panel [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Length of individual radiator panel [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"T_ctes_cold_design", (getter)RADCOOL_get_T_ctes_cold_design,(setter)RADCOOL_set_T_ctes_cold_design, - PyDoc_STR("*float*: Design value of cooled water to power block [C]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Design value of cooled water to power block [C]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"T_ctes_cold_ini", (getter)RADCOOL_get_T_ctes_cold_ini,(setter)RADCOOL_set_T_ctes_cold_ini, - PyDoc_STR("*float*: Initial value of cold tank [C]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Initial value of cold tank [C]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"T_ctes_warm_design", (getter)RADCOOL_get_T_ctes_warm_design,(setter)RADCOOL_set_T_ctes_warm_design, - PyDoc_STR("*float*: Design value of warm water returning from power block [C]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Design value of warm water returning from power block [C]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"T_ctes_warm_ini", (getter)RADCOOL_get_T_ctes_warm_ini,(setter)RADCOOL_set_T_ctes_warm_ini, - PyDoc_STR("*float*: Initial value of warm tank [C]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Initial value of warm tank [C]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"W_rad_tubes", (getter)RADCOOL_get_W_rad_tubes,(setter)RADCOOL_set_W_rad_tubes, - PyDoc_STR("*float*: Center-to-center distance between tubes in radiator panel [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Center-to-center distance between tubes in radiator panel [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ctes_cost", (getter)RADCOOL_get_ctes_cost,(setter)RADCOOL_set_ctes_cost, - PyDoc_STR("*float*: Cost of cold storage construction [$/L]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Cost of cold storage construction [$/L]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ctes_field_fl", (getter)RADCOOL_get_ctes_field_fl,(setter)RADCOOL_set_ctes_field_fl, - PyDoc_STR("*float*: Fluid in radiator field. 3=liquid water. Other = Glycol. [-]\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Fluid in radiator field. 3=liquid water. Other = Glycol. [-]\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"ctes_tankpairs", (getter)RADCOOL_get_ctes_tankpairs,(setter)RADCOOL_set_ctes_tankpairs, - PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ctes_tshours", (getter)RADCOOL_get_ctes_tshours,(setter)RADCOOL_set_ctes_tshours, - PyDoc_STR("*float*: Equivalent full load storage hours [hr]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Equivalent full load storage hours [hr]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ctes_type", (getter)RADCOOL_get_ctes_type,(setter)RADCOOL_set_ctes_type, - PyDoc_STR("*float*: Type of cold storage (2=two tank, 3= three node) [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Type of cold storage (2=two tank, 3= three node) [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"epsilon_radHX", (getter)RADCOOL_get_epsilon_radHX,(setter)RADCOOL_set_epsilon_radHX, - PyDoc_STR("*float*: Effectiveness of HX between radiative field and cold storage [-]\n\n*Required*: If not provided, assumed to be .8"), + PyDoc_STR("*float*: Effectiveness of HX between radiative field and cold storage [-]\n\n**Required:**\nFalse. Automatically set to .8 if not assigned explicitly or loaded from defaults."), NULL}, {"epsilon_radbot", (getter)RADCOOL_get_epsilon_radbot,(setter)RADCOOL_set_epsilon_radbot, - PyDoc_STR("*float*: Emmissivity of top of radiator panel bottom (facing ground) [-]\n\n*Required*: If not provided, assumed to be .07"), + PyDoc_STR("*float*: Emmissivity of top of radiator panel bottom (facing ground) [-]\n\n**Required:**\nFalse. Automatically set to .07 if not assigned explicitly or loaded from defaults."), NULL}, {"epsilon_radgrnd", (getter)RADCOOL_get_epsilon_radgrnd,(setter)RADCOOL_set_epsilon_radgrnd, - PyDoc_STR("*float*: Emmissivity of ground underneath radiator panel [-]\n\n*Required*: If not provided, assumed to be .90"), + PyDoc_STR("*float*: Emmissivity of ground underneath radiator panel [-]\n\n**Required:**\nFalse. Automatically set to .90 if not assigned explicitly or loaded from defaults."), NULL}, {"epsilon_radtop", (getter)RADCOOL_get_epsilon_radtop,(setter)RADCOOL_set_epsilon_radtop, - PyDoc_STR("*float*: Emmissivity of top of radiator panel [-]\n\n*Required*: If not provided, assumed to be .95"), + PyDoc_STR("*float*: Emmissivity of top of radiator panel [-]\n\n**Required:**\nFalse. Automatically set to .95 if not assigned explicitly or loaded from defaults."), NULL}, {"f_ctes_warm_ini", (getter)RADCOOL_get_f_ctes_warm_ini,(setter)RADCOOL_set_f_ctes_warm_ini, - PyDoc_STR("*float*: Initial fraction of avail. volume that is warm [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Initial fraction of avail. volume that is warm [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"h_ctes_tank", (getter)RADCOOL_get_h_ctes_tank,(setter)RADCOOL_set_h_ctes_tank, - PyDoc_STR("*float*: Total height of cold storage tank when full [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total height of cold storage tank when full [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"h_ctes_tank_min", (getter)RADCOOL_get_h_ctes_tank_min,(setter)RADCOOL_set_h_ctes_tank_min, - PyDoc_STR("*float*: Minimum allowable water height in storage tank [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Minimum allowable water height in storage tank [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"helio_area_tot", (getter)RADCOOL_get_helio_area_tot,(setter)RADCOOL_set_helio_area_tot, - PyDoc_STR("*float*: Heliostat total reflective area [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Heliostat total reflective area [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"k_panel", (getter)RADCOOL_get_k_panel,(setter)RADCOOL_set_k_panel, - PyDoc_STR("*float*: Thermal conductivity of radiator panel material [W/m-K]\n\n*Required*: If not provided, assumed to be 235"), + PyDoc_STR("*float*: Thermal conductivity of radiator panel material [W/m-K]\n\n**Required:**\nFalse. Automatically set to 235 if not assigned explicitly or loaded from defaults."), NULL}, {"m_dot_radpanel", (getter)RADCOOL_get_m_dot_radpanel,(setter)RADCOOL_set_m_dot_radpanel, - PyDoc_STR("*float*: Mass flow rate through single radiator panel [kg/sec]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Mass flow rate through single radiator panel [kg/sec]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"n_rad_tubes", (getter)RADCOOL_get_n_rad_tubes,(setter)RADCOOL_set_n_rad_tubes, - PyDoc_STR("*float*: Number of parallel tubes in single radiator panel [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of parallel tubes in single radiator panel [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rad_multiplier", (getter)RADCOOL_get_rad_multiplier,(setter)RADCOOL_set_rad_multiplier, - PyDoc_STR("*float*: Ratio of radiator field area to solar aperature area [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Ratio of radiator field area to solar aperature area [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rad_pressuredrop", (getter)RADCOOL_get_rad_pressuredrop,(setter)RADCOOL_set_rad_pressuredrop, - PyDoc_STR("*float*: Average pressure drop through a radiative panel & distribution [kPa]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Average pressure drop through a radiative panel & distribution [kPa]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"radfluid_vol_ratio", (getter)RADCOOL_get_radfluid_vol_ratio,(setter)RADCOOL_set_radfluid_vol_ratio, - PyDoc_STR("*float*: Ratio of fluid in distribution to fluid in panels [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Ratio of fluid in distribution to fluid in panels [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"radiator_fluidcost", (getter)RADCOOL_get_radiator_fluidcost,(setter)RADCOOL_set_radiator_fluidcost, - PyDoc_STR("*float*: Cost of circulating fluid in radiative panels [$/L]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Cost of circulating fluid in radiative panels [$/L]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"radiator_installcost", (getter)RADCOOL_get_radiator_installcost,(setter)RADCOOL_set_radiator_installcost, - PyDoc_STR("*float*: Installation cost of radiative panels [$/m^2]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Installation cost of radiative panels [$/m^2]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"radiator_unitcost", (getter)RADCOOL_get_radiator_unitcost,(setter)RADCOOL_set_radiator_unitcost, - PyDoc_STR("*float*: Cost of radiative panels [$/m^2]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Cost of radiative panels [$/m^2]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"th_rad_panel", (getter)RADCOOL_get_th_rad_panel,(setter)RADCOOL_set_th_rad_panel, - PyDoc_STR("*float*: Thickness of radiator panel [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Thickness of radiator panel [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"u_ctes_tank", (getter)RADCOOL_get_u_ctes_tank,(setter)RADCOOL_set_u_ctes_tank, - PyDoc_STR("*float*: Loss coefficient from cold storage tank [W/m2-K]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Loss coefficient from cold storage tank [W/m2-K]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -5403,11 +5403,11 @@ PowerCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef PowerCycle_methods[] = { {"assign", (PyCFunction)PowerCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``PowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``PowerCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)PowerCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``PowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``PowerCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)PowerCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5497,25 +5497,25 @@ PowerCycle_set_startup_time(VarGroupObject *self, PyObject *value, void *closure static PyGetSetDef PowerCycle_getset[] = { {"cycle_cutoff_frac", (getter)PowerCycle_get_cycle_cutoff_frac,(setter)PowerCycle_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)PowerCycle_get_cycle_max_frac,(setter)PowerCycle_set_cycle_max_frac, - PyDoc_STR("*float*: Maximum turbine over design operation fraction\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)PowerCycle_get_pb_pump_coef,(setter)PowerCycle_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"pc_config", (getter)PowerCycle_get_pc_config,(setter)PowerCycle_set_pc_config, - PyDoc_STR("*float*: PC configuration 0=Steam Rankine (224), 1=user defined\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PC configuration 0=Steam Rankine (224), 1=user defined\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)PowerCycle_get_q_sby_frac,(setter)PowerCycle_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)PowerCycle_get_startup_frac,(setter)PowerCycle_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)PowerCycle_get_startup_time,(setter)PowerCycle_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -5630,11 +5630,11 @@ RankineCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef RankineCycle_methods[] = { {"assign", (PyCFunction)RankineCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``RankineCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``RankineCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)RankineCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``RankineCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``RankineCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)RankineCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5772,37 +5772,37 @@ RankineCycle_set_tech_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef RankineCycle_getset[] = { {"CT", (getter)RankineCycle_get_CT,(setter)RankineCycle_set_CT, - PyDoc_STR("*float*: Condensor type: 1=evaporative, 2=air, 3=hybrid\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condensor type: 1=evaporative, 2=air, 3=hybrid\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_boil", (getter)RankineCycle_get_P_boil,(setter)RankineCycle_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)RankineCycle_get_P_cond_min,(setter)RankineCycle_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)RankineCycle_get_P_cond_ratio,(setter)RankineCycle_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_ITD_des", (getter)RankineCycle_get_T_ITD_des,(setter)RankineCycle_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)RankineCycle_get_T_amb_des,(setter)RankineCycle_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)RankineCycle_get_T_approach,(setter)RankineCycle_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"dT_cw_ref", (getter)RankineCycle_get_dT_cw_ref,(setter)RankineCycle_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet temperature difference [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet temperature difference [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"n_pl_inc", (getter)RankineCycle_get_n_pl_inc,(setter)RankineCycle_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Constraints*: INTEGER\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)RankineCycle_get_pb_bd_frac,(setter)RankineCycle_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"tech_type", (getter)RankineCycle_get_tech_type,(setter)RankineCycle_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control 1=Fixed, 3=Sliding\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control 1=Fixed, 3=Sliding\n\n**Required:**\nRequired if pc_config=0"), NULL}, {NULL} /* Sentinel */ }; @@ -5917,11 +5917,11 @@ UserDefinedPowerCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPowerCycle_methods[] = { {"assign", (PyCFunction)UserDefinedPowerCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPowerCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPowerCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5963,13 +5963,13 @@ UserDefinedPowerCycle_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject static PyGetSetDef UserDefinedPowerCycle_getset[] = { {"ud_f_W_dot_cool_des", (getter)UserDefinedPowerCycle_get_ud_f_W_dot_cool_des,(setter)UserDefinedPowerCycle_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)UserDefinedPowerCycle_get_ud_ind_od,(setter)UserDefinedPowerCycle_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)UserDefinedPowerCycle_get_ud_m_dot_water_cool_des,(setter)UserDefinedPowerCycle_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -6084,11 +6084,11 @@ FinancialSolutionMode_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialSolutionMode_methods[] = { {"assign", (PyCFunction)FinancialSolutionMode_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialSolutionMode_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialSolutionMode_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6106,7 +6106,7 @@ FinancialSolutionMode_set_ppa_soln_mode(VarGroupObject *self, PyObject *value, v static PyGetSetDef FinancialSolutionMode_getset[] = { {"ppa_soln_mode", (getter)FinancialSolutionMode_get_ppa_soln_mode,(setter)FinancialSolutionMode_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode (0=Specify IRR target, 1=Specify PPA price)\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: PPA solution mode (0=Specify IRR target, 1=Specify PPA price)\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {NULL} /* Sentinel */ }; @@ -6221,11 +6221,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6243,7 +6243,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -6358,11 +6358,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6380,7 +6380,7 @@ Revenue_set_mp_energy_market_revenue(VarGroupObject *self, PyObject *value, void static PyGetSetDef Revenue_getset[] = { {"mp_energy_market_revenue", (getter)Revenue_get_mp_energy_market_revenue,(setter)Revenue_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True if csp_financial_model=6&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nRequired if csp_financial_model=6&is_dispatch=1"), NULL}, {NULL} /* Sentinel */ }; @@ -6495,11 +6495,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8559,12 +8559,11 @@ static PyMethodDef TcsmoltenSaltModule_methods[] = { {"new", TcsmoltenSalt_new, METH_VARARGS, PyDoc_STR("new() -> TcsmoltenSalt")}, {"default", TcsmoltenSalt_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcsmoltenSalt\n\nUse default attributes\n" - "`config` options:\n\n- \"MSPTAllEquityPartnershipFlip\"\n- \"MSPTLeveragedPartnershipFlip\"\n- \"MSPTMerchantPlant\"\n- \"MSPTSaleLeaseback\"\n- \"MSPTSingleOwner\"")}, + PyDoc_STR("default(config) -> TcsmoltenSalt\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"MSPTAllEquityPartnershipFlip\"*\n\n - *\"MSPTLeveragedPartnershipFlip\"*\n\n - *\"MSPTMerchantPlant\"*\n\n - *\"MSPTSaleLeaseback\"*\n\n - *\"MSPTSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcsmoltenSalt_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcsmoltenSalt\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcsmoltenSalt\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcsmoltenSalt_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcsmoltenSalt\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcsmoltenSalt\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcstroughEmpirical.c b/modules/TcstroughEmpirical.c index 13de5795..b9f89938 100644 --- a/modules/TcstroughEmpirical.c +++ b/modules/TcstroughEmpirical.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Trough_export(VarGroupObject *self, PyObject *args) static PyMethodDef Trough_methods[] = { {"assign", (PyCFunction)Trough_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Trough_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Trough_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Trough_vals = { var: val, ...}``")}, {"export", (PyCFunction)Trough_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ Trough_set_system_capacity(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Trough_getset[] = { {"system_capacity", (getter)Trough_get_system_capacity,(setter)Trough_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - TurbOutG\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - TurbOutG\n"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -422,10 +422,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 Time of Use Values for week end days\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -540,11 +540,11 @@ Solarfield_export(VarGroupObject *self, PyObject *args) static PyMethodDef Solarfield_methods[] = { {"assign", (PyCFunction)Solarfield_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Solarfield_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Solarfield_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Solarfield_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Solarfield_vals = { var: val, ...}``")}, {"export", (PyCFunction)Solarfield_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -766,58 +766,58 @@ Solarfield_set_i_SfTi(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Solarfield_getset[] = { {"DepAngle", (getter)Solarfield_get_DepAngle,(setter)Solarfield_set_DepAngle, - PyDoc_STR("*float*: Deployment Angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Deployment Angle [deg]\n\n**Required:**\nTrue"), NULL}, {"Distance_SCA", (getter)Solarfield_get_Distance_SCA,(setter)Solarfield_set_Distance_SCA, - PyDoc_STR("*float*: Distance between SCAs in Row [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Distance between SCAs in Row [m]\n\n**Required:**\nTrue"), NULL}, {"HTFFluid", (getter)Solarfield_get_HTFFluid,(setter)Solarfield_set_HTFFluid, - PyDoc_STR("*float*: Type of Heat Transfer Fluid used\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Type of Heat Transfer Fluid used\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"HtfGalArea", (getter)Solarfield_get_HtfGalArea,(setter)Solarfield_set_HtfGalArea, - PyDoc_STR("*float*: HTF Fluids in Gallons per Field Area [gal/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF Fluids in Gallons per Field Area [gal/m2]\n\n**Required:**\nTrue"), NULL}, {"MinHtfTemp", (getter)Solarfield_get_MinHtfTemp,(setter)Solarfield_set_MinHtfTemp, - PyDoc_STR("*float*: Minimum Heat Transfer Fluid Temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum Heat Transfer Fluid Temperature [C]\n\n**Required:**\nTrue"), NULL}, {"NumScas", (getter)Solarfield_get_NumScas,(setter)Solarfield_set_NumScas, - PyDoc_STR("*float*: Number of SCAs per Row\n\n*Required*: True"), + PyDoc_STR("*float*: Number of SCAs per Row\n\n**Required:**\nTrue"), NULL}, {"Row_Distance", (getter)Solarfield_get_Row_Distance,(setter)Solarfield_set_Row_Distance, - PyDoc_STR("*float*: Distance between Rows of SCAs [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Distance between Rows of SCAs [m]\n\n**Required:**\nTrue"), NULL}, {"SFTempInit", (getter)Solarfield_get_SFTempInit,(setter)Solarfield_set_SFTempInit, - PyDoc_STR("*float*: Solar Field Initial Temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar Field Initial Temperature [C]\n\n**Required:**\nTrue"), NULL}, {"SfInTempD", (getter)Solarfield_get_SfInTempD,(setter)Solarfield_set_SfInTempD, - PyDoc_STR("*float*: Solar Field Design Inlet Temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar Field Design Inlet Temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfInTempD``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SfOutTempD", (getter)Solarfield_get_SfOutTempD,(setter)Solarfield_set_SfOutTempD, - PyDoc_STR("*float*: Solar Field Design Outlet Temperature [C]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar Field Design Outlet Temperature [C]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfOutTempD``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SfPipeHl1", (getter)Solarfield_get_SfPipeHl1,(setter)Solarfield_set_SfPipeHl1, - PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - linear term [C^(-1)]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - linear term [C^(-1)]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfPipeHl1``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SfPipeHl2", (getter)Solarfield_get_SfPipeHl2,(setter)Solarfield_set_SfPipeHl2, - PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - quadratic term [C^(-2)]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - quadratic term [C^(-2)]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfPipeHl2``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SfPipeHl3", (getter)Solarfield_get_SfPipeHl3,(setter)Solarfield_set_SfPipeHl3, - PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - cubic term [C^(-3)]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar field piping heat loss at reduced temp. - cubic term [C^(-3)]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfPipeHl3``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SfPipeHl300", (getter)Solarfield_get_SfPipeHl300,(setter)Solarfield_set_SfPipeHl300, - PyDoc_STR("*float*: Solar field piping heat loss at design [W/m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Solar field piping heat loss at design [W/m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfPipeHl300``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"Solar_Field_Area", (getter)Solarfield_get_Solar_Field_Area,(setter)Solarfield_set_Solar_Field_Area, - PyDoc_STR("*float*: Solar Field Area [m2]\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - SfPar\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Solar Field Area [m2]\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Solar_Field_Area``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - SfPar\n\n\nThe value of ``Solar_Field_Area`` depends on the following variables:\n\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"Solar_Field_Mult", (getter)Solarfield_get_Solar_Field_Mult,(setter)Solarfield_set_Solar_Field_Mult, - PyDoc_STR("*float*: Solar Field Multiple\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - PTSmax\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Solar Field Multiple\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``Solar_Field_Mult``:\n\n\t - PTSmax\n\n\nThe value of ``Solar_Field_Mult`` depends on the following variables:\n\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"Stow_Angle", (getter)Solarfield_get_Stow_Angle,(setter)Solarfield_set_Stow_Angle, - PyDoc_STR("*float*: Night-Time Trough Stow Angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Night-Time Trough Stow Angle [deg]\n\n**Required:**\nTrue"), NULL}, {"i_SfTi", (getter)Solarfield_get_i_SfTi,(setter)Solarfield_set_i_SfTi, - PyDoc_STR("*float*: Solar Field HTF inlet Temperature (if -999, calculated) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar Field HTF inlet Temperature (if -999, calculated) [C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -932,11 +932,11 @@ Sca_export(VarGroupObject *self, PyObject *args) static PyMethodDef Sca_methods[] = { {"assign", (PyCFunction)Sca_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Sca_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Sca_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Sca_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Sca_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Sca_vals = { var: val, ...}``")}, {"export", (PyCFunction)Sca_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1086,40 +1086,40 @@ Sca_set_TrkTwstErr(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Sca_getset[] = { {"Ave_Focal_Length", (getter)Sca_get_Ave_Focal_Length,(setter)Sca_set_Ave_Focal_Length, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"ConcFac", (getter)Sca_get_ConcFac,(setter)Sca_set_ConcFac, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ConcFac``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"GeoAcc", (getter)Sca_get_GeoAcc,(setter)Sca_set_GeoAcc, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``GeoAcc``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"IamF0", (getter)Sca_get_IamF0,(setter)Sca_set_IamF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"IamF1", (getter)Sca_get_IamF1,(setter)Sca_set_IamF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"IamF2", (getter)Sca_get_IamF2,(setter)Sca_set_IamF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"MirCln", (getter)Sca_get_MirCln,(setter)Sca_set_MirCln, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``MirCln``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"MirRef", (getter)Sca_get_MirRef,(setter)Sca_set_MirRef, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``MirRef``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"SCA_aper", (getter)Sca_get_SCA_aper,(setter)Sca_set_SCA_aper, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - RefMirrAper\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SCA_aper``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - RefMirrAper\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"ScaLen", (getter)Sca_get_ScaLen,(setter)Sca_set_ScaLen, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"SfAvail", (getter)Sca_get_SfAvail,(setter)Sca_set_SfAvail, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TrkTwstErr", (getter)Sca_get_TrkTwstErr,(setter)Sca_set_TrkTwstErr, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TrkTwstErr``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1234,11 +1234,11 @@ Hce_export(VarGroupObject *self, PyObject *args) static PyMethodDef Hce_methods[] = { {"assign", (PyCFunction)Hce_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Hce_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Hce_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Hce_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Hce_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Hce_vals = { var: val, ...}``")}, {"export", (PyCFunction)Hce_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1448,55 +1448,55 @@ Hce_set_RefMirrAper(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Hce_getset[] = { {"HCEBelShad", (getter)Hce_get_HCEBelShad,(setter)Hce_set_HCEBelShad, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCEEnvTrans", (getter)Hce_get_HCEEnvTrans,(setter)Hce_set_HCEEnvTrans, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCEFrac", (getter)Hce_get_HCEFrac,(setter)Hce_set_HCEFrac, - PyDoc_STR("*sequence*: Fraction of field that is this type of HCE\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fraction of field that is this type of HCE\n\n**Required:**\nTrue"), NULL}, {"HCE_A0", (getter)Hce_get_HCE_A0,(setter)Hce_set_HCE_A0, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A1", (getter)Hce_get_HCE_A1,(setter)Hce_set_HCE_A1, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A2", (getter)Hce_get_HCE_A2,(setter)Hce_set_HCE_A2, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A3", (getter)Hce_get_HCE_A3,(setter)Hce_set_HCE_A3, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A4", (getter)Hce_get_HCE_A4,(setter)Hce_set_HCE_A4, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A5", (getter)Hce_get_HCE_A5,(setter)Hce_set_HCE_A5, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCE_A6", (getter)Hce_get_HCE_A6,(setter)Hce_set_HCE_A6, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCEabs", (getter)Hce_get_HCEabs,(setter)Hce_set_HCEabs, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCEdust", (getter)Hce_get_HCEdust,(setter)Hce_set_HCEdust, - PyDoc_STR("*sequence*: label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``HCEdust``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"HCEmisc", (getter)Hce_get_HCEmisc,(setter)Hce_set_HCEmisc, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"HCEtype", (getter)Hce_get_HCEtype,(setter)Hce_set_HCEtype, - PyDoc_STR("*sequence*: Number indicating the receiver type\n\n*Required*: True"), + PyDoc_STR("*sequence*: Number indicating the receiver type\n\n**Required:**\nTrue"), NULL}, {"NumHCETypes", (getter)Hce_get_NumHCETypes,(setter)Hce_set_NumHCETypes, - PyDoc_STR("*float*: Number of HCE types\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE types\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"PerfFac", (getter)Hce_get_PerfFac,(setter)Hce_set_PerfFac, - PyDoc_STR("*sequence*: label\n\n*Required*: True"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue"), NULL}, {"RefMirrAper", (getter)Hce_get_RefMirrAper,(setter)Hce_set_RefMirrAper, - PyDoc_STR("*sequence*: label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - SCA_aper\n"), + PyDoc_STR("*sequence*: label\n\n**Required:**\nTrue\n\nThe value of ``RefMirrAper`` depends on the following variables:\n\n\t - SCA_aper\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1611,11 +1611,11 @@ Pwrb_export(VarGroupObject *self, PyObject *args) static PyMethodDef Pwrb_methods[] = { {"assign", (PyCFunction)Pwrb_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Pwrb_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Pwrb_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Pwrb_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Pwrb_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Pwrb_vals = { var: val, ...}``")}, {"export", (PyCFunction)Pwrb_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1909,76 +1909,76 @@ Pwrb_set_TurbOutG(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Pwrb_getset[] = { {"E2TPLF0", (getter)Pwrb_get_E2TPLF0,(setter)Pwrb_set_E2TPLF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"E2TPLF1", (getter)Pwrb_get_E2TPLF1,(setter)Pwrb_set_E2TPLF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"E2TPLF2", (getter)Pwrb_get_E2TPLF2,(setter)Pwrb_set_E2TPLF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"E2TPLF3", (getter)Pwrb_get_E2TPLF3,(setter)Pwrb_set_E2TPLF3, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"E2TPLF4", (getter)Pwrb_get_E2TPLF4,(setter)Pwrb_set_E2TPLF4, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"LHVBoilEff", (getter)Pwrb_get_LHVBoilEff,(setter)Pwrb_set_LHVBoilEff, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"MaxGrOut", (getter)Pwrb_get_MaxGrOut,(setter)Pwrb_set_MaxGrOut, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - PFSmax\n\t - PTSmax\n\t - PTTMAX\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``MaxGrOut``:\n\n\t - PFSmax\n\t - PTSmax\n\t - PTTMAX\n"), NULL}, {"MinGrOut", (getter)Pwrb_get_MinGrOut,(setter)Pwrb_set_MinGrOut, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - PTTMIN\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``MinGrOut``:\n\n\t - PTTMIN\n"), NULL}, {"PTTMAX", (getter)Pwrb_get_PTTMAX,(setter)Pwrb_set_PTTMAX, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - MaxGrOut\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``PTTMAX`` depends on the following variables:\n\n\t - MaxGrOut\n"), NULL}, {"PTTMIN", (getter)Pwrb_get_PTTMIN,(setter)Pwrb_set_PTTMIN, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - MinGrOut\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``PTTMIN`` depends on the following variables:\n\n\t - MinGrOut\n"), NULL}, {"T2EPLF0", (getter)Pwrb_get_T2EPLF0,(setter)Pwrb_set_T2EPLF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"T2EPLF1", (getter)Pwrb_get_T2EPLF1,(setter)Pwrb_set_T2EPLF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"T2EPLF2", (getter)Pwrb_get_T2EPLF2,(setter)Pwrb_set_T2EPLF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"T2EPLF3", (getter)Pwrb_get_T2EPLF3,(setter)Pwrb_set_T2EPLF3, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"T2EPLF4", (getter)Pwrb_get_T2EPLF4,(setter)Pwrb_set_T2EPLF4, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorr0", (getter)Pwrb_get_TempCorr0,(setter)Pwrb_set_TempCorr0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorr1", (getter)Pwrb_get_TempCorr1,(setter)Pwrb_set_TempCorr1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorr2", (getter)Pwrb_get_TempCorr2,(setter)Pwrb_set_TempCorr2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorr3", (getter)Pwrb_get_TempCorr3,(setter)Pwrb_set_TempCorr3, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorr4", (getter)Pwrb_get_TempCorr4,(setter)Pwrb_set_TempCorr4, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TempCorrF", (getter)Pwrb_get_TempCorrF,(setter)Pwrb_set_TempCorrF, - PyDoc_STR("*float*: Temp Correction Mode (0=wetbulb 1=drybulb basis)\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Temp Correction Mode (0=wetbulb 1=drybulb basis)\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"TurSUE", (getter)Pwrb_get_TurSUE,(setter)Pwrb_set_TurSUE, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TurbEffG", (getter)Pwrb_get_TurbEffG,(setter)Pwrb_set_TurbEffG, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n\t - PFSmax\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TurbEffG``:\n\n\t - AntiFrPar\n\t - ChtfPar\n\t - PFSmax\n\t - PTSmax\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n"), NULL}, {"TurbOutG", (getter)Pwrb_get_TurbOutG,(setter)Pwrb_set_TurbOutG, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - BOPPar\n\t - ChtfPar\n\t - CtPar\n\t - HhtfPar\n\t - HtrPar\n\t - PFSmax\n\t - PTSmax\n\t - PbFixPar\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n\t - system_capacity\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TurbOutG``:\n\n\t - AntiFrPar\n\t - BOPPar\n\t - ChtfPar\n\t - CtPar\n\t - HhtfPar\n\t - HtrPar\n\t - PFSmax\n\t - PTSmax\n\t - PbFixPar\n\t - SfPar\n\t - Solar_Field_Area\n\t - Solar_Field_Mult\n\t - system_capacity\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2093,11 +2093,11 @@ Tes_export(VarGroupObject *self, PyObject *args) static PyMethodDef Tes_methods[] = { {"assign", (PyCFunction)Tes_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Tes_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Tes_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Tes_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Tes_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Tes_vals = { var: val, ...}``")}, {"export", (PyCFunction)Tes_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2223,34 +2223,34 @@ Tes_set_TurTesOutAdj(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Tes_getset[] = { {"E_tes_ini", (getter)Tes_get_E_tes_ini,(setter)Tes_set_E_tes_ini, - PyDoc_STR("*float*: Initial TES energy - fraction of max\n\n*Required*: True"), + PyDoc_STR("*float*: Initial TES energy - fraction of max\n\n**Required:**\nTrue"), NULL}, {"FossilFill", (getter)Tes_get_FossilFill,(setter)Tes_set_FossilFill, - PyDoc_STR("*sequence*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence*: Label\n\n**Required:**\nTrue"), NULL}, {"NUMTOU", (getter)Tes_get_NUMTOU,(setter)Tes_set_NUMTOU, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"PFSmax", (getter)Tes_get_PFSmax,(setter)Tes_set_PFSmax, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - MaxGrOut\n\t - TurTesEffAdj\n\t - TurTesOutAdj\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``PFSmax`` depends on the following variables:\n\n\t - MaxGrOut\n\t - TurTesEffAdj\n\t - TurTesOutAdj\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"PTSmax", (getter)Tes_get_PTSmax,(setter)Tes_set_PTSmax, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MaxGrOut\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Mult\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``PTSmax`` depends on the following variables:\n\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MaxGrOut\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Mult\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"TSHOURS", (getter)Tes_get_TSHOURS,(setter)Tes_set_TSHOURS, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TSLogic", (getter)Tes_get_TSLogic,(setter)Tes_set_TSLogic, - PyDoc_STR("*sequence[sequence]*: Label\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Label\n\n**Required:**\nTrue"), NULL}, {"TnkHL", (getter)Tes_get_TnkHL,(setter)Tes_set_TnkHL, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"TurTesEffAdj", (getter)Tes_get_TurTesEffAdj,(setter)Tes_set_TurTesEffAdj, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - PFSmax\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TurTesEffAdj``:\n\n\t - PFSmax\n"), NULL}, {"TurTesOutAdj", (getter)Tes_get_TurTesOutAdj,(setter)Tes_set_TurTesOutAdj, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - PFSmax\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``TurTesOutAdj``:\n\n\t - PFSmax\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2365,11 +2365,11 @@ Parasitic_export(VarGroupObject *self, PyObject *args) static PyMethodDef Parasitic_methods[] = { {"assign", (PyCFunction)Parasitic_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Parasitic_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Parasitic_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Parasitic_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Parasitic_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Parasitic_vals = { var: val, ...}``")}, {"export", (PyCFunction)Parasitic_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2735,94 +2735,94 @@ Parasitic_set_SfParPF(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Parasitic_getset[] = { {"AntiFrPar", (getter)Parasitic_get_AntiFrPar,(setter)Parasitic_set_AntiFrPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ChtfPar\n\t - ChtfParPF\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``AntiFrPar`` depends on the following variables:\n\n\t - ChtfPar\n\t - ChtfParPF\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"BOPPar", (getter)Parasitic_get_BOPPar,(setter)Parasitic_set_BOPPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - BOPParPF\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``BOPPar`` depends on the following variables:\n\n\t - BOPParPF\n\t - TurbOutG\n"), NULL}, {"BOPParF0", (getter)Parasitic_get_BOPParF0,(setter)Parasitic_set_BOPParF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"BOPParF1", (getter)Parasitic_get_BOPParF1,(setter)Parasitic_set_BOPParF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"BOPParF2", (getter)Parasitic_get_BOPParF2,(setter)Parasitic_set_BOPParF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"BOPParPF", (getter)Parasitic_get_BOPParPF,(setter)Parasitic_set_BOPParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - BOPPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``BOPParPF``:\n\n\t - BOPPar\n"), NULL}, {"CHTFParF0", (getter)Parasitic_get_CHTFParF0,(setter)Parasitic_set_CHTFParF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"CHTFParF1", (getter)Parasitic_get_CHTFParF1,(setter)Parasitic_set_CHTFParF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"CHTFParF2", (getter)Parasitic_get_CHTFParF2,(setter)Parasitic_set_CHTFParF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"ChtfPar", (getter)Parasitic_get_ChtfPar,(setter)Parasitic_set_ChtfPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ChtfParPF\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ChtfPar``:\n\n\t - AntiFrPar\n\n\nThe value of ``ChtfPar`` depends on the following variables:\n\n\t - ChtfParPF\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"ChtfParPF", (getter)Parasitic_get_ChtfParPF,(setter)Parasitic_set_ChtfParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - AntiFrPar\n\t - ChtfPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``ChtfParPF``:\n\n\t - AntiFrPar\n\t - ChtfPar\n"), NULL}, {"CtOpF", (getter)Parasitic_get_CtOpF,(setter)Parasitic_set_CtOpF, - PyDoc_STR("*float*: Label\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"CtPar", (getter)Parasitic_get_CtPar,(setter)Parasitic_set_CtPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - CtParPF\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``CtPar`` depends on the following variables:\n\n\t - CtParPF\n\t - TurbOutG\n"), NULL}, {"CtParF0", (getter)Parasitic_get_CtParF0,(setter)Parasitic_set_CtParF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"CtParF1", (getter)Parasitic_get_CtParF1,(setter)Parasitic_set_CtParF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"CtParF2", (getter)Parasitic_get_CtParF2,(setter)Parasitic_set_CtParF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"CtParPF", (getter)Parasitic_get_CtParPF,(setter)Parasitic_set_CtParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - CtPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``CtParPF``:\n\n\t - CtPar\n"), NULL}, {"HhtfPar", (getter)Parasitic_get_HhtfPar,(setter)Parasitic_set_HhtfPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - HhtfParPF\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``HhtfPar`` depends on the following variables:\n\n\t - HhtfParPF\n\t - TurbOutG\n"), NULL}, {"HhtfParF0", (getter)Parasitic_get_HhtfParF0,(setter)Parasitic_set_HhtfParF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HhtfParF1", (getter)Parasitic_get_HhtfParF1,(setter)Parasitic_set_HhtfParF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HhtfParF2", (getter)Parasitic_get_HhtfParF2,(setter)Parasitic_set_HhtfParF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HhtfParPF", (getter)Parasitic_get_HhtfParPF,(setter)Parasitic_set_HhtfParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - HhtfPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``HhtfParPF``:\n\n\t - HhtfPar\n"), NULL}, {"HtrPar", (getter)Parasitic_get_HtrPar,(setter)Parasitic_set_HtrPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - HtrParPF\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``HtrPar`` depends on the following variables:\n\n\t - HtrParPF\n\t - TurbOutG\n"), NULL}, {"HtrParF0", (getter)Parasitic_get_HtrParF0,(setter)Parasitic_set_HtrParF0, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HtrParF1", (getter)Parasitic_get_HtrParF1,(setter)Parasitic_set_HtrParF1, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HtrParF2", (getter)Parasitic_get_HtrParF2,(setter)Parasitic_set_HtrParF2, - PyDoc_STR("*float*: Label\n\n*Required*: True"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue"), NULL}, {"HtrParPF", (getter)Parasitic_get_HtrParPF,(setter)Parasitic_set_HtrParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - HtrPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``HtrParPF``:\n\n\t - HtrPar\n"), NULL}, {"PbFixPar", (getter)Parasitic_get_PbFixPar,(setter)Parasitic_set_PbFixPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``PbFixPar`` depends on the following variables:\n\n\t - TurbOutG\n"), NULL}, {"SfPar", (getter)Parasitic_get_SfPar,(setter)Parasitic_set_SfPar, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfParPF\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of ``SfPar`` depends on the following variables:\n\n\t - ConcFac\n\t - GeoAcc\n\t - HCEdust\n\t - MirCln\n\t - MirRef\n\t - SCA_aper\n\t - SfInTempD\n\t - SfOutTempD\n\t - SfParPF\n\t - SfPipeHl1\n\t - SfPipeHl2\n\t - SfPipeHl3\n\t - SfPipeHl300\n\t - Solar_Field_Area\n\t - TrkTwstErr\n\t - TurbEffG\n\t - TurbOutG\n"), NULL}, {"SfParPF", (getter)Parasitic_get_SfParPF,(setter)Parasitic_set_SfParPF, - PyDoc_STR("*float*: Label\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - SfPar\n"), + PyDoc_STR("*float*: Label\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``SfParPF``:\n\n\t - SfPar\n"), NULL}, {NULL} /* Sentinel */ }; @@ -2937,11 +2937,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3948,12 +3948,11 @@ static PyMethodDef TcstroughEmpiricalModule_methods[] = { {"new", TcstroughEmpirical_new, METH_VARARGS, PyDoc_STR("new() -> TcstroughEmpirical")}, {"default", TcstroughEmpirical_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcstroughEmpirical\n\nUse default attributes\n" - "`config` options:\n\n- \"EmpiricalTroughAllEquityPartnershipFlip\"\n- \"EmpiricalTroughCommercial\"\n- \"EmpiricalTroughLCOECalculator\"\n- \"EmpiricalTroughLeveragedPartnershipFlip\"\n- \"EmpiricalTroughMerchantPlant\"\n- \"EmpiricalTroughNone\"\n- \"EmpiricalTroughSaleLeaseback\"\n- \"EmpiricalTroughSingleOwner\"")}, + PyDoc_STR("default(config) -> TcstroughEmpirical\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"EmpiricalTroughAllEquityPartnershipFlip\"*\n\n - *\"EmpiricalTroughCommercial\"*\n\n - *\"EmpiricalTroughLCOECalculator\"*\n\n - *\"EmpiricalTroughLeveragedPartnershipFlip\"*\n\n - *\"EmpiricalTroughMerchantPlant\"*\n\n - *\"EmpiricalTroughNone\"*\n\n - *\"EmpiricalTroughSaleLeaseback\"*\n\n - *\"EmpiricalTroughSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcstroughEmpirical_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcstroughEmpirical\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcstroughEmpirical\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcstroughEmpirical_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcstroughEmpirical\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcstroughEmpirical\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TcstroughPhysical.c b/modules/TcstroughPhysical.c index e07e4fbe..6db80ebe 100644 --- a/modules/TcstroughPhysical.c +++ b/modules/TcstroughPhysical.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: Local weather file with path [none]\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Local weather file with path [none]\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Trough_export(VarGroupObject *self, PyObject *args) static PyMethodDef Trough_methods[] = { {"assign", (PyCFunction)Trough_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Trough_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Trough_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Trough_vals = { var: val, ...}``")}, {"export", (PyCFunction)Trough_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ Trough_set_system_capacity(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Trough_getset[] = { {"system_capacity", (getter)Trough_get_system_capacity,(setter)Trough_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ SolarField_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarField_methods[] = { {"assign", (PyCFunction)SolarField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarField_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1706,331 +1706,331 @@ SolarField_set_water_usage_per_wash(VarGroupObject *self, PyObject *value, void static PyGetSetDef SolarField_getset[] = { {"A_aperture", (getter)SolarField_get_A_aperture,(setter)SolarField_set_A_aperture, - PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)SolarField_get_AbsorberMaterial,(setter)SolarField_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)SolarField_get_AnnulusGas,(setter)SolarField_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n**Required:**\nTrue"), NULL}, {"Ave_Focal_Length", (getter)SolarField_get_Ave_Focal_Length,(setter)SolarField_set_Ave_Focal_Length, - PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n**Required:**\nTrue"), NULL}, {"ColperSCA", (getter)SolarField_get_ColperSCA,(setter)SolarField_set_ColperSCA, - PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n**Required:**\nTrue"), NULL}, {"D_2", (getter)SolarField_get_D_2,(setter)SolarField_set_D_2, - PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)SolarField_get_D_3,(setter)SolarField_set_D_3, - PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)SolarField_get_D_4,(setter)SolarField_set_D_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)SolarField_get_D_5,(setter)SolarField_set_D_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_cpnt", (getter)SolarField_get_D_cpnt,(setter)SolarField_set_D_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)SolarField_get_D_p,(setter)SolarField_set_D_p, - PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)SolarField_get_Design_loss,(setter)SolarField_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)SolarField_get_Dirt_HCE,(setter)SolarField_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n**Required:**\nTrue"), NULL}, {"Dirt_mirror", (getter)SolarField_get_Dirt_mirror,(setter)SolarField_set_Dirt_mirror, - PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"Distance_SCA", (getter)SolarField_get_Distance_SCA,(setter)SolarField_set_Distance_SCA, - PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)SolarField_get_EPSILON_4,(setter)SolarField_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_5", (getter)SolarField_get_EPSILON_5,(setter)SolarField_set_EPSILON_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"Error", (getter)SolarField_get_Error,(setter)SolarField_set_Error, - PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"FieldConfig", (getter)SolarField_get_FieldConfig,(setter)SolarField_set_FieldConfig, - PyDoc_STR("*float*: Number of subfield headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of subfield headers [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)SolarField_get_Flow_type,(setter)SolarField_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"Fluid", (getter)SolarField_get_Fluid,(setter)SolarField_set_Fluid, - PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)SolarField_get_GeomEffects,(setter)SolarField_set_GeomEffects, - PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)SolarField_get_GlazingIntactIn,(setter)SolarField_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)SolarField_get_HCE_FieldFrac,(setter)SolarField_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)SolarField_get_HDR_rough,(setter)SolarField_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"IAM_matrix", (getter)SolarField_get_IAM_matrix,(setter)SolarField_set_IAM_matrix, - PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)SolarField_get_I_bn_des,(setter)SolarField_set_I_bn_des, - PyDoc_STR("*float*: Solar irradiation at design [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar irradiation at design [W/m2]\n\n**Required:**\nTrue"), NULL}, {"K_cpnt", (getter)SolarField_get_K_cpnt,(setter)SolarField_set_K_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_SCA", (getter)SolarField_get_L_SCA,(setter)SolarField_set_L_SCA, - PyDoc_STR("*sequence*: Length of the SCA [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of the SCA [m]\n\n**Required:**\nTrue"), NULL}, {"L_aperture", (getter)SolarField_get_L_aperture,(setter)SolarField_set_L_aperture, - PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n**Required:**\nTrue"), NULL}, {"L_cpnt", (getter)SolarField_get_L_cpnt,(setter)SolarField_set_L_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_rnr_pb", (getter)SolarField_get_L_rnr_pb,(setter)SolarField_set_L_rnr_pb, - PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n**Required:**\nTrue"), NULL}, {"L_rnr_per_xpan", (getter)SolarField_get_L_rnr_per_xpan,(setter)SolarField_set_L_rnr_per_xpan, - PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_hdr", (getter)SolarField_get_L_xpan_hdr,(setter)SolarField_set_L_xpan_hdr, - PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_rnr", (getter)SolarField_get_L_xpan_rnr,(setter)SolarField_set_L_xpan_rnr, - PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"Min_rnr_xpans", (getter)SolarField_get_Min_rnr_xpans,(setter)SolarField_set_Min_rnr_xpans, - PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n**Required:**\nTrue"), NULL}, {"N_hdr_per_xpan", (getter)SolarField_get_N_hdr_per_xpan,(setter)SolarField_set_N_hdr_per_xpan, - PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n**Required:**\nTrue"), NULL}, {"N_max_hdr_diams", (getter)SolarField_get_N_max_hdr_diams,(setter)SolarField_set_N_max_hdr_diams, - PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)SolarField_get_P_a,(setter)SolarField_set_P_a, - PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n**Required:**\nTrue"), NULL}, {"P_ref", (getter)SolarField_get_P_ref,(setter)SolarField_set_P_ref, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {"Pipe_hl_coef", (getter)SolarField_get_Pipe_hl_coef,(setter)SolarField_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Rho_mirror_clean", (getter)SolarField_get_Rho_mirror_clean,(setter)SolarField_set_Rho_mirror_clean, - PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)SolarField_get_Rough,(setter)SolarField_set_Rough, - PyDoc_STR("*sequence[sequence]*: Relative roughness of the internal HCE surface [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Relative roughness of the internal HCE surface [-]\n\n**Required:**\nTrue"), NULL}, {"Row_Distance", (getter)SolarField_get_Row_Distance,(setter)SolarField_set_Row_Distance, - PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n**Required:**\nTrue"), NULL}, {"SCADefocusArray", (getter)SolarField_get_SCADefocusArray,(setter)SolarField_set_SCADefocusArray, - PyDoc_STR("*sequence*: Collector defocus order [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Collector defocus order [none]\n\n**Required:**\nTrue"), NULL}, {"SCAInfoArray", (getter)SolarField_get_SCAInfoArray,(setter)SolarField_set_SCAInfoArray, - PyDoc_STR("*sequence[sequence]*: Receiver (,1) and collector (,2) type for each assembly in loop [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver (,1) and collector (,2) type for each assembly in loop [none]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)SolarField_get_SCA_drives_elec,(setter)SolarField_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/SCA]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/SCA]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)SolarField_get_Shadowing,(setter)SolarField_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n**Required:**\nTrue"), NULL}, {"T_fp", (getter)SolarField_get_T_fp,(setter)SolarField_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_in_des", (getter)SolarField_get_T_loop_in_des,(setter)SolarField_set_T_loop_in_des, - PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_out", (getter)SolarField_get_T_loop_out,(setter)SolarField_set_T_loop_out, - PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_startup", (getter)SolarField_get_T_startup,(setter)SolarField_set_T_startup, - PyDoc_STR("*float*: Required temperature of the system before the power block can be switched on [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Required temperature of the system before the power block can be switched on [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)SolarField_get_Tau_envelope,(setter)SolarField_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)SolarField_get_TrackingError,(setter)SolarField_set_TrackingError, - PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"Type_cpnt", (getter)SolarField_get_Type_cpnt,(setter)SolarField_set_Type_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_max", (getter)SolarField_get_V_hdr_cold_max,(setter)SolarField_set_V_hdr_cold_max, - PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_min", (getter)SolarField_get_V_hdr_cold_min,(setter)SolarField_set_V_hdr_cold_min, - PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_max", (getter)SolarField_get_V_hdr_hot_max,(setter)SolarField_set_V_hdr_hot_max, - PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_min", (getter)SolarField_get_V_hdr_hot_min,(setter)SolarField_set_V_hdr_hot_min, - PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_aperture", (getter)SolarField_get_W_aperture,(setter)SolarField_set_W_aperture, - PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n**Required:**\nTrue"), NULL}, {"accept_init", (getter)SolarField_get_accept_init,(setter)SolarField_set_accept_init, - PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n**Required:**\nTrue"), NULL}, {"accept_loc", (getter)SolarField_get_accept_loc,(setter)SolarField_set_accept_loc, - PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n*Info*: hx/loop\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n**Info:**\nhx/loop\n\n**Required:**\nTrue"), NULL}, {"accept_mode", (getter)SolarField_get_accept_mode,(setter)SolarField_set_accept_mode, - PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n*Info*: no/yes\n\n*Required*: True"), + PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n**Info:**\nno/yes\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)SolarField_get_alpha_abs,(setter)SolarField_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)SolarField_get_alpha_env,(setter)SolarField_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"calc_design_pipe_vals", (getter)SolarField_get_calc_design_pipe_vals,(setter)SolarField_set_calc_design_pipe_vals, - PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n**Required:**\nTrue"), NULL}, {"custom_sf_pipe_sizes", (getter)SolarField_get_custom_sf_pipe_sizes,(setter)SolarField_set_custom_sf_pipe_sizes, - PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_11", (getter)SolarField_get_epsilon_3_11,(setter)SolarField_set_epsilon_3_11, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_12", (getter)SolarField_get_epsilon_3_12,(setter)SolarField_set_epsilon_3_12, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_13", (getter)SolarField_get_epsilon_3_13,(setter)SolarField_set_epsilon_3_13, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_14", (getter)SolarField_get_epsilon_3_14,(setter)SolarField_set_epsilon_3_14, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_21", (getter)SolarField_get_epsilon_3_21,(setter)SolarField_set_epsilon_3_21, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_22", (getter)SolarField_get_epsilon_3_22,(setter)SolarField_set_epsilon_3_22, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_23", (getter)SolarField_get_epsilon_3_23,(setter)SolarField_set_epsilon_3_23, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_24", (getter)SolarField_get_epsilon_3_24,(setter)SolarField_set_epsilon_3_24, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_31", (getter)SolarField_get_epsilon_3_31,(setter)SolarField_set_epsilon_3_31, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_32", (getter)SolarField_get_epsilon_3_32,(setter)SolarField_set_epsilon_3_32, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_33", (getter)SolarField_get_epsilon_3_33,(setter)SolarField_set_epsilon_3_33, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_34", (getter)SolarField_get_epsilon_3_34,(setter)SolarField_set_epsilon_3_34, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_41", (getter)SolarField_get_epsilon_3_41,(setter)SolarField_set_epsilon_3_41, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_42", (getter)SolarField_get_epsilon_3_42,(setter)SolarField_set_epsilon_3_42, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_43", (getter)SolarField_get_epsilon_3_43,(setter)SolarField_set_epsilon_3_43, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_44", (getter)SolarField_get_epsilon_3_44,(setter)SolarField_set_epsilon_3_44, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)SolarField_get_eta_pump,(setter)SolarField_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"fthrctrl", (getter)SolarField_get_fthrctrl,(setter)SolarField_set_fthrctrl, - PyDoc_STR("*float*: Defocusing strategy [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Defocusing strategy [none]\n\n**Required:**\nTrue"), NULL}, {"fthrok", (getter)SolarField_get_fthrok,(setter)SolarField_set_fthrok, - PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmax", (getter)SolarField_get_m_dot_htfmax,(setter)SolarField_set_m_dot_htfmax, - PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmin", (getter)SolarField_get_m_dot_htfmin,(setter)SolarField_set_m_dot_htfmin, - PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_cold", (getter)SolarField_get_mc_bal_cold,(setter)SolarField_set_mc_bal_cold, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_hot", (getter)SolarField_get_mc_bal_hot,(setter)SolarField_set_mc_bal_hot, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n*Info*: none\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n**Info:**\nnone\n\n**Required:**\nTrue"), NULL}, {"mc_bal_sca", (getter)SolarField_get_mc_bal_sca,(setter)SolarField_set_mc_bal_sca, - PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n*Required*: True"), + PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n**Required:**\nTrue"), NULL}, {"nColt", (getter)SolarField_get_nColt,(setter)SolarField_set_nColt, - PyDoc_STR("*float*: Number of collector types [none]\n\n*Options*: constant=4\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector types [none]\n\n**Options:**\nconstant=4\n\n**Required:**\nTrue"), NULL}, {"nHCEVar", (getter)SolarField_get_nHCEVar,(setter)SolarField_set_nHCEVar, - PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n**Required:**\nTrue"), NULL}, {"nHCEt", (getter)SolarField_get_nHCEt,(setter)SolarField_set_nHCEt, - PyDoc_STR("*float*: Number of HCE types [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE types [none]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)SolarField_get_nLoops,(setter)SolarField_set_nLoops, - PyDoc_STR("*float*: Number of loops in the field [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of loops in the field [none]\n\n**Required:**\nTrue"), NULL}, {"nSCA", (getter)SolarField_get_nSCA,(setter)SolarField_set_nSCA, - PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n**Required:**\nTrue"), NULL}, {"northsouth_field_sep", (getter)SolarField_get_northsouth_field_sep,(setter)SolarField_set_northsouth_field_sep, - PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n*Required*: True"), + PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n**Required:**\nTrue"), NULL}, {"offset_xpan_hdr", (getter)SolarField_get_offset_xpan_hdr,(setter)SolarField_set_offset_xpan_hdr, - PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_diams", (getter)SolarField_get_sf_hdr_diams,(setter)SolarField_set_sf_hdr_diams, - PyDoc_STR("*sequence*: Custom header diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom header diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_lengths", (getter)SolarField_get_sf_hdr_lengths,(setter)SolarField_set_sf_hdr_lengths, - PyDoc_STR("*sequence*: Custom header lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom header lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_wallthicks", (getter)SolarField_get_sf_hdr_wallthicks,(setter)SolarField_set_sf_hdr_wallthicks, - PyDoc_STR("*sequence*: Custom header wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom header wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_diams", (getter)SolarField_get_sf_rnr_diams,(setter)SolarField_set_sf_rnr_diams, - PyDoc_STR("*sequence*: Custom runner diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom runner diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_lengths", (getter)SolarField_get_sf_rnr_lengths,(setter)SolarField_set_sf_rnr_lengths, - PyDoc_STR("*sequence*: Custom runner lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom runner lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_wallthicks", (getter)SolarField_get_sf_rnr_wallthicks,(setter)SolarField_set_sf_rnr_wallthicks, - PyDoc_STR("*sequence*: Custom runner wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom runner wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"solar_mult", (getter)SolarField_get_solar_mult,(setter)SolarField_set_solar_mult, - PyDoc_STR("*float*: Solar multiple [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar multiple [none]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)SolarField_get_theta_dep,(setter)SolarField_set_theta_dep, - PyDoc_STR("*float*: Deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)SolarField_get_theta_stow,(setter)SolarField_set_theta_stow, - PyDoc_STR("*float*: Stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"washing_frequency", (getter)SolarField_get_washing_frequency,(setter)SolarField_set_washing_frequency, - PyDoc_STR("*float*: Mirror washing frequency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [none]\n\n**Required:**\nTrue"), NULL}, {"water_usage_per_wash", (getter)SolarField_get_water_usage_per_wash,(setter)SolarField_set_water_usage_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2145,11 +2145,11 @@ Controller_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controller_methods[] = { {"assign", (PyCFunction)Controller_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controller_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controller_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controller_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controller_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2827,172 +2827,172 @@ Controller_set_vol_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Controller_getset[] = { {"DP_SGS", (getter)Controller_get_DP_SGS,(setter)Controller_set_DP_SGS, - PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)Controller_get_HDR_rough,(setter)Controller_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness - used as general pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness - used as general pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"T_set_aux", (getter)Controller_get_T_set_aux,(setter)Controller_set_T_set_aux, - PyDoc_STR("*float*: Aux heater outlet temp set point [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater outlet temp set point [C]\n\n**Required:**\nTrue"), NULL}, {"T_tank_cold_ini", (getter)Controller_get_T_tank_cold_ini,(setter)Controller_set_T_tank_cold_ini, - PyDoc_STR("*float*: Initial cold tank fluid tmeperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial cold tank fluid tmeperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_tank_hot_inlet_min", (getter)Controller_get_T_tank_hot_inlet_min,(setter)Controller_set_T_tank_hot_inlet_min, - PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"V_tank_hot_ini", (getter)Controller_get_V_tank_hot_ini,(setter)Controller_set_V_tank_hot_ini, - PyDoc_STR("*float*: Initial hot tank fluid volume [m3]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial hot tank fluid volume [m3]\n\n**Required:**\nTrue"), NULL}, {"V_tes_des", (getter)Controller_get_V_tes_des,(setter)Controller_set_V_tes_des, - PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_pb_design", (getter)Controller_get_W_pb_design,(setter)Controller_set_W_pb_design, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {"aux_array", (getter)Controller_get_aux_array,(setter)Controller_set_aux_array, - PyDoc_STR("*sequence*: Coefficients for auxiliary heater parasitics calcs [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Coefficients for auxiliary heater parasitics calcs [-]\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)Controller_get_bop_array,(setter)Controller_set_bop_array, - PyDoc_STR("*sequence*: Coefficients for balance of plant parasitics calcs [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Coefficients for balance of plant parasitics calcs [-]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_Thtr", (getter)Controller_get_cold_tank_Thtr,(setter)Controller_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"custom_sgs_pipe_sizes", (getter)Controller_get_custom_sgs_pipe_sizes,(setter)Controller_set_custom_sgs_pipe_sizes, - PyDoc_STR("*float*: Use custom SGS pipe diams, wallthks, and lengths [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom SGS pipe diams, wallthks, and lengths [-]\n\n**Required:**\nTrue"), NULL}, {"custom_tes_p_loss", (getter)Controller_get_custom_tes_p_loss,(setter)Controller_set_custom_tes_p_loss, - PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n*Required*: True"), + PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_cutoff_frac", (getter)Controller_get_cycle_cutoff_frac,(setter)Controller_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)Controller_get_cycle_max_frac,(setter)Controller_set_cycle_max_frac, - PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n**Required:**\nTrue"), NULL}, {"dt_cold", (getter)Controller_get_dt_cold,(setter)Controller_set_dt_cold, - PyDoc_STR("*float*: Cold side HX approach temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold side HX approach temp [C]\n\n**Required:**\nTrue"), NULL}, {"dt_hot", (getter)Controller_get_dt_hot,(setter)Controller_set_dt_hot, - PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)Controller_get_eta_pump,(setter)Controller_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"f_tc_cold", (getter)Controller_get_f_tc_cold,(setter)Controller_set_f_tc_cold, - PyDoc_STR("*float*: 0=entire tank is hot, 1=entire tank is cold [-]\n\n*Required*: True"), + PyDoc_STR("*float*: 0=entire tank is hot, 1=entire tank is cold [-]\n\n**Required:**\nTrue"), NULL}, {"ffrac", (getter)Controller_get_ffrac,(setter)Controller_set_ffrac, - PyDoc_STR("*sequence*: Fossil dispatch logic [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fossil dispatch logic [-]\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Controller_get_field_fl_props,(setter)Controller_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"fossil_mode", (getter)Controller_get_fossil_mode,(setter)Controller_set_fossil_mode, - PyDoc_STR("*float*: Fossil backup mode 1=Normal 2=Topping [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil backup mode 1=Normal 2=Topping [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)Controller_get_h_tank,(setter)Controller_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)Controller_get_h_tank_min,(setter)Controller_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"has_hot_tank_bypass", (getter)Controller_get_has_hot_tank_bypass,(setter)Controller_set_has_hot_tank_bypass, - PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)Controller_get_hot_tank_Thtr,(setter)Controller_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"hx_config", (getter)Controller_get_hx_config,(setter)Controller_set_hx_config, - PyDoc_STR("*float*: HX configuration [-]\n\n*Required*: True"), + PyDoc_STR("*float*: HX configuration [-]\n\n**Required:**\nTrue"), NULL}, {"is_hx", (getter)Controller_get_is_hx,(setter)Controller_set_is_hx, - PyDoc_STR("*float*: Heat exchanger (HX) exists (1=yes, 0=no) [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat exchanger (HX) exists (1=yes, 0=no) [-]\n\n**Required:**\nTrue"), NULL}, {"k_tes_loss_coeffs", (getter)Controller_get_k_tes_loss_coeffs,(setter)Controller_set_k_tes_loss_coeffs, - PyDoc_STR("*sequence*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n**Required:**\nTrue"), NULL}, {"nodes", (getter)Controller_get_nodes,(setter)Controller_set_nodes, - PyDoc_STR("*float*: Nodes modeled in the flow path [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Nodes modeled in the flow path [-]\n\n**Required:**\nTrue"), NULL}, {"pb_fixed_par", (getter)Controller_get_pb_fixed_par,(setter)Controller_set_pb_fixed_par, - PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [-]\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)Controller_get_pb_pump_coef,(setter)Controller_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/(kg/s)]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/(kg/s)]\n\n**Required:**\nTrue"), NULL}, {"q_max_aux", (getter)Controller_get_q_max_aux,(setter)Controller_set_q_max_aux, - PyDoc_STR("*float*: Max heat rate of auxiliary heater [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Max heat rate of auxiliary heater [MWt]\n\n**Required:**\nTrue"), NULL}, {"q_pb_design", (getter)Controller_get_q_pb_design,(setter)Controller_set_q_pb_design, - PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n**Required:**\nTrue"), NULL}, {"sf_type", (getter)Controller_get_sf_type,(setter)Controller_set_sf_type, - PyDoc_STR("*float*: Solar field type, 1 = trough, 2 = tower [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar field type, 1 = trough, 2 = tower [-]\n\n**Required:**\nTrue"), NULL}, {"sgs_diams", (getter)Controller_get_sgs_diams,(setter)Controller_set_sgs_diams, - PyDoc_STR("*sequence*: Custom SGS diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sgs_lengths", (getter)Controller_get_sgs_lengths,(setter)Controller_set_sgs_lengths, - PyDoc_STR("*sequence*: Custom SGS lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sgs_wallthicks", (getter)Controller_get_sgs_wallthicks,(setter)Controller_set_sgs_wallthicks, - PyDoc_STR("*sequence*: Custom SGS wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Custom SGS wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"store_fl_props", (getter)Controller_get_store_fl_props,(setter)Controller_set_store_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"store_fluid", (getter)Controller_get_store_fluid,(setter)Controller_set_store_fluid, - PyDoc_STR("*float*: Material number for storage fluid [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Material number for storage fluid [-]\n\n**Required:**\nTrue"), NULL}, {"t_ch_out_max", (getter)Controller_get_t_ch_out_max,(setter)Controller_set_t_ch_out_max, - PyDoc_STR("*float*: Max allowable cold side outlet temp during charge [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Max allowable cold side outlet temp during charge [C]\n\n**Required:**\nTrue"), NULL}, {"t_dis_out_min", (getter)Controller_get_t_dis_out_min,(setter)Controller_set_t_dis_out_min, - PyDoc_STR("*float*: Min allowable hot side outlet temp during discharge [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Min allowable hot side outlet temp during discharge [C]\n\n**Required:**\nTrue"), NULL}, {"t_standby_reset", (getter)Controller_get_t_standby_reset,(setter)Controller_set_t_standby_reset, - PyDoc_STR("*float*: Maximum allowable time for PB standby operation [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum allowable time for PB standby operation [hr]\n\n**Required:**\nTrue"), NULL}, {"tank_max_heat", (getter)Controller_get_tank_max_heat,(setter)Controller_set_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)Controller_get_tank_pairs,(setter)Controller_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tanks_in_parallel", (getter)Controller_get_tanks_in_parallel,(setter)Controller_set_tanks_in_parallel, - PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n**Required:**\nTrue"), NULL}, {"tc_fill", (getter)Controller_get_tc_fill,(setter)Controller_set_tc_fill, - PyDoc_STR("*float*: Thermocline fill material [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermocline fill material [-]\n\n**Required:**\nTrue"), NULL}, {"tc_void", (getter)Controller_get_tc_void,(setter)Controller_set_tc_void, - PyDoc_STR("*float*: Thermocline void fraction [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermocline void fraction [-]\n\n**Required:**\nTrue"), NULL}, {"tes_pump_coef", (getter)Controller_get_tes_pump_coef,(setter)Controller_set_tes_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/(kg/s)]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/(kg/s)]\n\n**Required:**\nTrue"), NULL}, {"tes_type", (getter)Controller_get_tes_type,(setter)Controller_set_tes_type, - PyDoc_STR("*float*: 1=2-tank, 2=thermocline [-]\n\n*Required*: True"), + PyDoc_STR("*float*: 1=2-tank, 2=thermocline [-]\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)Controller_get_tshours,(setter)Controller_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {"tslogic_a", (getter)Controller_get_tslogic_a,(setter)Controller_set_tslogic_a, - PyDoc_STR("*sequence*: Dispatch logic without solar [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic without solar [-]\n\n**Required:**\nTrue"), NULL}, {"tslogic_b", (getter)Controller_get_tslogic_b,(setter)Controller_set_tslogic_b, - PyDoc_STR("*sequence*: Dispatch logic with solar [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic with solar [-]\n\n**Required:**\nTrue"), NULL}, {"tslogic_c", (getter)Controller_get_tslogic_c,(setter)Controller_set_tslogic_c, - PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)Controller_get_u_tank,(setter)Controller_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"vol_tank", (getter)Controller_get_vol_tank,(setter)Controller_set_vol_tank, - PyDoc_STR("*float*: Total tank volume, including unusable HTF at bottom [m3]\n\n*Required*: True"), + PyDoc_STR("*float*: Total tank volume, including unusable HTF at bottom [m3]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3107,11 +3107,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3141,10 +3141,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for weekends\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for weekends\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3259,11 +3259,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3473,55 +3473,55 @@ Powerblock_set_tech_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Powerblock_getset[] = { {"CT", (getter)Powerblock_get_CT,(setter)Powerblock_set_CT, - PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"F_wc", (getter)Powerblock_get_F_wc,(setter)Powerblock_set_F_wc, - PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n*Options*: constant=[0,0,0,0,0,0,0,0,0]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n**Options:**\nconstant=[0,0,0,0,0,0,0,0,0]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_boil", (getter)Powerblock_get_P_boil,(setter)Powerblock_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)Powerblock_get_P_cond_min,(setter)Powerblock_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)Powerblock_get_P_cond_ratio,(setter)Powerblock_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_ITD_des", (getter)Powerblock_get_T_ITD_des,(setter)Powerblock_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)Powerblock_get_T_amb_des,(setter)Powerblock_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)Powerblock_get_T_approach,(setter)Powerblock_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"dT_cw_ref", (getter)Powerblock_get_dT_cw_ref,(setter)Powerblock_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"eta_ref", (getter)Powerblock_get_eta_ref,(setter)Powerblock_set_eta_ref, - PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n**Required:**\nTrue"), NULL}, {"n_pl_inc", (getter)Powerblock_get_n_pl_inc,(setter)Powerblock_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)Powerblock_get_pb_bd_frac,(setter)Powerblock_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pc_config", (getter)Powerblock_get_pc_config,(setter)Powerblock_set_pc_config, - PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)Powerblock_get_q_sby_frac,(setter)Powerblock_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)Powerblock_get_startup_frac,(setter)Powerblock_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)Powerblock_get_startup_time,(setter)Powerblock_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {"tech_type", (getter)Powerblock_get_tech_type,(setter)Powerblock_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n*Info*: tower/trough/user\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n**Info:**\ntower/trough/user\n\n**Required:**\nRequired if pc_config=0"), NULL}, {NULL} /* Sentinel */ }; @@ -3636,11 +3636,11 @@ UserDefinedPC_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPC_methods[] = { {"assign", (PyCFunction)UserDefinedPC_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPC_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPC_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3802,43 +3802,43 @@ UserDefinedPC_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject *value, static PyGetSetDef UserDefinedPC_getset[] = { {"ud_T_amb_des", (getter)UserDefinedPC_get_ud_T_amb_des,(setter)UserDefinedPC_set_ud_T_amb_des, - PyDoc_STR("*float*: Ambient temperature at user-defined power cycle design point [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Ambient temperature at user-defined power cycle design point [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_amb_high", (getter)UserDefinedPC_get_ud_T_amb_high,(setter)UserDefinedPC_set_ud_T_amb_high, - PyDoc_STR("*float*: High level ambient temperature for HTF mass flow rate parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level ambient temperature for HTF mass flow rate parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_amb_ind_od", (getter)UserDefinedPC_get_ud_T_amb_ind_od,(setter)UserDefinedPC_set_ud_T_amb_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_amb [C]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_amb [C]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_T_amb_low", (getter)UserDefinedPC_get_ud_T_amb_low,(setter)UserDefinedPC_set_ud_T_amb_low, - PyDoc_STR("*float*: Low level ambient temperature for HTF mass flow rate parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level ambient temperature for HTF mass flow rate parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_htf_high", (getter)UserDefinedPC_get_ud_T_htf_high,(setter)UserDefinedPC_set_ud_T_htf_high, - PyDoc_STR("*float*: High level HTF inlet temperature for T_amb parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level HTF inlet temperature for T_amb parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_htf_ind_od", (getter)UserDefinedPC_get_ud_T_htf_ind_od,(setter)UserDefinedPC_set_ud_T_htf_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_htf_hot [C]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_htf_hot [C]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_T_htf_low", (getter)UserDefinedPC_get_ud_T_htf_low,(setter)UserDefinedPC_set_ud_T_htf_low, - PyDoc_STR("*float*: Low level HTF inlet temperature for T_amb parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level HTF inlet temperature for T_amb parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_f_W_dot_cool_des", (getter)UserDefinedPC_get_ud_f_W_dot_cool_des,(setter)UserDefinedPC_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)UserDefinedPC_get_ud_ind_od,(setter)UserDefinedPC_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_m_dot_htf_high", (getter)UserDefinedPC_get_ud_m_dot_htf_high,(setter)UserDefinedPC_set_ud_m_dot_htf_high, - PyDoc_STR("*float*: High level normalized HTF mass flow rate for T_HTF parametric [-]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level normalized HTF mass flow rate for T_HTF parametric [-]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_htf_ind_od", (getter)UserDefinedPC_get_ud_m_dot_htf_ind_od,(setter)UserDefinedPC_set_ud_m_dot_htf_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on m_dot_htf [ND]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on m_dot_htf [ND]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_m_dot_htf_low", (getter)UserDefinedPC_get_ud_m_dot_htf_low,(setter)UserDefinedPC_set_ud_m_dot_htf_low, - PyDoc_STR("*float*: Low level normalized HTF mass flow rate for T_HTF parametric [-]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level normalized HTF mass flow rate for T_HTF parametric [-]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)UserDefinedPC_get_ud_m_dot_water_cool_des,(setter)UserDefinedPC_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3953,11 +3953,11 @@ Enet_export(VarGroupObject *self, PyObject *args) static PyMethodDef Enet_methods[] = { {"assign", (PyCFunction)Enet_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Enet_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Enet_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Enet_vals = { var: val, ...}``")}, {"export", (PyCFunction)Enet_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3987,10 +3987,10 @@ Enet_set_eta_tes_htr(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Enet_getset[] = { {"eta_lhv", (getter)Enet_get_eta_lhv,(setter)Enet_set_eta_lhv, - PyDoc_STR("*float*: Fossil fuel lower heating value - Thermal power generated per unit fuel [MW/MMBTU]\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil fuel lower heating value - Thermal power generated per unit fuel [MW/MMBTU]\n\n**Required:**\nTrue"), NULL}, {"eta_tes_htr", (getter)Enet_get_eta_tes_htr,(setter)Enet_set_eta_tes_htr, - PyDoc_STR("*float*: Thermal storage tank heater efficiency (fp_mode=1 only) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal storage tank heater efficiency (fp_mode=1 only) [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4105,11 +4105,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -5562,12 +5562,11 @@ static PyMethodDef TcstroughPhysicalModule_methods[] = { {"new", TcstroughPhysical_new, METH_VARARGS, PyDoc_STR("new() -> TcstroughPhysical")}, {"default", TcstroughPhysical_default, METH_VARARGS, - PyDoc_STR("default(config) -> TcstroughPhysical\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> TcstroughPhysical\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TcstroughPhysical_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TcstroughPhysical\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TcstroughPhysical\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TcstroughPhysical_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TcstroughPhysical\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TcstroughPhysical\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TestUdPowerCycle.c b/modules/TestUdPowerCycle.c index 1e8d422d..1a34895e 100644 --- a/modules/TestUdPowerCycle.c +++ b/modules/TestUdPowerCycle.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -206,11 +206,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -549,12 +549,11 @@ static PyMethodDef TestUdPowerCycleModule_methods[] = { {"new", TestUdPowerCycle_new, METH_VARARGS, PyDoc_STR("new() -> TestUdPowerCycle")}, {"default", TestUdPowerCycle_default, METH_VARARGS, - PyDoc_STR("default(config) -> TestUdPowerCycle\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> TestUdPowerCycle\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TestUdPowerCycle_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TestUdPowerCycle\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TestUdPowerCycle\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TestUdPowerCycle_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TestUdPowerCycle\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TestUdPowerCycle\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Thermalrate.c b/modules/Thermalrate.c index 04e4042d..cdf57ef1 100644 --- a/modules/Thermalrate.c +++ b/modules/Thermalrate.c @@ -69,11 +69,11 @@ ThermalRate_export(VarGroupObject *self, PyObject *args) static PyMethodDef ThermalRate_methods[] = { {"assign", (PyCFunction)ThermalRate_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ThermalRate_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ThermalRate_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ThermalRate_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ThermalRate_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ThermalRate_vals = { var: val, ...}``")}, {"export", (PyCFunction)ThermalRate_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -223,40 +223,40 @@ ThermalRate_set_thermal_sell_rate_option(VarGroupObject *self, PyObject *value, static PyGetSetDef ThermalRate_getset[] = { {"en_thermal_rates", (getter)ThermalRate_get_en_thermal_rates,(setter)ThermalRate_set_en_thermal_rates, - PyDoc_STR("*float*: Optionally enable/disable thermal_rate [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=1"), + PyDoc_STR("*float*: Optionally enable/disable thermal_rate [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1"), NULL}, {"fuelcell_power_thermal", (getter)ThermalRate_get_fuelcell_power_thermal,(setter)ThermalRate_set_fuelcell_power_thermal, - PyDoc_STR("*sequence*: Fuel cell power generated [kW-t]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fuel cell power generated [kW-t]\n\n**Required:**\nTrue"), NULL}, {"thermal_buy_rate", (getter)ThermalRate_get_thermal_buy_rate,(setter)ThermalRate_set_thermal_buy_rate, - PyDoc_STR("*sequence*: Thermal buy rate [$/kW-t]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - thermal_buy_rate_flat\n\t - thermal_buy_rate_option\n\t - thermal_sell_rate_flat\n\t - thermal_sell_rate_option\n"), + PyDoc_STR("*sequence*: Thermal buy rate [$/kW-t]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``thermal_buy_rate`` depends on the following variables:\n\n\t - thermal_buy_rate_flat\n\t - thermal_buy_rate_option\n\t - thermal_sell_rate_flat\n\t - thermal_sell_rate_option\n"), NULL}, {"thermal_buy_rate_flat", (getter)ThermalRate_get_thermal_buy_rate_flat,(setter)ThermalRate_set_thermal_buy_rate_flat, - PyDoc_STR("*float*: Thermal buy rate flat [$/kW-t]\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), + PyDoc_STR("*float*: Thermal buy rate flat [$/kW-t]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``thermal_buy_rate_flat``:\n\n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), NULL}, {"thermal_buy_rate_option", (getter)ThermalRate_get_thermal_buy_rate_option,(setter)ThermalRate_set_thermal_buy_rate_option, - PyDoc_STR("*float*: Thermal buy rate option [0/1]\n\n*Options*: 0=flat,1=timestep\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), + PyDoc_STR("*float*: Thermal buy rate option [0/1]\n\n**Options:**\n0=flat,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``thermal_buy_rate_option``:\n\n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), NULL}, {"thermal_degradation", (getter)ThermalRate_get_thermal_degradation,(setter)ThermalRate_set_thermal_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"thermal_load", (getter)ThermalRate_get_thermal_load,(setter)ThermalRate_set_thermal_load, PyDoc_STR("*sequence*: Thermal load (year 1) [kW-t]"), NULL}, {"thermal_load_escalation", (getter)ThermalRate_get_thermal_load_escalation,(setter)ThermalRate_set_thermal_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"thermal_rate_escalation", (getter)ThermalRate_get_thermal_rate_escalation,(setter)ThermalRate_set_thermal_rate_escalation, - PyDoc_STR("*sequence*: Annual thermal rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual thermal rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"thermal_sell_rate", (getter)ThermalRate_get_thermal_sell_rate,(setter)ThermalRate_set_thermal_sell_rate, - PyDoc_STR("*sequence*: Thermal sell rate [$/kW-t]\n\n*Required*: If not provided, assumed to be 0\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - thermal_buy_rate_flat\n\t - thermal_buy_rate_option\n\t - thermal_sell_rate_flat\n\t - thermal_sell_rate_option\n"), + PyDoc_STR("*sequence*: Thermal sell rate [$/kW-t]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of ``thermal_sell_rate`` depends on the following variables:\n\n\t - thermal_buy_rate_flat\n\t - thermal_buy_rate_option\n\t - thermal_sell_rate_flat\n\t - thermal_sell_rate_option\n"), NULL}, {"thermal_sell_rate_flat", (getter)ThermalRate_get_thermal_sell_rate_flat,(setter)ThermalRate_set_thermal_sell_rate_flat, - PyDoc_STR("*float*: Thermal sell rate flat [$/kW-t]\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), + PyDoc_STR("*float*: Thermal sell rate flat [$/kW-t]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``thermal_sell_rate_flat``:\n\n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), NULL}, {"thermal_sell_rate_option", (getter)ThermalRate_get_thermal_sell_rate_option,(setter)ThermalRate_set_thermal_sell_rate_option, - PyDoc_STR("*float*: Thermal sell rate option [0/1]\n\n*Options*: 0=flat,1=timestep\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0\n\n*Changes to this variable may require updating the values of the following*: \n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), + PyDoc_STR("*float*: Thermal sell rate option [0/1]\n\n**Options:**\n0=flat,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults.\n\nThe value of the following variables depends on ``thermal_sell_rate_option``:\n\n\t - thermal_buy_rate\n\t - thermal_sell_rate\n"), NULL}, {NULL} /* Sentinel */ }; @@ -371,11 +371,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -417,13 +417,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)Lifetime_get_inflation_rate,(setter)Lifetime_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -538,11 +538,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -930,12 +930,11 @@ static PyMethodDef ThermalrateModule_methods[] = { {"new", Thermalrate_new, METH_VARARGS, PyDoc_STR("new() -> Thermalrate")}, {"default", Thermalrate_default, METH_VARARGS, - PyDoc_STR("default(config) -> Thermalrate\n\nUse default attributes\n" - "`config` options:\n\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"")}, + PyDoc_STR("default(config) -> Thermalrate\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Thermalrate_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Thermalrate\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Thermalrate\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Thermalrate_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Thermalrate\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Thermalrate\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Thirdpartyownership.c b/modules/Thirdpartyownership.c index be3c84fe..44cd7d0f 100644 --- a/modules/Thirdpartyownership.c +++ b/modules/Thirdpartyownership.c @@ -69,11 +69,11 @@ Depreciation_export(VarGroupObject *self, PyObject *args) static PyMethodDef Depreciation_methods[] = { {"assign", (PyCFunction)Depreciation_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Depreciation_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Depreciation_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Depreciation_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Depreciation_vals = { var: val, ...}``")}, {"export", (PyCFunction)Depreciation_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -151,22 +151,22 @@ Depreciation_set_depr_sta_type(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef Depreciation_getset[] = { {"depr_fed_custom", (getter)Depreciation_get_depr_fed_custom,(setter)Depreciation_set_depr_fed_custom, - PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n*Required*: True if depr_fed_type=3"), + PyDoc_STR("*sequence*: Federal custom depreciation [%/year]\n\n**Required:**\nRequired if depr_fed_type=3"), NULL}, {"depr_fed_sl_years", (getter)Depreciation_get_depr_fed_sl_years,(setter)Depreciation_set_depr_fed_sl_years, - PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_fed_type=2"), + PyDoc_STR("*float*: Federal depreciation straight-line Years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_fed_type=2"), NULL}, {"depr_fed_type", (getter)Depreciation_get_depr_fed_type,(setter)Depreciation_set_depr_fed_type, - PyDoc_STR("*float*: Federal depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Federal depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"depr_sta_custom", (getter)Depreciation_get_depr_sta_custom,(setter)Depreciation_set_depr_sta_custom, - PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n*Required*: True if depr_sta_type=3"), + PyDoc_STR("*sequence*: State custom depreciation [%/year]\n\n**Required:**\nRequired if depr_sta_type=3"), NULL}, {"depr_sta_sl_years", (getter)Depreciation_get_depr_sta_sl_years,(setter)Depreciation_set_depr_sta_sl_years, - PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True if depr_sta_type=2"), + PyDoc_STR("*float*: State depreciation straight-line years [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nRequired if depr_sta_type=2"), NULL}, {"depr_sta_type", (getter)Depreciation_get_depr_sta_type,(setter)Depreciation_set_depr_sta_type, - PyDoc_STR("*float*: State depreciation type\n\n*Options*: 0=none,1=macrs_half_year,2=sl,3=custom\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: State depreciation type\n\n**Options:**\n0=none,1=macrs_half_year,2=sl,3=custom\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -281,11 +281,11 @@ Financials_export(VarGroupObject *self, PyObject *args) static PyMethodDef Financials_methods[] = { {"assign", (PyCFunction)Financials_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Financials_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Financials_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Financials_vals = { var: val, ...}``")}, {"export", (PyCFunction)Financials_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -327,13 +327,13 @@ Financials_set_real_discount_rate(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef Financials_getset[] = { {"analysis_period", (getter)Financials_get_analysis_period,(setter)Financials_set_analysis_period, - PyDoc_STR("*float*: Analyis period [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=50\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Analyis period [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=50\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"inflation_rate", (getter)Financials_get_inflation_rate,(setter)Financials_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"real_discount_rate", (getter)Financials_get_real_discount_rate,(setter)Financials_set_real_discount_rate, - PyDoc_STR("*float*: Real discount rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Real discount rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -448,11 +448,11 @@ FinancialThirdPartyOwnership_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialThirdPartyOwnership_methods[] = { {"assign", (PyCFunction)FinancialThirdPartyOwnership_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialThirdPartyOwnership_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialThirdPartyOwnership_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialThirdPartyOwnership_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialThirdPartyOwnership_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialThirdPartyOwnership_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialThirdPartyOwnership_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -470,7 +470,7 @@ FinancialThirdPartyOwnership_set_lease_or_ppa(VarGroupObject *self, PyObject *va static PyGetSetDef FinancialThirdPartyOwnership_getset[] = { {"lease_or_ppa", (getter)FinancialThirdPartyOwnership_get_lease_or_ppa,(setter)FinancialThirdPartyOwnership_set_lease_or_ppa, - PyDoc_STR("*float*: Lease or PPA agreement [0/1]\n\n*Options*: 0=lease,1=ppa\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Lease or PPA agreement [0/1]\n\n**Options:**\n0=lease,1=ppa\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -585,11 +585,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -619,10 +619,10 @@ Common_set_gen(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"annual_energy_value", (getter)Common_get_annual_energy_value,(setter)Common_set_annual_energy_value, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)Common_get_gen,(setter)Common_set_gen, - PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Power generated by renewable resource [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -737,11 +737,11 @@ AnnualOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef AnnualOutput_methods[] = { {"assign", (PyCFunction)AnnualOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AnnualOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)AnnualOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -771,10 +771,10 @@ AnnualOutput_set_system_use_lifetime_output(VarGroupObject *self, PyObject *valu static PyGetSetDef AnnualOutput_getset[] = { {"degradation", (getter)AnnualOutput_get_degradation,(setter)AnnualOutput_set_degradation, - PyDoc_STR("*sequence*: Annual degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual degradation [%]\n\n**Required:**\nTrue"), NULL}, {"system_use_lifetime_output", (getter)AnnualOutput_get_system_use_lifetime_output,(setter)AnnualOutput_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -889,11 +889,11 @@ CashFlow_export(VarGroupObject *self, PyObject *args) static PyMethodDef CashFlow_methods[] = { {"assign", (PyCFunction)CashFlow_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``CashFlow_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``CashFlow_vals = { var: val, ...}``")}, {"replace", (PyCFunction)CashFlow_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``CashFlow_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``CashFlow_vals = { var: val, ...}``")}, {"export", (PyCFunction)CashFlow_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -947,16 +947,16 @@ CashFlow_set_ppa_price(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef CashFlow_getset[] = { {"lease_escalation", (getter)CashFlow_get_lease_escalation,(setter)CashFlow_set_lease_escalation, - PyDoc_STR("*float*: Monthly lease escalation [%/year]\n\n*Required*: True if lease_or_ppa=0"), + PyDoc_STR("*float*: Monthly lease escalation [%/year]\n\n**Required:**\nRequired if lease_or_ppa=0"), NULL}, {"lease_price", (getter)CashFlow_get_lease_price,(setter)CashFlow_set_lease_price, - PyDoc_STR("*float*: Monthly lease price [$/month]\n\n*Required*: True if lease_or_ppa=0"), + PyDoc_STR("*float*: Monthly lease price [$/month]\n\n**Required:**\nRequired if lease_or_ppa=0"), NULL}, {"ppa_escalation", (getter)CashFlow_get_ppa_escalation,(setter)CashFlow_set_ppa_escalation, - PyDoc_STR("*float*: Monthly lease escalation [%/year]\n\n*Required*: True if lease_or_ppa=1"), + PyDoc_STR("*float*: Monthly lease escalation [%/year]\n\n**Required:**\nRequired if lease_or_ppa=1"), NULL}, {"ppa_price", (getter)CashFlow_get_ppa_price,(setter)CashFlow_set_ppa_price, - PyDoc_STR("*float*: Monthly lease price [$/month]\n\n*Required*: True if lease_or_ppa=1"), + PyDoc_STR("*float*: Monthly lease price [$/month]\n\n**Required:**\nRequired if lease_or_ppa=1"), NULL}, {NULL} /* Sentinel */ }; @@ -1071,11 +1071,11 @@ ElectricityCost_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityCost_methods[] = { {"assign", (PyCFunction)ElectricityCost_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityCost_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityCost_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityCost_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityCost_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityCost_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityCost_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1105,10 +1105,10 @@ ElectricityCost_set_elec_cost_without_system(VarGroupObject *self, PyObject *val static PyGetSetDef ElectricityCost_getset[] = { {"elec_cost_with_system", (getter)ElectricityCost_get_elec_cost_with_system,(setter)ElectricityCost_set_elec_cost_with_system, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {"elec_cost_without_system", (getter)ElectricityCost_get_elec_cost_without_system,(setter)ElectricityCost_set_elec_cost_without_system, - PyDoc_STR("*sequence*: Energy value [$]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy value [$]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1223,11 +1223,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1353,7 +1353,7 @@ static PyGetSetDef Outputs_getset[] = { PyDoc_STR("*float*: Host indifference point nominal levelized value [cents/kWh]"), NULL}, {"npv", (getter)Outputs_get_npv,(setter)0, - PyDoc_STR("*float*: Net present value [$]"), + PyDoc_STR("*float*: NPV Net present value [$]"), NULL}, {"year1_nte", (getter)Outputs_get_year1_nte,(setter)0, PyDoc_STR("*float*: Host indifference point in Year 1 [cents/kWh]"), @@ -1707,12 +1707,11 @@ static PyMethodDef ThirdpartyownershipModule_methods[] = { {"new", Thirdpartyownership_new, METH_VARARGS, PyDoc_STR("new() -> Thirdpartyownership")}, {"default", Thirdpartyownership_default, METH_VARARGS, - PyDoc_STR("default(config) -> Thirdpartyownership\n\nUse default attributes\n" - "`config` options:\n\n- \"FlatPlatePVThirdParty\"\n- \"GenericBatteryThirdParty\"\n- \"GenericSystemThirdParty\"\n- \"PVBatteryThirdParty\"\n- \"PVWattsBatteryThirdParty\"\n- \"PVWattsThirdParty\"\n- \"StandaloneBatteryThirdParty\"")}, + PyDoc_STR("default(config) -> Thirdpartyownership\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"FlatPlatePVThirdParty\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"GenericSystemThirdParty\"*\n\n - *\"PVBatteryThirdParty\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n - *\"PVWattsThirdParty\"*\n\n - *\"StandaloneBatteryThirdParty\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Thirdpartyownership_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Thirdpartyownership\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Thirdpartyownership\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Thirdpartyownership_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Thirdpartyownership\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Thirdpartyownership\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Timeseq.c b/modules/Timeseq.c index c0f227cd..36c543e5 100644 --- a/modules/Timeseq.c +++ b/modules/Timeseq.c @@ -69,11 +69,11 @@ TimeSequence_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSequence_methods[] = { {"assign", (PyCFunction)TimeSequence_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSequence_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSequence_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSequence_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSequence_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSequence_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSequence_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -115,13 +115,13 @@ TimeSequence_set_time_step(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TimeSequence_getset[] = { {"end_time", (getter)TimeSequence_get_end_time,(setter)TimeSequence_set_end_time, - PyDoc_STR("*float*: End time [seconds]\n\n*Options*: 0=jan1st 12am\n\n*Constraints*: MIN=0,MAX=31536000\n\n*Required*: True"), + PyDoc_STR("*float*: End time [seconds]\n\n**Options:**\n0=jan1st 12am\n\n**Constraints:**\nMIN=0,MAX=31536000\n\n**Required:**\nTrue"), NULL}, {"start_time", (getter)TimeSequence_get_start_time,(setter)TimeSequence_set_start_time, - PyDoc_STR("*float*: Start time [seconds]\n\n*Options*: 0=jan1st 12am\n\n*Constraints*: MIN=0,MAX=31536000\n\n*Required*: True"), + PyDoc_STR("*float*: Start time [seconds]\n\n**Options:**\n0=jan1st 12am\n\n**Constraints:**\nMIN=0,MAX=31536000\n\n**Required:**\nTrue"), NULL}, {"time_step", (getter)TimeSequence_get_time_step,(setter)TimeSequence_set_time_step, - PyDoc_STR("*float*: Time step [seconds]\n\n*Constraints*: MIN=1,MAX=3600\n\n*Required*: True"), + PyDoc_STR("*float*: Time step [seconds]\n\n**Constraints:**\nMIN=1,MAX=3600\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -236,11 +236,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -624,12 +624,11 @@ static PyMethodDef TimeseqModule_methods[] = { {"new", Timeseq_new, METH_VARARGS, PyDoc_STR("new() -> Timeseq")}, {"default", Timeseq_default, METH_VARARGS, - PyDoc_STR("default(config) -> Timeseq\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Timeseq\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Timeseq_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Timeseq\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Timeseq\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Timeseq_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Timeseq\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Timeseq\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TroughPhysical.c b/modules/TroughPhysical.c index 4d4ff700..ca966cca 100644 --- a/modules/TroughPhysical.c +++ b/modules/TroughPhysical.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ Weather_set_file_name(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: Local weather file with path [none]\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Local weather file with path [none]\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ SolarField_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarField_methods[] = { {"assign", (PyCFunction)SolarField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarField_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1512,328 +1512,328 @@ SolarField_set_wind_stow_speed(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef SolarField_getset[] = { {"A_aperture", (getter)SolarField_get_A_aperture,(setter)SolarField_set_A_aperture, - PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)SolarField_get_AbsorberMaterial,(setter)SolarField_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)SolarField_get_AnnulusGas,(setter)SolarField_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n**Required:**\nTrue"), NULL}, {"Ave_Focal_Length", (getter)SolarField_get_Ave_Focal_Length,(setter)SolarField_set_Ave_Focal_Length, - PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n**Required:**\nTrue"), NULL}, {"ColperSCA", (getter)SolarField_get_ColperSCA,(setter)SolarField_set_ColperSCA, - PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n**Required:**\nTrue"), NULL}, {"D_2", (getter)SolarField_get_D_2,(setter)SolarField_set_D_2, - PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)SolarField_get_D_3,(setter)SolarField_set_D_3, - PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)SolarField_get_D_4,(setter)SolarField_set_D_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)SolarField_get_D_5,(setter)SolarField_set_D_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_cpnt", (getter)SolarField_get_D_cpnt,(setter)SolarField_set_D_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)SolarField_get_D_p,(setter)SolarField_set_D_p, - PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)SolarField_get_Design_loss,(setter)SolarField_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)SolarField_get_Dirt_HCE,(setter)SolarField_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n**Required:**\nTrue"), NULL}, {"Dirt_mirror", (getter)SolarField_get_Dirt_mirror,(setter)SolarField_set_Dirt_mirror, - PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"Distance_SCA", (getter)SolarField_get_Distance_SCA,(setter)SolarField_set_Distance_SCA, - PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)SolarField_get_EPSILON_4,(setter)SolarField_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_5", (getter)SolarField_get_EPSILON_5,(setter)SolarField_set_EPSILON_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"Error", (getter)SolarField_get_Error,(setter)SolarField_set_Error, - PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"FieldConfig", (getter)SolarField_get_FieldConfig,(setter)SolarField_set_FieldConfig, - PyDoc_STR("*float*: Number of subfield headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of subfield headers [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)SolarField_get_Flow_type,(setter)SolarField_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"Fluid", (getter)SolarField_get_Fluid,(setter)SolarField_set_Fluid, - PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)SolarField_get_GeomEffects,(setter)SolarField_set_GeomEffects, - PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)SolarField_get_GlazingIntactIn,(setter)SolarField_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)SolarField_get_HCE_FieldFrac,(setter)SolarField_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)SolarField_get_HDR_rough,(setter)SolarField_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"IAM_matrix", (getter)SolarField_get_IAM_matrix,(setter)SolarField_set_IAM_matrix, - PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)SolarField_get_I_bn_des,(setter)SolarField_set_I_bn_des, - PyDoc_STR("*float*: Solar irradiation at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar irradiation at design [C]\n\n**Required:**\nTrue"), NULL}, {"K_cpnt", (getter)SolarField_get_K_cpnt,(setter)SolarField_set_K_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_SCA", (getter)SolarField_get_L_SCA,(setter)SolarField_set_L_SCA, - PyDoc_STR("*sequence*: Length of the SCA [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of the SCA [m]\n\n**Required:**\nTrue"), NULL}, {"L_aperture", (getter)SolarField_get_L_aperture,(setter)SolarField_set_L_aperture, - PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n**Required:**\nTrue"), NULL}, {"L_cpnt", (getter)SolarField_get_L_cpnt,(setter)SolarField_set_L_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_power_block_piping", (getter)SolarField_get_L_power_block_piping,(setter)SolarField_set_L_power_block_piping, - PyDoc_STR("*float*: Length of piping (full mass flow) through heat sink (if applicable) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of piping (full mass flow) through heat sink (if applicable) [none]\n\n**Required:**\nTrue"), NULL}, {"L_rnr_per_xpan", (getter)SolarField_get_L_rnr_per_xpan,(setter)SolarField_set_L_rnr_per_xpan, - PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_hdr", (getter)SolarField_get_L_xpan_hdr,(setter)SolarField_set_L_xpan_hdr, - PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_rnr", (getter)SolarField_get_L_xpan_rnr,(setter)SolarField_set_L_xpan_rnr, - PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"Min_rnr_xpans", (getter)SolarField_get_Min_rnr_xpans,(setter)SolarField_set_Min_rnr_xpans, - PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n**Required:**\nTrue"), NULL}, {"N_hdr_per_xpan", (getter)SolarField_get_N_hdr_per_xpan,(setter)SolarField_set_N_hdr_per_xpan, - PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n**Required:**\nTrue"), NULL}, {"N_max_hdr_diams", (getter)SolarField_get_N_max_hdr_diams,(setter)SolarField_set_N_max_hdr_diams, - PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)SolarField_get_P_a,(setter)SolarField_set_P_a, - PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n**Required:**\nTrue"), NULL}, {"Pipe_hl_coef", (getter)SolarField_get_Pipe_hl_coef,(setter)SolarField_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n**Required:**\nTrue"), NULL}, {"Rho_mirror_clean", (getter)SolarField_get_Rho_mirror_clean,(setter)SolarField_set_Rho_mirror_clean, - PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)SolarField_get_Rough,(setter)SolarField_set_Rough, - PyDoc_STR("*sequence[sequence]*: Relative roughness of the internal HCE surface [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Relative roughness of the internal HCE surface [-]\n\n**Required:**\nTrue"), NULL}, {"Row_Distance", (getter)SolarField_get_Row_Distance,(setter)SolarField_set_Row_Distance, - PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)SolarField_get_SCA_drives_elec,(setter)SolarField_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)SolarField_get_Shadowing,(setter)SolarField_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n**Required:**\nTrue"), NULL}, {"T_fp", (getter)SolarField_get_T_fp,(setter)SolarField_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n**Required:**\nTrue"), NULL}, {"T_loop_in_des", (getter)SolarField_get_T_loop_in_des,(setter)SolarField_set_T_loop_in_des, - PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_out", (getter)SolarField_get_T_loop_out,(setter)SolarField_set_T_loop_out, - PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)SolarField_get_Tau_envelope,(setter)SolarField_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)SolarField_get_TrackingError,(setter)SolarField_set_TrackingError, - PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"Type_cpnt", (getter)SolarField_get_Type_cpnt,(setter)SolarField_set_Type_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_max", (getter)SolarField_get_V_hdr_cold_max,(setter)SolarField_set_V_hdr_cold_max, - PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_min", (getter)SolarField_get_V_hdr_cold_min,(setter)SolarField_set_V_hdr_cold_min, - PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_max", (getter)SolarField_get_V_hdr_hot_max,(setter)SolarField_set_V_hdr_hot_max, - PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_min", (getter)SolarField_get_V_hdr_hot_min,(setter)SolarField_set_V_hdr_hot_min, - PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_aperture", (getter)SolarField_get_W_aperture,(setter)SolarField_set_W_aperture, - PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n**Required:**\nTrue"), NULL}, {"accept_init", (getter)SolarField_get_accept_init,(setter)SolarField_set_accept_init, - PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n**Required:**\nTrue"), NULL}, {"accept_loc", (getter)SolarField_get_accept_loc,(setter)SolarField_set_accept_loc, - PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n*Info*: hx/loop\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n**Info:**\nhx/loop\n\n**Required:**\nTrue"), NULL}, {"accept_mode", (getter)SolarField_get_accept_mode,(setter)SolarField_set_accept_mode, - PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n*Info*: no/yes\n\n*Required*: True"), + PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n**Info:**\nno/yes\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)SolarField_get_alpha_abs,(setter)SolarField_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)SolarField_get_alpha_env,(setter)SolarField_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"azimuth", (getter)SolarField_get_azimuth,(setter)SolarField_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"calc_design_pipe_vals", (getter)SolarField_get_calc_design_pipe_vals,(setter)SolarField_set_calc_design_pipe_vals, - PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n**Required:**\nTrue"), NULL}, {"custom_sf_pipe_sizes", (getter)SolarField_get_custom_sf_pipe_sizes,(setter)SolarField_set_custom_sf_pipe_sizes, - PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_11", (getter)SolarField_get_epsilon_3_11,(setter)SolarField_set_epsilon_3_11, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_12", (getter)SolarField_get_epsilon_3_12,(setter)SolarField_set_epsilon_3_12, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_13", (getter)SolarField_get_epsilon_3_13,(setter)SolarField_set_epsilon_3_13, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_14", (getter)SolarField_get_epsilon_3_14,(setter)SolarField_set_epsilon_3_14, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_21", (getter)SolarField_get_epsilon_3_21,(setter)SolarField_set_epsilon_3_21, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_22", (getter)SolarField_get_epsilon_3_22,(setter)SolarField_set_epsilon_3_22, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_23", (getter)SolarField_get_epsilon_3_23,(setter)SolarField_set_epsilon_3_23, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_24", (getter)SolarField_get_epsilon_3_24,(setter)SolarField_set_epsilon_3_24, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_31", (getter)SolarField_get_epsilon_3_31,(setter)SolarField_set_epsilon_3_31, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_32", (getter)SolarField_get_epsilon_3_32,(setter)SolarField_set_epsilon_3_32, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_33", (getter)SolarField_get_epsilon_3_33,(setter)SolarField_set_epsilon_3_33, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_34", (getter)SolarField_get_epsilon_3_34,(setter)SolarField_set_epsilon_3_34, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_41", (getter)SolarField_get_epsilon_3_41,(setter)SolarField_set_epsilon_3_41, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_42", (getter)SolarField_get_epsilon_3_42,(setter)SolarField_set_epsilon_3_42, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_43", (getter)SolarField_get_epsilon_3_43,(setter)SolarField_set_epsilon_3_43, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_44", (getter)SolarField_get_epsilon_3_44,(setter)SolarField_set_epsilon_3_44, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)SolarField_get_eta_pump,(setter)SolarField_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)SolarField_get_field_fl_props,(setter)SolarField_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"include_fixed_power_block_runner", (getter)SolarField_get_include_fixed_power_block_runner,(setter)SolarField_set_include_fixed_power_block_runner, - PyDoc_STR("*float*: Should model consider piping through power block? [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Should model consider piping through power block? [none]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmax", (getter)SolarField_get_m_dot_htfmax,(setter)SolarField_set_m_dot_htfmax, - PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmin", (getter)SolarField_get_m_dot_htfmin,(setter)SolarField_set_m_dot_htfmin, - PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_cold", (getter)SolarField_get_mc_bal_cold,(setter)SolarField_set_mc_bal_cold, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_hot", (getter)SolarField_get_mc_bal_hot,(setter)SolarField_set_mc_bal_hot, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n*Info*: none\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n**Info:**\nnone\n\n**Required:**\nTrue"), NULL}, {"mc_bal_sca", (getter)SolarField_get_mc_bal_sca,(setter)SolarField_set_mc_bal_sca, - PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n*Required*: True"), + PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n**Required:**\nTrue"), NULL}, {"nColt", (getter)SolarField_get_nColt,(setter)SolarField_set_nColt, - PyDoc_STR("*float*: Number of collector types [none]\n\n*Options*: constant=4\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector types [none]\n\n**Options:**\nconstant=4\n\n**Required:**\nTrue"), NULL}, {"nHCEVar", (getter)SolarField_get_nHCEVar,(setter)SolarField_set_nHCEVar, - PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n**Required:**\nTrue"), NULL}, {"nHCEt", (getter)SolarField_get_nHCEt,(setter)SolarField_set_nHCEt, - PyDoc_STR("*float*: Number of HCE types [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE types [none]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)SolarField_get_nLoops,(setter)SolarField_set_nLoops, - PyDoc_STR("*float*: Number of loops in the field [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of loops in the field [none]\n\n**Required:**\nTrue"), NULL}, {"nSCA", (getter)SolarField_get_nSCA,(setter)SolarField_set_nSCA, - PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n**Required:**\nTrue"), NULL}, {"northsouth_field_sep", (getter)SolarField_get_northsouth_field_sep,(setter)SolarField_set_northsouth_field_sep, - PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n*Required*: True"), + PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n**Required:**\nTrue"), NULL}, {"offset_xpan_hdr", (getter)SolarField_get_offset_xpan_hdr,(setter)SolarField_set_offset_xpan_hdr, - PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n**Required:**\nTrue"), NULL}, {"p_start", (getter)SolarField_get_p_start,(setter)SolarField_set_p_start, - PyDoc_STR("*float*: Collector startup energy, per SCA [kWe-hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Collector startup energy, per SCA [kWe-hr]\n\n**Required:**\nTrue"), NULL}, {"rec_qf_delay", (getter)SolarField_get_rec_qf_delay,(setter)SolarField_set_rec_qf_delay, - PyDoc_STR("*float*: Energy-based receiver startup delay (fraction of rated thermal power) [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Energy-based receiver startup delay (fraction of rated thermal power) [-]\n\n**Required:**\nTrue"), NULL}, {"rec_su_delay", (getter)SolarField_get_rec_su_delay,(setter)SolarField_set_rec_su_delay, - PyDoc_STR("*float*: Fixed startup delay time for the receiver [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Fixed startup delay time for the receiver [hr]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_diams", (getter)SolarField_get_sf_hdr_diams,(setter)SolarField_set_sf_hdr_diams, - PyDoc_STR("*sequence[sequence]*: Custom header diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_lengths", (getter)SolarField_get_sf_hdr_lengths,(setter)SolarField_set_sf_hdr_lengths, - PyDoc_STR("*sequence[sequence]*: Custom header lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_wallthicks", (getter)SolarField_get_sf_hdr_wallthicks,(setter)SolarField_set_sf_hdr_wallthicks, - PyDoc_STR("*sequence[sequence]*: Custom header wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_diams", (getter)SolarField_get_sf_rnr_diams,(setter)SolarField_set_sf_rnr_diams, - PyDoc_STR("*sequence[sequence]*: Custom runner diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_lengths", (getter)SolarField_get_sf_rnr_lengths,(setter)SolarField_set_sf_rnr_lengths, - PyDoc_STR("*sequence[sequence]*: Custom runner lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_wallthicks", (getter)SolarField_get_sf_rnr_wallthicks,(setter)SolarField_set_sf_rnr_wallthicks, - PyDoc_STR("*sequence[sequence]*: Custom runner wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)SolarField_get_theta_dep,(setter)SolarField_set_theta_dep, - PyDoc_STR("*float*: Deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)SolarField_get_theta_stow,(setter)SolarField_set_theta_stow, - PyDoc_STR("*float*: Stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)SolarField_get_tilt,(setter)SolarField_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"wind_stow_speed", (getter)SolarField_get_wind_stow_speed,(setter)SolarField_set_wind_stow_speed, - PyDoc_STR("*float*: Trough wind stow speed [m/s]\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Trough wind stow speed [m/s]\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1948,11 +1948,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2258,79 +2258,79 @@ Powerblock_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject *value, vo static PyGetSetDef Powerblock_getset[] = { {"CT", (getter)Powerblock_get_CT,(setter)Powerblock_set_CT, - PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"F_wc", (getter)Powerblock_get_F_wc,(setter)Powerblock_set_F_wc, - PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n*Options*: constant=[0,0,0,0,0,0,0,0,0]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n**Options:**\nconstant=[0,0,0,0,0,0,0,0,0]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"L_rnr_pb", (getter)Powerblock_get_L_rnr_pb,(setter)Powerblock_set_L_rnr_pb, - PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n**Required:**\nTrue"), NULL}, {"P_boil", (getter)Powerblock_get_P_boil,(setter)Powerblock_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)Powerblock_get_P_cond_min,(setter)Powerblock_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)Powerblock_get_P_cond_ratio,(setter)Powerblock_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_ref", (getter)Powerblock_get_P_ref,(setter)Powerblock_set_P_ref, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {"T_ITD_des", (getter)Powerblock_get_T_ITD_des,(setter)Powerblock_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)Powerblock_get_T_amb_des,(setter)Powerblock_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)Powerblock_get_T_approach,(setter)Powerblock_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"cycle_cutoff_frac", (getter)Powerblock_get_cycle_cutoff_frac,(setter)Powerblock_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)Powerblock_get_cycle_max_frac,(setter)Powerblock_set_cycle_max_frac, - PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n**Required:**\nTrue"), NULL}, {"dT_cw_ref", (getter)Powerblock_get_dT_cw_ref,(setter)Powerblock_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"eta_ref", (getter)Powerblock_get_eta_ref,(setter)Powerblock_set_eta_ref, - PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle efficiency at design [none]\n\n**Required:**\nTrue"), NULL}, {"n_pl_inc", (getter)Powerblock_get_n_pl_inc,(setter)Powerblock_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)Powerblock_get_pb_bd_frac,(setter)Powerblock_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_pump_coef", (getter)Powerblock_get_pb_pump_coef,(setter)Powerblock_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"pc_config", (getter)Powerblock_get_pc_config,(setter)Powerblock_set_pc_config, - PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)Powerblock_get_q_sby_frac,(setter)Powerblock_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)Powerblock_get_startup_frac,(setter)Powerblock_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)Powerblock_get_startup_time,(setter)Powerblock_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {"tech_type", (getter)Powerblock_get_tech_type,(setter)Powerblock_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n*Info*: tower/trough/user\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n**Info:**\ntower/trough/user\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"ud_f_W_dot_cool_des", (getter)Powerblock_get_ud_f_W_dot_cool_des,(setter)Powerblock_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)Powerblock_get_ud_ind_od,(setter)Powerblock_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)Powerblock_get_ud_m_dot_water_cool_des,(setter)Powerblock_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -2445,11 +2445,11 @@ TES_export(VarGroupObject *self, PyObject *args) static PyMethodDef TES_methods[] = { {"assign", (PyCFunction)TES_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TES_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TES_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TES_vals = { var: val, ...}``")}, {"export", (PyCFunction)TES_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2611,43 +2611,43 @@ TES_set_u_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TES_getset[] = { {"cold_tank_Thtr", (getter)TES_get_cold_tank_Thtr,(setter)TES_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_max_heat", (getter)TES_get_cold_tank_max_heat,(setter)TES_set_cold_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MWe]\n\n**Required:**\nTrue"), NULL}, {"dt_hot", (getter)TES_get_dt_hot,(setter)TES_set_dt_hot, - PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)TES_get_h_tank,(setter)TES_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)TES_get_h_tank_min,(setter)TES_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)TES_get_hot_tank_Thtr,(setter)TES_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_max_heat", (getter)TES_get_hot_tank_max_heat,(setter)TES_set_hot_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MWe]\n\n**Required:**\nTrue"), NULL}, {"init_hot_htf_percent", (getter)TES_get_init_hot_htf_percent,(setter)TES_set_init_hot_htf_percent, - PyDoc_STR("*float*: Initial fraction of avail. vol that is hot [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial fraction of avail. vol that is hot [%]\n\n**Required:**\nTrue"), NULL}, {"store_fl_props", (getter)TES_get_store_fl_props,(setter)TES_set_store_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"store_fluid", (getter)TES_get_store_fluid,(setter)TES_set_store_fluid, - PyDoc_STR("*float*: Material number for storage fluid [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Material number for storage fluid [-]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)TES_get_tank_pairs,(setter)TES_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)TES_get_tshours,(setter)TES_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)TES_get_u_tank,(setter)TES_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2762,11 +2762,11 @@ Tou_export(VarGroupObject *self, PyObject *args) static PyMethodDef Tou_methods[] = { {"assign", (PyCFunction)Tou_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Tou_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Tou_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Tou_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Tou_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Tou_vals = { var: val, ...}``")}, {"export", (PyCFunction)Tou_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3288,133 +3288,133 @@ Tou_set_wlim_series(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Tou_getset[] = { {"ampl_data_dir", (getter)Tou_get_ampl_data_dir,(setter)Tou_set_ampl_data_dir, - PyDoc_STR("*str*: AMPL data file directory [-]\n\n*Required*: If not provided, assumed to be ''"), + PyDoc_STR("*str*: AMPL data file directory [-]\n\n**Required:**\nFalse. Automatically set to '' if not assigned explicitly or loaded from defaults."), NULL}, {"ampl_exec_call", (getter)Tou_get_ampl_exec_call,(setter)Tou_set_ampl_exec_call, - PyDoc_STR("*str*: System command to run AMPL code [-]\n\n*Required*: If not provided, assumed to be 'ampl sdk_solution.run'"), + PyDoc_STR("*str*: System command to run AMPL code [-]\n\n**Required:**\nFalse. Automatically set to 'ampl sdk_solution.run' if not assigned explicitly or loaded from defaults."), NULL}, {"disp_csu_cost", (getter)Tou_get_disp_csu_cost,(setter)Tou_set_disp_csu_cost, - PyDoc_STR("*float*: Cycle startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Cycle startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_frequency", (getter)Tou_get_disp_frequency,(setter)Tou_set_disp_frequency, - PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_horizon", (getter)Tou_get_disp_horizon,(setter)Tou_set_disp_horizon, - PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_max_iter", (getter)Tou_get_disp_max_iter,(setter)Tou_set_disp_max_iter, - PyDoc_STR("*float*: Max. no. dispatch optimization iterations [-]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max. no. dispatch optimization iterations [-]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_mip_gap", (getter)Tou_get_disp_mip_gap,(setter)Tou_set_disp_mip_gap, - PyDoc_STR("*float*: Dispatch optimization solution tolerance [-]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch optimization solution tolerance [-]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_pen_delta_w", (getter)Tou_get_disp_pen_delta_w,(setter)Tou_set_disp_pen_delta_w, - PyDoc_STR("*float*: Dispatch cycle production change penalty [$/kWe-change]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch cycle production change penalty [$/kWe-change]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_reporting", (getter)Tou_get_disp_reporting,(setter)Tou_set_disp_reporting, - PyDoc_STR("*float*: Dispatch optimization reporting level [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization reporting level [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_rsu_cost", (getter)Tou_get_disp_rsu_cost,(setter)Tou_set_disp_rsu_cost, - PyDoc_STR("*float*: Receiver startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Receiver startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_spec_bb", (getter)Tou_get_disp_spec_bb,(setter)Tou_set_disp_spec_bb, - PyDoc_STR("*float*: Dispatch optimization B&B heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization B&B heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_presolve", (getter)Tou_get_disp_spec_presolve,(setter)Tou_set_disp_spec_presolve, - PyDoc_STR("*float*: Dispatch optimization presolve heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization presolve heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_scaling", (getter)Tou_get_disp_spec_scaling,(setter)Tou_set_disp_spec_scaling, - PyDoc_STR("*float*: Dispatch optimization scaling heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization scaling heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_steps_per_hour", (getter)Tou_get_disp_steps_per_hour,(setter)Tou_set_disp_steps_per_hour, - PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_time_weighting", (getter)Tou_get_disp_time_weighting,(setter)Tou_set_disp_time_weighting, - PyDoc_STR("*float*: Dispatch optimization future time discounting factor [-]\n\n*Required*: If not provided, assumed to be 0.99"), + PyDoc_STR("*float*: Dispatch optimization future time discounting factor [-]\n\n**Required:**\nFalse. Automatically set to 0.99 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_timeout", (getter)Tou_get_disp_timeout,(setter)Tou_set_disp_timeout, - PyDoc_STR("*float*: Max. dispatch optimization solve duration [s]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max. dispatch optimization solve duration [s]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"dispatch_factor1", (getter)Tou_get_dispatch_factor1,(setter)Tou_set_dispatch_factor1, - PyDoc_STR("*float*: Dispatch payment factor 1\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 1\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor2", (getter)Tou_get_dispatch_factor2,(setter)Tou_set_dispatch_factor2, - PyDoc_STR("*float*: Dispatch payment factor 2\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 2\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor3", (getter)Tou_get_dispatch_factor3,(setter)Tou_set_dispatch_factor3, - PyDoc_STR("*float*: Dispatch payment factor 3\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 3\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor4", (getter)Tou_get_dispatch_factor4,(setter)Tou_set_dispatch_factor4, - PyDoc_STR("*float*: Dispatch payment factor 4\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 4\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor5", (getter)Tou_get_dispatch_factor5,(setter)Tou_set_dispatch_factor5, - PyDoc_STR("*float*: Dispatch payment factor 5\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 5\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor6", (getter)Tou_get_dispatch_factor6,(setter)Tou_set_dispatch_factor6, - PyDoc_STR("*float*: Dispatch payment factor 6\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 6\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor7", (getter)Tou_get_dispatch_factor7,(setter)Tou_set_dispatch_factor7, - PyDoc_STR("*float*: Dispatch payment factor 7\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 7\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor8", (getter)Tou_get_dispatch_factor8,(setter)Tou_set_dispatch_factor8, - PyDoc_STR("*float*: Dispatch payment factor 8\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 8\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factor9", (getter)Tou_get_dispatch_factor9,(setter)Tou_set_dispatch_factor9, - PyDoc_STR("*float*: Dispatch payment factor 9\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: Dispatch payment factor 9\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_factors_ts", (getter)Tou_get_dispatch_factors_ts,(setter)Tou_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_sched_weekday", (getter)Tou_get_dispatch_sched_weekday,(setter)Tou_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekday schedule\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekday schedule\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_sched_weekend", (getter)Tou_get_dispatch_sched_weekend,(setter)Tou_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekend schedule\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekend schedule\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {"dispatch_series", (getter)Tou_get_dispatch_series,(setter)Tou_set_dispatch_series, PyDoc_STR("*sequence*: Time series dispatch factors"), NULL}, {"f_turb_tou_periods", (getter)Tou_get_f_turb_tou_periods,(setter)Tou_set_f_turb_tou_periods, - PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n**Required:**\nTrue"), NULL}, {"is_ampl_engine", (getter)Tou_get_is_ampl_engine,(setter)Tou_set_is_ampl_engine, - PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch", (getter)Tou_get_is_dispatch,(setter)Tou_set_is_dispatch, - PyDoc_STR("*float*: Allow dispatch optimization? [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allow dispatch optimization? [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch_series", (getter)Tou_get_is_dispatch_series,(setter)Tou_set_is_dispatch_series, - PyDoc_STR("*float*: Use time-series dispatch factors\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Use time-series dispatch factors\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"is_tod_pc_target_also_pc_max", (getter)Tou_get_is_tod_pc_target_also_pc_max,(setter)Tou_set_is_tod_pc_target_also_pc_max, - PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_wlim_series", (getter)Tou_get_is_wlim_series,(setter)Tou_set_is_wlim_series, - PyDoc_STR("*float*: Use time-series net electricity generation limits\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use time-series net electricity generation limits\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_write_ampl_dat", (getter)Tou_get_is_write_ampl_dat,(setter)Tou_set_is_write_ampl_dat, - PyDoc_STR("*float*: Write AMPL data files for dispatch run [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Write AMPL data files for dispatch run [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_multiplier_model", (getter)Tou_get_ppa_multiplier_model,(setter)Tou_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model 0: dispatch factors dispatch_factorX, 1: hourly multipliers dispatch_factors_ts [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model 0: dispatch factors dispatch_factorX, 1: hourly multipliers dispatch_factors_ts [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_rec_heattrace", (getter)Tou_get_q_rec_heattrace,(setter)Tou_set_q_rec_heattrace, - PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_rec_standby", (getter)Tou_get_q_rec_standby,(setter)Tou_set_q_rec_standby, - PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n*Required*: If not provided, assumed to be 9e99"), + PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n**Required:**\nFalse. Automatically set to 9e99 if not assigned explicitly or loaded from defaults."), NULL}, {"timestep_load_fractions", (getter)Tou_get_timestep_load_fractions,(setter)Tou_set_timestep_load_fractions, - PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n*Required*: False"), + PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"weekday_schedule", (getter)Tou_get_weekday_schedule,(setter)Tou_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule [-]\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)Tou_get_weekend_schedule,(setter)Tou_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule [-]\n\n**Required:**\nTrue"), NULL}, {"wlim_series", (getter)Tou_get_wlim_series,(setter)Tou_set_wlim_series, - PyDoc_STR("*sequence*: Time series net electicity generation limits [kWe]\n\n*Required*: True if is_wlim_series=1"), + PyDoc_STR("*sequence*: Time series net electicity generation limits [kWe]\n\n**Required:**\nRequired if is_wlim_series=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3529,11 +3529,11 @@ SystemControl_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemControl_methods[] = { {"assign", (PyCFunction)SystemControl_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemControl_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemControl_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemControl_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemControl_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3551,7 +3551,7 @@ SystemControl_set_disp_inventory_incentive(VarGroupObject *self, PyObject *value static PyGetSetDef SystemControl_getset[] = { {"disp_inventory_incentive", (getter)SystemControl_get_disp_inventory_incentive,(setter)SystemControl_set_disp_inventory_incentive, - PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3666,11 +3666,11 @@ FinancialModel_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialModel_methods[] = { {"assign", (PyCFunction)FinancialModel_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialModel_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialModel_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialModel_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialModel_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3688,7 +3688,7 @@ FinancialModel_set_csp_financial_model(VarGroupObject *self, PyObject *value, vo static PyGetSetDef FinancialModel_getset[] = { {"csp_financial_model", (getter)FinancialModel_get_csp_financial_model,(setter)FinancialModel_set_csp_financial_model, - PyDoc_STR("*float*: [1-8]\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: [1-8]\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3803,11 +3803,11 @@ FinancialSolutionMode_export(VarGroupObject *self, PyObject *args) static PyMethodDef FinancialSolutionMode_methods[] = { {"assign", (PyCFunction)FinancialSolutionMode_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, {"replace", (PyCFunction)FinancialSolutionMode_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``FinancialSolutionMode_vals = { var: val, ...}``")}, {"export", (PyCFunction)FinancialSolutionMode_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3825,7 +3825,7 @@ FinancialSolutionMode_set_ppa_soln_mode(VarGroupObject *self, PyObject *value, v static PyGetSetDef FinancialSolutionMode_getset[] = { {"ppa_soln_mode", (getter)FinancialSolutionMode_get_ppa_soln_mode,(setter)FinancialSolutionMode_set_ppa_soln_mode, - PyDoc_STR("*float*: PPA solution mode (0=Specify IRR target, 1=Specify PPA price)\n\n*Required*: True if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), + PyDoc_STR("*float*: PPA solution mode (0=Specify IRR target, 1=Specify PPA price)\n\n**Required:**\nRequired if ppa_multiplier_model=0&csp_financial_model<5&is_dispatch=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3940,11 +3940,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3962,7 +3962,7 @@ ElectricityRates_set_en_electricity_rates(VarGroupObject *self, PyObject *value, static PyGetSetDef ElectricityRates_getset[] = { {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable electricity rates for grid purchase [0/1]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4077,11 +4077,11 @@ Revenue_export(VarGroupObject *self, PyObject *args) static PyMethodDef Revenue_methods[] = { {"assign", (PyCFunction)Revenue_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Revenue_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Revenue_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Revenue_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Revenue_vals = { var: val, ...}``")}, {"export", (PyCFunction)Revenue_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4099,7 +4099,7 @@ Revenue_set_mp_energy_market_revenue(VarGroupObject *self, PyObject *value, void static PyGetSetDef Revenue_getset[] = { {"mp_energy_market_revenue", (getter)Revenue_get_mp_energy_market_revenue,(setter)Revenue_set_mp_energy_market_revenue, - PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n*Info*: Lifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n*Required*: True if csp_financial_model=6&is_dispatch=1"), + PyDoc_STR("*sequence[sequence]*: Energy market revenue input\n\n**Info:**\nLifetime x 2[Cleared Capacity(MW),Price($/MWh)]\n\n**Required:**\nRequired if csp_financial_model=6&is_dispatch=1"), NULL}, {NULL} /* Sentinel */ }; @@ -4214,11 +4214,11 @@ System_export(VarGroupObject *self, PyObject *args) static PyMethodDef System_methods[] = { {"assign", (PyCFunction)System_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``System_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``System_vals = { var: val, ...}``")}, {"replace", (PyCFunction)System_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``System_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``System_vals = { var: val, ...}``")}, {"export", (PyCFunction)System_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4296,22 +4296,22 @@ System_set_water_usage_per_wash(VarGroupObject *self, PyObject *value, void *clo static PyGetSetDef System_getset[] = { {"aux_array", (getter)System_get_aux_array,(setter)System_set_aux_array, - PyDoc_STR("*sequence*: Auxiliary heater, mult frac and const, linear and quad coeff\n\n*Required*: True"), + PyDoc_STR("*sequence*: Auxiliary heater, mult frac and const, linear and quad coeff\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)System_get_bop_array,(setter)System_set_bop_array, - PyDoc_STR("*sequence*: Balance of plant parasitic power fraction, mult frac and const, linear and quad coeff\n\n*Required*: True"), + PyDoc_STR("*sequence*: Balance of plant parasitic power fraction, mult frac and const, linear and quad coeff\n\n**Required:**\nTrue"), NULL}, {"gross_net_conversion_factor", (getter)System_get_gross_net_conversion_factor,(setter)System_set_gross_net_conversion_factor, - PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n*Required*: True"), + PyDoc_STR("*float*: Estimated gross to net conversion factor\n\n**Required:**\nTrue"), NULL}, {"pb_fixed_par", (getter)System_get_pb_fixed_par,(setter)System_set_pb_fixed_par, - PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {"washing_frequency", (getter)System_get_washing_frequency,(setter)System_set_washing_frequency, - PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n**Required:**\nTrue"), NULL}, {"water_usage_per_wash", (getter)System_get_water_usage_per_wash,(setter)System_set_water_usage_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -4426,11 +4426,11 @@ Controller_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controller_methods[] = { {"assign", (PyCFunction)Controller_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controller_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controller_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controller_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controller_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4652,58 +4652,58 @@ Controller_set_use_solar_mult_or_aperture_area(VarGroupObject *self, PyObject *v static PyGetSetDef Controller_getset[] = { {"DP_SGS", (getter)Controller_get_DP_SGS,(setter)Controller_set_DP_SGS, - PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n*Required*: True"), + PyDoc_STR("*float*: Pressure drop within the steam generator [bar]\n\n**Required:**\nTrue"), NULL}, {"T_tank_hot_inlet_min", (getter)Controller_get_T_tank_hot_inlet_min,(setter)Controller_set_T_tank_hot_inlet_min, - PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum hot tank htf inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"V_tes_des", (getter)Controller_get_V_tes_des,(setter)Controller_set_V_tes_des, - PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Design-point velocity to size the TES pipe diameters [m/s]\n\n**Required:**\nTrue"), NULL}, {"custom_tes_p_loss", (getter)Controller_get_custom_tes_p_loss,(setter)Controller_set_custom_tes_p_loss, - PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n*Required*: True"), + PyDoc_STR("*float*: TES pipe losses are based on custom lengths and coeffs [-]\n\n**Required:**\nTrue"), NULL}, {"custom_tes_pipe_sizes", (getter)Controller_get_custom_tes_pipe_sizes,(setter)Controller_set_custom_tes_pipe_sizes, - PyDoc_STR("*float*: Use custom TES pipe diams, wallthks, and lengths [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom TES pipe diams, wallthks, and lengths [-]\n\n**Required:**\nTrue"), NULL}, {"disp_wlim_maxspec", (getter)Controller_get_disp_wlim_maxspec,(setter)Controller_set_disp_wlim_maxspec, - PyDoc_STR("*float*: disp_wlim_maxspec [-]\n\n*Required*: True"), + PyDoc_STR("*float*: disp_wlim_maxspec [-]\n\n**Required:**\nTrue"), NULL}, {"has_hot_tank_bypass", (getter)Controller_get_has_hot_tank_bypass,(setter)Controller_set_has_hot_tank_bypass, - PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Bypass valve connects field outlet to cold tank [-]\n\n**Required:**\nTrue"), NULL}, {"k_tes_loss_coeffs", (getter)Controller_get_k_tes_loss_coeffs,(setter)Controller_set_k_tes_loss_coeffs, - PyDoc_STR("*sequence[sequence]*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Minor loss coeffs for the coll, gen, and bypass loops [-]\n\n**Required:**\nTrue"), NULL}, {"non_solar_field_land_area_multiplier", (getter)Controller_get_non_solar_field_land_area_multiplier,(setter)Controller_set_non_solar_field_land_area_multiplier, - PyDoc_STR("*float*: non_solar_field_land_area_multiplier [-]\n\n*Required*: True"), + PyDoc_STR("*float*: non_solar_field_land_area_multiplier [-]\n\n**Required:**\nTrue"), NULL}, {"specified_solar_multiple", (getter)Controller_get_specified_solar_multiple,(setter)Controller_set_specified_solar_multiple, - PyDoc_STR("*float*: specified_solar_multiple [-]\n\n*Required*: True"), + PyDoc_STR("*float*: specified_solar_multiple [-]\n\n**Required:**\nTrue"), NULL}, {"specified_total_aperture", (getter)Controller_get_specified_total_aperture,(setter)Controller_set_specified_total_aperture, - PyDoc_STR("*float*: specified_total_aperture [-]\n\n*Required*: True"), + PyDoc_STR("*float*: specified_total_aperture [-]\n\n**Required:**\nTrue"), NULL}, {"tanks_in_parallel", (getter)Controller_get_tanks_in_parallel,(setter)Controller_set_tanks_in_parallel, - PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n**Required:**\nTrue"), NULL}, {"tes_diams", (getter)Controller_get_tes_diams,(setter)Controller_set_tes_diams, - PyDoc_STR("*sequence[sequence]*: Custom TES diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom TES diameters [m]\n\n**Required:**\nTrue"), NULL}, {"tes_lengths", (getter)Controller_get_tes_lengths,(setter)Controller_set_tes_lengths, PyDoc_STR("*sequence[sequence]*: Custom TES lengths [m]"), NULL}, {"tes_pump_coef", (getter)Controller_get_tes_pump_coef,(setter)Controller_set_tes_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/(kg/s)]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/(kg/s)]\n\n**Required:**\nTrue"), NULL}, {"tes_wallthicks", (getter)Controller_get_tes_wallthicks,(setter)Controller_set_tes_wallthicks, - PyDoc_STR("*sequence[sequence]*: Custom TES wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom TES wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"trough_loop_control", (getter)Controller_get_trough_loop_control,(setter)Controller_set_trough_loop_control, - PyDoc_STR("*sequence*: trough_loop_control [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: trough_loop_control [-]\n\n**Required:**\nTrue"), NULL}, {"use_solar_mult_or_aperture_area", (getter)Controller_get_use_solar_mult_or_aperture_area,(setter)Controller_set_use_solar_mult_or_aperture_area, - PyDoc_STR("*float*: Use solar multiple or total field aperture area [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use solar multiple or total field aperture area [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -4818,11 +4818,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6543,12 +6543,11 @@ static PyMethodDef TroughPhysicalModule_methods[] = { {"new", TroughPhysical_new, METH_VARARGS, PyDoc_STR("new() -> TroughPhysical")}, {"default", TroughPhysical_default, METH_VARARGS, - PyDoc_STR("default(config) -> TroughPhysical\n\nUse default attributes\n" - "`config` options:\n\n- \"PhysicalTroughAllEquityPartnershipFlip\"\n- \"PhysicalTroughLCOECalculator\"\n- \"PhysicalTroughLeveragedPartnershipFlip\"\n- \"PhysicalTroughMerchantPlant\"\n- \"PhysicalTroughNone\"\n- \"PhysicalTroughSaleLeaseback\"\n- \"PhysicalTroughSingleOwner\"")}, + PyDoc_STR("default(config) -> TroughPhysical\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"PhysicalTroughAllEquityPartnershipFlip\"*\n\n - *\"PhysicalTroughLCOECalculator\"*\n\n - *\"PhysicalTroughLeveragedPartnershipFlip\"*\n\n - *\"PhysicalTroughMerchantPlant\"*\n\n - *\"PhysicalTroughNone\"*\n\n - *\"PhysicalTroughSaleLeaseback\"*\n\n - *\"PhysicalTroughSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TroughPhysical_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TroughPhysical\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TroughPhysical\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TroughPhysical_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TroughPhysical\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TroughPhysical\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TroughPhysicalCspSolver.c b/modules/TroughPhysicalCspSolver.c index b990453d..d1cacef7 100644 --- a/modules/TroughPhysicalCspSolver.c +++ b/modules/TroughPhysicalCspSolver.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: Local weather file with path [none]\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Local weather file with path [none]\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Trough_export(VarGroupObject *self, PyObject *args) static PyMethodDef Trough_methods[] = { {"assign", (PyCFunction)Trough_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Trough_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Trough_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Trough_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Trough_vals = { var: val, ...}``")}, {"export", (PyCFunction)Trough_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -273,7 +273,7 @@ Trough_set_system_capacity(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Trough_getset[] = { {"system_capacity", (getter)Trough_get_system_capacity,(setter)Trough_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -388,11 +388,11 @@ TimeOfDelivery_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeOfDelivery_methods[] = { {"assign", (PyCFunction)TimeOfDelivery_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeOfDelivery_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeOfDelivery_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeOfDelivery_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -422,10 +422,10 @@ TimeOfDelivery_set_ppa_multiplier_model(VarGroupObject *self, PyObject *value, v static PyGetSetDef TimeOfDelivery_getset[] = { {"dispatch_factors_ts", (getter)TimeOfDelivery_get_dispatch_factors_ts,(setter)TimeOfDelivery_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"ppa_multiplier_model", (getter)TimeOfDelivery_get_ppa_multiplier_model,(setter)TimeOfDelivery_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -540,11 +540,11 @@ SolarField_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarField_methods[] = { {"assign", (PyCFunction)SolarField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarField_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1582,262 +1582,262 @@ SolarField_set_water_usage_per_wash(VarGroupObject *self, PyObject *value, void static PyGetSetDef SolarField_getset[] = { {"A_aperture", (getter)SolarField_get_A_aperture,(setter)SolarField_set_A_aperture, - PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)SolarField_get_AbsorberMaterial,(setter)SolarField_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)SolarField_get_AnnulusGas,(setter)SolarField_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n**Required:**\nTrue"), NULL}, {"Ave_Focal_Length", (getter)SolarField_get_Ave_Focal_Length,(setter)SolarField_set_Ave_Focal_Length, - PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n**Required:**\nTrue"), NULL}, {"ColperSCA", (getter)SolarField_get_ColperSCA,(setter)SolarField_set_ColperSCA, - PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n**Required:**\nTrue"), NULL}, {"D_2", (getter)SolarField_get_D_2,(setter)SolarField_set_D_2, - PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)SolarField_get_D_3,(setter)SolarField_set_D_3, - PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)SolarField_get_D_4,(setter)SolarField_set_D_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)SolarField_get_D_5,(setter)SolarField_set_D_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)SolarField_get_D_p,(setter)SolarField_set_D_p, - PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)SolarField_get_Design_loss,(setter)SolarField_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)SolarField_get_Dirt_HCE,(setter)SolarField_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n**Required:**\nTrue"), NULL}, {"Dirt_mirror", (getter)SolarField_get_Dirt_mirror,(setter)SolarField_set_Dirt_mirror, - PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"Distance_SCA", (getter)SolarField_get_Distance_SCA,(setter)SolarField_set_Distance_SCA, - PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)SolarField_get_EPSILON_4,(setter)SolarField_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_5", (getter)SolarField_get_EPSILON_5,(setter)SolarField_set_EPSILON_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"Error", (getter)SolarField_get_Error,(setter)SolarField_set_Error, - PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"FieldConfig", (getter)SolarField_get_FieldConfig,(setter)SolarField_set_FieldConfig, - PyDoc_STR("*float*: Number of subfield headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of subfield headers [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)SolarField_get_Flow_type,(setter)SolarField_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"Fluid", (getter)SolarField_get_Fluid,(setter)SolarField_set_Fluid, - PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)SolarField_get_GeomEffects,(setter)SolarField_set_GeomEffects, - PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)SolarField_get_GlazingIntactIn,(setter)SolarField_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)SolarField_get_HCE_FieldFrac,(setter)SolarField_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)SolarField_get_HDR_rough,(setter)SolarField_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"IAM_matrix", (getter)SolarField_get_IAM_matrix,(setter)SolarField_set_IAM_matrix, - PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)SolarField_get_I_bn_des,(setter)SolarField_set_I_bn_des, - PyDoc_STR("*float*: Solar irradiation at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar irradiation at design [C]\n\n**Required:**\nTrue"), NULL}, {"L_SCA", (getter)SolarField_get_L_SCA,(setter)SolarField_set_L_SCA, - PyDoc_STR("*sequence*: Length of the SCA [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of the SCA [m]\n\n**Required:**\nTrue"), NULL}, {"L_aperture", (getter)SolarField_get_L_aperture,(setter)SolarField_set_L_aperture, - PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)SolarField_get_P_a,(setter)SolarField_set_P_a, - PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n**Required:**\nTrue"), NULL}, {"P_ref", (getter)SolarField_get_P_ref,(setter)SolarField_set_P_ref, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {"Pipe_hl_coef", (getter)SolarField_get_Pipe_hl_coef,(setter)SolarField_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n**Required:**\nTrue"), NULL}, {"Rho_mirror_clean", (getter)SolarField_get_Rho_mirror_clean,(setter)SolarField_set_Rho_mirror_clean, - PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)SolarField_get_Rough,(setter)SolarField_set_Rough, - PyDoc_STR("*sequence[sequence]*: Roughness of the internal surface [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Roughness of the internal surface [m]\n\n**Required:**\nTrue"), NULL}, {"Row_Distance", (getter)SolarField_get_Row_Distance,(setter)SolarField_set_Row_Distance, - PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n**Required:**\nTrue"), NULL}, {"SCADefocusArray", (getter)SolarField_get_SCADefocusArray,(setter)SolarField_set_SCADefocusArray, - PyDoc_STR("*sequence*: Collector defocus order [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Collector defocus order [none]\n\n**Required:**\nTrue"), NULL}, {"SCAInfoArray", (getter)SolarField_get_SCAInfoArray,(setter)SolarField_set_SCAInfoArray, - PyDoc_STR("*sequence[sequence]*: Receiver (,1) and collector (,2) type for each assembly in loop [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver (,1) and collector (,2) type for each assembly in loop [none]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)SolarField_get_SCA_drives_elec,(setter)SolarField_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)SolarField_get_Shadowing,(setter)SolarField_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n**Required:**\nTrue"), NULL}, {"T_fp", (getter)SolarField_get_T_fp,(setter)SolarField_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n**Required:**\nTrue"), NULL}, {"T_loop_in_des", (getter)SolarField_get_T_loop_in_des,(setter)SolarField_set_T_loop_in_des, - PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_out", (getter)SolarField_get_T_loop_out,(setter)SolarField_set_T_loop_out, - PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_startup", (getter)SolarField_get_T_startup,(setter)SolarField_set_T_startup, - PyDoc_STR("*float*: Required temperature of the system before the power block can be switched on [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Required temperature of the system before the power block can be switched on [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)SolarField_get_Tau_envelope,(setter)SolarField_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)SolarField_get_TrackingError,(setter)SolarField_set_TrackingError, - PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_max", (getter)SolarField_get_V_hdr_max,(setter)SolarField_set_V_hdr_max, - PyDoc_STR("*float*: Maximum HTF velocity in the header at design [W/m2]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the header at design [W/m2]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_min", (getter)SolarField_get_V_hdr_min,(setter)SolarField_set_V_hdr_min, - PyDoc_STR("*float*: Minimum HTF velocity in the header at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the header at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_aperture", (getter)SolarField_get_W_aperture,(setter)SolarField_set_W_aperture, - PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n**Required:**\nTrue"), NULL}, {"accept_init", (getter)SolarField_get_accept_init,(setter)SolarField_set_accept_init, - PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n**Required:**\nTrue"), NULL}, {"accept_loc", (getter)SolarField_get_accept_loc,(setter)SolarField_set_accept_loc, - PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n*Info*: hx/loop\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n**Info:**\nhx/loop\n\n**Required:**\nTrue"), NULL}, {"accept_mode", (getter)SolarField_get_accept_mode,(setter)SolarField_set_accept_mode, - PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n*Info*: no/yes\n\n*Required*: True"), + PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n**Info:**\nno/yes\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)SolarField_get_alpha_abs,(setter)SolarField_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)SolarField_get_alpha_env,(setter)SolarField_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_11", (getter)SolarField_get_epsilon_3_11,(setter)SolarField_set_epsilon_3_11, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_12", (getter)SolarField_get_epsilon_3_12,(setter)SolarField_set_epsilon_3_12, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_13", (getter)SolarField_get_epsilon_3_13,(setter)SolarField_set_epsilon_3_13, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_14", (getter)SolarField_get_epsilon_3_14,(setter)SolarField_set_epsilon_3_14, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_21", (getter)SolarField_get_epsilon_3_21,(setter)SolarField_set_epsilon_3_21, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_22", (getter)SolarField_get_epsilon_3_22,(setter)SolarField_set_epsilon_3_22, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_23", (getter)SolarField_get_epsilon_3_23,(setter)SolarField_set_epsilon_3_23, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_24", (getter)SolarField_get_epsilon_3_24,(setter)SolarField_set_epsilon_3_24, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_31", (getter)SolarField_get_epsilon_3_31,(setter)SolarField_set_epsilon_3_31, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_32", (getter)SolarField_get_epsilon_3_32,(setter)SolarField_set_epsilon_3_32, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_33", (getter)SolarField_get_epsilon_3_33,(setter)SolarField_set_epsilon_3_33, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_34", (getter)SolarField_get_epsilon_3_34,(setter)SolarField_set_epsilon_3_34, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_41", (getter)SolarField_get_epsilon_3_41,(setter)SolarField_set_epsilon_3_41, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_42", (getter)SolarField_get_epsilon_3_42,(setter)SolarField_set_epsilon_3_42, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_43", (getter)SolarField_get_epsilon_3_43,(setter)SolarField_set_epsilon_3_43, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_44", (getter)SolarField_get_epsilon_3_44,(setter)SolarField_set_epsilon_3_44, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)SolarField_get_eta_pump,(setter)SolarField_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"fthrctrl", (getter)SolarField_get_fthrctrl,(setter)SolarField_set_fthrctrl, - PyDoc_STR("*float*: Defocusing strategy [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Defocusing strategy [none]\n\n**Required:**\nTrue"), NULL}, {"fthrok", (getter)SolarField_get_fthrok,(setter)SolarField_set_fthrok, - PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors [W/SCA]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Flag to allow partial defocusing of the collectors [W/SCA]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmax", (getter)SolarField_get_m_dot_htfmax,(setter)SolarField_set_m_dot_htfmax, - PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmin", (getter)SolarField_get_m_dot_htfmin,(setter)SolarField_set_m_dot_htfmin, - PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_cold", (getter)SolarField_get_mc_bal_cold,(setter)SolarField_set_mc_bal_cold, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_hot", (getter)SolarField_get_mc_bal_hot,(setter)SolarField_set_mc_bal_hot, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n*Info*: none\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n**Info:**\nnone\n\n**Required:**\nTrue"), NULL}, {"mc_bal_sca", (getter)SolarField_get_mc_bal_sca,(setter)SolarField_set_mc_bal_sca, - PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n*Required*: True"), + PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n**Required:**\nTrue"), NULL}, {"nColt", (getter)SolarField_get_nColt,(setter)SolarField_set_nColt, - PyDoc_STR("*float*: Number of collector types [none]\n\n*Options*: constant=4\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector types [none]\n\n**Options:**\nconstant=4\n\n**Required:**\nTrue"), NULL}, {"nHCEVar", (getter)SolarField_get_nHCEVar,(setter)SolarField_set_nHCEVar, - PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n**Required:**\nTrue"), NULL}, {"nHCEt", (getter)SolarField_get_nHCEt,(setter)SolarField_set_nHCEt, - PyDoc_STR("*float*: Number of HCE types [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE types [none]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)SolarField_get_nLoops,(setter)SolarField_set_nLoops, - PyDoc_STR("*float*: Number of loops in the field [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of loops in the field [none]\n\n**Required:**\nTrue"), NULL}, {"nSCA", (getter)SolarField_get_nSCA,(setter)SolarField_set_nSCA, - PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n**Required:**\nTrue"), NULL}, {"solar_mult", (getter)SolarField_get_solar_mult,(setter)SolarField_set_solar_mult, - PyDoc_STR("*float*: Solar multiple [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar multiple [none]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)SolarField_get_theta_dep,(setter)SolarField_set_theta_dep, - PyDoc_STR("*float*: Deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)SolarField_get_theta_stow,(setter)SolarField_set_theta_stow, - PyDoc_STR("*float*: Stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"washing_frequency", (getter)SolarField_get_washing_frequency,(setter)SolarField_set_washing_frequency, - PyDoc_STR("*float*: Mirror washing frequency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [none]\n\n**Required:**\nTrue"), NULL}, {"water_usage_per_wash", (getter)SolarField_get_water_usage_per_wash,(setter)SolarField_set_water_usage_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -1952,11 +1952,11 @@ Controller_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controller_methods[] = { {"assign", (PyCFunction)Controller_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controller_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controller_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controller_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controller_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2490,136 +2490,136 @@ Controller_set_vol_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Controller_getset[] = { {"T_set_aux", (getter)Controller_get_T_set_aux,(setter)Controller_set_T_set_aux, - PyDoc_STR("*float*: Aux heater outlet temp set point [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Aux heater outlet temp set point [C]\n\n**Required:**\nTrue"), NULL}, {"T_tank_cold_ini", (getter)Controller_get_T_tank_cold_ini,(setter)Controller_set_T_tank_cold_ini, - PyDoc_STR("*float*: Initial cold tank fluid tmeperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial cold tank fluid tmeperature [C]\n\n**Required:**\nTrue"), NULL}, {"V_tank_hot_ini", (getter)Controller_get_V_tank_hot_ini,(setter)Controller_set_V_tank_hot_ini, - PyDoc_STR("*float*: Initial hot tank fluid volume [m3]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial hot tank fluid volume [m3]\n\n**Required:**\nTrue"), NULL}, {"W_pb_design", (getter)Controller_get_W_pb_design,(setter)Controller_set_W_pb_design, - PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated plant capacity [MWe]\n\n**Required:**\nTrue"), NULL}, {"aux_array", (getter)Controller_get_aux_array,(setter)Controller_set_aux_array, - PyDoc_STR("*sequence*: Coefficients for auxiliary heater parasitics calcs [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Coefficients for auxiliary heater parasitics calcs [-]\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)Controller_get_bop_array,(setter)Controller_set_bop_array, - PyDoc_STR("*sequence*: Coefficients for balance of plant parasitics calcs [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Coefficients for balance of plant parasitics calcs [-]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_Thtr", (getter)Controller_get_cold_tank_Thtr,(setter)Controller_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"cycle_cutoff_frac", (getter)Controller_get_cycle_cutoff_frac,(setter)Controller_set_cycle_cutoff_frac, - PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum turbine operation fraction before shutdown [-]\n\n**Required:**\nTrue"), NULL}, {"cycle_max_frac", (getter)Controller_get_cycle_max_frac,(setter)Controller_set_cycle_max_frac, - PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum turbine over design operation fraction [-]\n\n**Required:**\nTrue"), NULL}, {"dt_cold", (getter)Controller_get_dt_cold,(setter)Controller_set_dt_cold, - PyDoc_STR("*float*: Cold side HX approach temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold side HX approach temp [C]\n\n**Required:**\nTrue"), NULL}, {"dt_hot", (getter)Controller_get_dt_hot,(setter)Controller_set_dt_hot, - PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot side HX approach temp [C]\n\n**Required:**\nTrue"), NULL}, {"f_tc_cold", (getter)Controller_get_f_tc_cold,(setter)Controller_set_f_tc_cold, - PyDoc_STR("*float*: 0=entire tank is hot, 1=entire tank is cold [-]\n\n*Required*: True"), + PyDoc_STR("*float*: 0=entire tank is hot, 1=entire tank is cold [-]\n\n**Required:**\nTrue"), NULL}, {"ffrac", (getter)Controller_get_ffrac,(setter)Controller_set_ffrac, - PyDoc_STR("*sequence*: Fossil dispatch logic [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Fossil dispatch logic [-]\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Controller_get_field_fl_props,(setter)Controller_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"fossil_mode", (getter)Controller_get_fossil_mode,(setter)Controller_set_fossil_mode, - PyDoc_STR("*float*: Fossil backup mode 1=Normal 2=Topping [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil backup mode 1=Normal 2=Topping [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)Controller_get_h_tank,(setter)Controller_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)Controller_get_h_tank_min,(setter)Controller_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)Controller_get_hot_tank_Thtr,(setter)Controller_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"hx_config", (getter)Controller_get_hx_config,(setter)Controller_set_hx_config, - PyDoc_STR("*float*: HX configuration [-]\n\n*Required*: True"), + PyDoc_STR("*float*: HX configuration [-]\n\n**Required:**\nTrue"), NULL}, {"is_hx", (getter)Controller_get_is_hx,(setter)Controller_set_is_hx, - PyDoc_STR("*float*: Heat exchanger (HX) exists (1=yes, 0=no) [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat exchanger (HX) exists (1=yes, 0=no) [-]\n\n**Required:**\nTrue"), NULL}, {"nodes", (getter)Controller_get_nodes,(setter)Controller_set_nodes, - PyDoc_STR("*float*: Nodes modeled in the flow path [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Nodes modeled in the flow path [-]\n\n**Required:**\nTrue"), NULL}, {"pb_fixed_par", (getter)Controller_get_pb_fixed_par,(setter)Controller_set_pb_fixed_par, - PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [-]\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)Controller_get_pb_pump_coef,(setter)Controller_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"q_max_aux", (getter)Controller_get_q_max_aux,(setter)Controller_set_q_max_aux, - PyDoc_STR("*float*: Max heat rate of auxiliary heater [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Max heat rate of auxiliary heater [MWt]\n\n**Required:**\nTrue"), NULL}, {"q_pb_design", (getter)Controller_get_q_pb_design,(setter)Controller_set_q_pb_design, - PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n**Required:**\nTrue"), NULL}, {"q_sby_frac", (getter)Controller_get_q_sby_frac,(setter)Controller_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby [-]\n\n**Required:**\nTrue"), NULL}, {"sf_type", (getter)Controller_get_sf_type,(setter)Controller_set_sf_type, - PyDoc_STR("*float*: Solar field type, 1 = trough, 2 = tower [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar field type, 1 = trough, 2 = tower [-]\n\n**Required:**\nTrue"), NULL}, {"store_fl_props", (getter)Controller_get_store_fl_props,(setter)Controller_set_store_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined storage fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"store_fluid", (getter)Controller_get_store_fluid,(setter)Controller_set_store_fluid, - PyDoc_STR("*float*: Material number for storage fluid [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Material number for storage fluid [-]\n\n**Required:**\nTrue"), NULL}, {"t_ch_out_max", (getter)Controller_get_t_ch_out_max,(setter)Controller_set_t_ch_out_max, - PyDoc_STR("*float*: Max allowable cold side outlet temp during charge [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Max allowable cold side outlet temp during charge [C]\n\n**Required:**\nTrue"), NULL}, {"t_dis_out_min", (getter)Controller_get_t_dis_out_min,(setter)Controller_set_t_dis_out_min, - PyDoc_STR("*float*: Min allowable hot side outlet temp during discharge [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Min allowable hot side outlet temp during discharge [C]\n\n**Required:**\nTrue"), NULL}, {"t_standby_reset", (getter)Controller_get_t_standby_reset,(setter)Controller_set_t_standby_reset, - PyDoc_STR("*float*: Maximum allowable time for PB standby operation [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum allowable time for PB standby operation [hr]\n\n**Required:**\nTrue"), NULL}, {"tank_max_heat", (getter)Controller_get_tank_max_heat,(setter)Controller_set_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)Controller_get_tank_pairs,(setter)Controller_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tc_fill", (getter)Controller_get_tc_fill,(setter)Controller_set_tc_fill, - PyDoc_STR("*float*: Thermocline fill material [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermocline fill material [-]\n\n**Required:**\nTrue"), NULL}, {"tc_void", (getter)Controller_get_tc_void,(setter)Controller_set_tc_void, - PyDoc_STR("*float*: Thermocline void fraction [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermocline void fraction [-]\n\n**Required:**\nTrue"), NULL}, {"tes_pump_coef", (getter)Controller_get_tes_pump_coef,(setter)Controller_set_tes_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through tes loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"tes_type", (getter)Controller_get_tes_type,(setter)Controller_set_tes_type, - PyDoc_STR("*float*: 1=2-tank, 2=thermocline [-]\n\n*Required*: True"), + PyDoc_STR("*float*: 1=2-tank, 2=thermocline [-]\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)Controller_get_tshours,(setter)Controller_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {"tslogic_a", (getter)Controller_get_tslogic_a,(setter)Controller_set_tslogic_a, - PyDoc_STR("*sequence*: Dispatch logic without solar [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic without solar [-]\n\n**Required:**\nTrue"), NULL}, {"tslogic_b", (getter)Controller_get_tslogic_b,(setter)Controller_set_tslogic_b, - PyDoc_STR("*sequence*: Dispatch logic with solar [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic with solar [-]\n\n**Required:**\nTrue"), NULL}, {"tslogic_c", (getter)Controller_get_tslogic_c,(setter)Controller_set_tslogic_c, - PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic for turbine load fraction [-]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)Controller_get_u_tank,(setter)Controller_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"vol_tank", (getter)Controller_get_vol_tank,(setter)Controller_set_vol_tank, - PyDoc_STR("*float*: Total tank volume, including unusable HTF at bottom [m3]\n\n*Required*: True"), + PyDoc_STR("*float*: Total tank volume, including unusable HTF at bottom [m3]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2734,11 +2734,11 @@ TouTranslator_export(VarGroupObject *self, PyObject *args) static PyMethodDef TouTranslator_methods[] = { {"assign", (PyCFunction)TouTranslator_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TouTranslator_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TouTranslator_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TouTranslator_vals = { var: val, ...}``")}, {"export", (PyCFunction)TouTranslator_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2768,10 +2768,10 @@ TouTranslator_set_weekend_schedule(VarGroupObject *self, PyObject *value, void * static PyGetSetDef TouTranslator_getset[] = { {"weekday_schedule", (getter)TouTranslator_get_weekday_schedule,(setter)TouTranslator_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for week days\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for week days\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)TouTranslator_get_weekend_schedule,(setter)TouTranslator_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for weekends\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Dispatch 12mx24h schedule for weekends\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2886,11 +2886,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3100,55 +3100,55 @@ Powerblock_set_tech_type(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Powerblock_getset[] = { {"CT", (getter)Powerblock_get_CT,(setter)Powerblock_set_CT, - PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Flag for using dry cooling or wet cooling system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"F_wc", (getter)Powerblock_get_F_wc,(setter)Powerblock_set_F_wc, - PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n*Options*: constant=[0,0,0,0,0,0,0,0,0]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*sequence*: Fraction indicating wet cooling use for hybrid system [none]\n\n**Options:**\nconstant=[0,0,0,0,0,0,0,0,0]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_boil", (getter)Powerblock_get_P_boil,(setter)Powerblock_set_P_boil, - PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Boiler operating pressure [bar]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_min", (getter)Powerblock_get_P_cond_min,(setter)Powerblock_set_P_cond_min, - PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Minimum condenser pressure [inHg]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"P_cond_ratio", (getter)Powerblock_get_P_cond_ratio,(setter)Powerblock_set_P_cond_ratio, - PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Condenser pressure ratio [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_ITD_des", (getter)Powerblock_get_T_ITD_des,(setter)Powerblock_set_T_ITD_des, - PyDoc_STR("*float*: ITD at design for dry system [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: ITD at design for dry system [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_amb_des", (getter)Powerblock_get_T_amb_des,(setter)Powerblock_set_T_amb_des, - PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference ambient temperature at design point [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"T_approach", (getter)Powerblock_get_T_approach,(setter)Powerblock_set_T_approach, - PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Cooling tower approach temperature [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"dT_cw_ref", (getter)Powerblock_get_dT_cw_ref,(setter)Powerblock_set_dT_cw_ref, - PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Reference condenser cooling water inlet/outlet T diff [C]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"eta_ref", (getter)Powerblock_get_eta_ref,(setter)Powerblock_set_eta_ref, - PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Reference conversion efficiency at design condition [none]\n\n**Required:**\nTrue"), NULL}, {"n_pl_inc", (getter)Powerblock_get_n_pl_inc,(setter)Powerblock_set_n_pl_inc, - PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Number of part-load increments for the heat rejection system [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pb_bd_frac", (getter)Powerblock_get_pb_bd_frac,(setter)Powerblock_set_pb_bd_frac, - PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Power block blowdown steam fraction [none]\n\n**Required:**\nRequired if pc_config=0"), NULL}, {"pc_config", (getter)Powerblock_get_pc_config,(setter)Powerblock_set_pc_config, - PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: 0: Steam Rankine (224), 1: user defined [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_sby_frac", (getter)Powerblock_get_q_sby_frac,(setter)Powerblock_set_q_sby_frac, - PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of thermal power required for standby mode [none]\n\n**Required:**\nTrue"), NULL}, {"startup_frac", (getter)Powerblock_get_startup_frac,(setter)Powerblock_set_startup_frac, - PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of design thermal power needed for startup [none]\n\n**Required:**\nTrue"), NULL}, {"startup_time", (getter)Powerblock_get_startup_time,(setter)Powerblock_set_startup_time, - PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Time needed for power block startup [hr]\n\n**Required:**\nTrue"), NULL}, {"tech_type", (getter)Powerblock_get_tech_type,(setter)Powerblock_set_tech_type, - PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n*Info*: tower/trough/user\n\n*Required*: True if pc_config=0"), + PyDoc_STR("*float*: Turbine inlet pressure control flag (sliding=user, fixed=trough) [1/2/3]\n\n**Info:**\ntower/trough/user\n\n**Required:**\nRequired if pc_config=0"), NULL}, {NULL} /* Sentinel */ }; @@ -3263,11 +3263,11 @@ UserDefinedPC_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPC_methods[] = { {"assign", (PyCFunction)UserDefinedPC_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPC_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPC_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPC_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPC_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3429,43 +3429,43 @@ UserDefinedPC_set_ud_m_dot_water_cool_des(VarGroupObject *self, PyObject *value, static PyGetSetDef UserDefinedPC_getset[] = { {"ud_T_amb_des", (getter)UserDefinedPC_get_ud_T_amb_des,(setter)UserDefinedPC_set_ud_T_amb_des, - PyDoc_STR("*float*: Ambient temperature at user-defined power cycle design point [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Ambient temperature at user-defined power cycle design point [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_amb_high", (getter)UserDefinedPC_get_ud_T_amb_high,(setter)UserDefinedPC_set_ud_T_amb_high, - PyDoc_STR("*float*: High level ambient temperature for HTF mass flow rate parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level ambient temperature for HTF mass flow rate parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_amb_ind_od", (getter)UserDefinedPC_get_ud_T_amb_ind_od,(setter)UserDefinedPC_set_ud_T_amb_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_amb [C]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_amb [C]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_T_amb_low", (getter)UserDefinedPC_get_ud_T_amb_low,(setter)UserDefinedPC_set_ud_T_amb_low, - PyDoc_STR("*float*: Low level ambient temperature for HTF mass flow rate parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level ambient temperature for HTF mass flow rate parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_htf_high", (getter)UserDefinedPC_get_ud_T_htf_high,(setter)UserDefinedPC_set_ud_T_htf_high, - PyDoc_STR("*float*: High level HTF inlet temperature for T_amb parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level HTF inlet temperature for T_amb parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_T_htf_ind_od", (getter)UserDefinedPC_get_ud_T_htf_ind_od,(setter)UserDefinedPC_set_ud_T_htf_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_htf_hot [C]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on T_htf_hot [C]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_T_htf_low", (getter)UserDefinedPC_get_ud_T_htf_low,(setter)UserDefinedPC_set_ud_T_htf_low, - PyDoc_STR("*float*: Low level HTF inlet temperature for T_amb parametric [C]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level HTF inlet temperature for T_amb parametric [C]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_f_W_dot_cool_des", (getter)UserDefinedPC_get_ud_f_W_dot_cool_des,(setter)UserDefinedPC_set_ud_f_W_dot_cool_des, - PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Percent of user-defined power cycle design gross output consumed by cooling [%]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_ind_od", (getter)UserDefinedPC_get_ud_ind_od,(setter)UserDefinedPC_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_m_dot_htf_high", (getter)UserDefinedPC_get_ud_m_dot_htf_high,(setter)UserDefinedPC_set_ud_m_dot_htf_high, - PyDoc_STR("*float*: High level normalized HTF mass flow rate for T_HTF parametric [-]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: High level normalized HTF mass flow rate for T_HTF parametric [-]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_htf_ind_od", (getter)UserDefinedPC_get_ud_m_dot_htf_ind_od,(setter)UserDefinedPC_set_ud_m_dot_htf_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on m_dot_htf [ND]\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design table of user-defined power cycle performance formed from parametric on m_dot_htf [ND]\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {"ud_m_dot_htf_low", (getter)UserDefinedPC_get_ud_m_dot_htf_low,(setter)UserDefinedPC_set_ud_m_dot_htf_low, - PyDoc_STR("*float*: Low level normalized HTF mass flow rate for T_HTF parametric [-]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Low level normalized HTF mass flow rate for T_HTF parametric [-]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {"ud_m_dot_water_cool_des", (getter)UserDefinedPC_get_ud_m_dot_water_cool_des,(setter)UserDefinedPC_set_ud_m_dot_water_cool_des, - PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n*Required*: True if pc_config=1"), + PyDoc_STR("*float*: Mass flow rate of water required at user-defined power cycle design point [kg/s]\n\n**Required:**\nRequired if pc_config=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3580,11 +3580,11 @@ Enet_export(VarGroupObject *self, PyObject *args) static PyMethodDef Enet_methods[] = { {"assign", (PyCFunction)Enet_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Enet_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Enet_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Enet_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Enet_vals = { var: val, ...}``")}, {"export", (PyCFunction)Enet_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3614,10 +3614,10 @@ Enet_set_eta_tes_htr(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Enet_getset[] = { {"eta_lhv", (getter)Enet_get_eta_lhv,(setter)Enet_set_eta_lhv, - PyDoc_STR("*float*: Fossil fuel lower heating value - Thermal power generated per unit fuel [MW/MMBTU]\n\n*Required*: True"), + PyDoc_STR("*float*: Fossil fuel lower heating value - Thermal power generated per unit fuel [MW/MMBTU]\n\n**Required:**\nTrue"), NULL}, {"eta_tes_htr", (getter)Enet_get_eta_tes_htr,(setter)Enet_set_eta_tes_htr, - PyDoc_STR("*float*: Thermal storage tank heater efficiency (fp_mode=1 only) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Thermal storage tank heater efficiency (fp_mode=1 only) [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3732,11 +3732,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4842,12 +4842,11 @@ static PyMethodDef TroughPhysicalCspSolverModule_methods[] = { {"new", TroughPhysicalCspSolver_new, METH_VARARGS, PyDoc_STR("new() -> TroughPhysicalCspSolver")}, {"default", TroughPhysicalCspSolver_default, METH_VARARGS, - PyDoc_STR("default(config) -> TroughPhysicalCspSolver\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> TroughPhysicalCspSolver\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TroughPhysicalCspSolver_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TroughPhysicalCspSolver\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TroughPhysicalCspSolver\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TroughPhysicalCspSolver_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TroughPhysicalCspSolver\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TroughPhysicalCspSolver\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/TroughPhysicalProcessHeat.c b/modules/TroughPhysicalProcessHeat.c index af6f216f..c3db2156 100644 --- a/modules/TroughPhysicalProcessHeat.c +++ b/modules/TroughPhysicalProcessHeat.c @@ -69,11 +69,11 @@ Weather_export(VarGroupObject *self, PyObject *args) static PyMethodDef Weather_methods[] = { {"assign", (PyCFunction)Weather_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Weather_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Weather_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Weather_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Weather_vals = { var: val, ...}``")}, {"export", (PyCFunction)Weather_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -139,19 +139,19 @@ Weather_set_track_mode(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Weather_getset[] = { {"azimuth", (getter)Weather_get_azimuth,(setter)Weather_set_azimuth, - PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Azimuth angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"file_name", (getter)Weather_get_file_name,(setter)Weather_set_file_name, - PyDoc_STR("*str*: Local weather file with path [none]\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: Local weather file with path [none]\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"solar_resource_data", (getter)Weather_get_solar_resource_data,(setter)Weather_set_solar_resource_data, - PyDoc_STR("*dict*: Weather resource data in memory\n\n*Required*: False"), + PyDoc_STR("*dict*: Weather resource data in memory\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"tilt", (getter)Weather_get_tilt,(setter)Weather_set_tilt, - PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tilt angle of surface/axis [none]\n\n**Required:**\nTrue"), NULL}, {"track_mode", (getter)Weather_get_track_mode,(setter)Weather_set_track_mode, - PyDoc_STR("*float*: Tracking mode [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking mode [none]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -266,11 +266,11 @@ SolarField_export(VarGroupObject *self, PyObject *args) static PyMethodDef SolarField_methods[] = { {"assign", (PyCFunction)SolarField_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SolarField_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SolarField_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SolarField_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SolarField_vals = { var: val, ...}``")}, {"export", (PyCFunction)SolarField_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1524,316 +1524,316 @@ SolarField_set_wind_stow_speed(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef SolarField_getset[] = { {"A_aperture", (getter)SolarField_get_A_aperture,(setter)SolarField_set_A_aperture, - PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Reflective aperture area of the collector [m2]\n\n**Required:**\nTrue"), NULL}, {"AbsorberMaterial", (getter)SolarField_get_AbsorberMaterial,(setter)SolarField_set_AbsorberMaterial, - PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber material type [none]\n\n**Required:**\nTrue"), NULL}, {"AnnulusGas", (getter)SolarField_get_AnnulusGas,(setter)SolarField_set_AnnulusGas, - PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas type (1=air, 26=Ar, 27=H2) [none]\n\n**Required:**\nTrue"), NULL}, {"Ave_Focal_Length", (getter)SolarField_get_Ave_Focal_Length,(setter)SolarField_set_Ave_Focal_Length, - PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Average focal length of the collector [m]\n\n**Required:**\nTrue"), NULL}, {"ColperSCA", (getter)SolarField_get_ColperSCA,(setter)SolarField_set_ColperSCA, - PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Number of individual collector sections in an SCA [none]\n\n**Required:**\nTrue"), NULL}, {"D_2", (getter)SolarField_get_D_2,(setter)SolarField_set_D_2, - PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_3", (getter)SolarField_get_D_3,(setter)SolarField_set_D_3, - PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer absorber tube diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_4", (getter)SolarField_get_D_4,(setter)SolarField_set_D_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_5", (getter)SolarField_get_D_5,(setter)SolarField_set_D_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope diameter [m]\n\n**Required:**\nTrue"), NULL}, {"D_cpnt", (getter)SolarField_get_D_cpnt,(setter)SolarField_set_D_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component diameters, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"D_p", (getter)SolarField_get_D_p,(setter)SolarField_set_D_p, - PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Diameter of the absorber flow plug (optional) [m]\n\n**Required:**\nTrue"), NULL}, {"Design_loss", (getter)SolarField_get_Design_loss,(setter)SolarField_set_Design_loss, - PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver heat loss at design [W/m]\n\n**Required:**\nTrue"), NULL}, {"Dirt_HCE", (getter)SolarField_get_Dirt_HCE,(setter)SolarField_set_Dirt_HCE, - PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Loss due to dirt on the receiver envelope [none]\n\n**Required:**\nTrue"), NULL}, {"Dirt_mirror", (getter)SolarField_get_Dirt_mirror,(setter)SolarField_set_Dirt_mirror, - PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined dirt on mirror derate [none]\n\n**Required:**\nTrue"), NULL}, {"Distance_SCA", (getter)SolarField_get_Distance_SCA,(setter)SolarField_set_Distance_SCA, - PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Piping distance between SCA's in the field [m]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_4", (getter)SolarField_get_EPSILON_4,(setter)SolarField_set_EPSILON_4, - PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Inner glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"EPSILON_5", (getter)SolarField_get_EPSILON_5,(setter)SolarField_set_EPSILON_5, - PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Outer glass envelope emissivities (Pyrex) [none]\n\n**Required:**\nTrue"), NULL}, {"Error", (getter)SolarField_get_Error,(setter)SolarField_set_Error, - PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined general optical error derate [none]\n\n**Required:**\nTrue"), NULL}, {"FieldConfig", (getter)SolarField_get_FieldConfig,(setter)SolarField_set_FieldConfig, - PyDoc_STR("*float*: Number of subfield headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of subfield headers [none]\n\n**Required:**\nTrue"), NULL}, {"Flow_type", (getter)SolarField_get_Flow_type,(setter)SolarField_set_Flow_type, - PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Flow type through the absorber [none]\n\n**Required:**\nTrue"), NULL}, {"Fluid", (getter)SolarField_get_Fluid,(setter)SolarField_set_Fluid, - PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Field HTF fluid ID number [none]\n\n**Required:**\nTrue"), NULL}, {"GeomEffects", (getter)SolarField_get_GeomEffects,(setter)SolarField_set_GeomEffects, - PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined geometry effects derate [none]\n\n**Required:**\nTrue"), NULL}, {"GlazingIntactIn", (getter)SolarField_get_GlazingIntactIn,(setter)SolarField_set_GlazingIntactIn, - PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Glazing intact (broken glass) flag {1=true, else=false} [none]\n\n**Required:**\nTrue"), NULL}, {"HCE_FieldFrac", (getter)SolarField_get_HCE_FieldFrac,(setter)SolarField_set_HCE_FieldFrac, - PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Fraction of the field occupied by this HCE type [none]\n\n**Required:**\nTrue"), NULL}, {"HDR_rough", (getter)SolarField_get_HDR_rough,(setter)SolarField_set_HDR_rough, - PyDoc_STR("*float*: Header pipe roughness [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Header pipe roughness [m]\n\n**Required:**\nTrue"), NULL}, {"IAM_matrix", (getter)SolarField_get_IAM_matrix,(setter)SolarField_set_IAM_matrix, - PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: IAM coefficients, matrix for 4 collectors [none]\n\n**Required:**\nTrue"), NULL}, {"I_bn_des", (getter)SolarField_get_I_bn_des,(setter)SolarField_set_I_bn_des, - PyDoc_STR("*float*: Solar irradiation at design [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Solar irradiation at design [C]\n\n**Required:**\nTrue"), NULL}, {"K_cpnt", (getter)SolarField_get_K_cpnt,(setter)SolarField_set_K_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component minor loss coefficients, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_SCA", (getter)SolarField_get_L_SCA,(setter)SolarField_set_L_SCA, - PyDoc_STR("*sequence*: Length of the SCA [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of the SCA [m]\n\n**Required:**\nTrue"), NULL}, {"L_aperture", (getter)SolarField_get_L_aperture,(setter)SolarField_set_L_aperture, - PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Length of a single mirror/HCE unit [m]\n\n**Required:**\nTrue"), NULL}, {"L_cpnt", (getter)SolarField_get_L_cpnt,(setter)SolarField_set_L_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component lengths, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"L_heat_sink_piping", (getter)SolarField_get_L_heat_sink_piping,(setter)SolarField_set_L_heat_sink_piping, - PyDoc_STR("*float*: Length of piping (full mass flow) through heat sink (if applicable) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of piping (full mass flow) through heat sink (if applicable) [none]\n\n**Required:**\nTrue"), NULL}, {"L_rnr_per_xpan", (getter)SolarField_get_L_rnr_per_xpan,(setter)SolarField_set_L_rnr_per_xpan, - PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Threshold length of straight runner pipe without an expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_hdr", (getter)SolarField_get_L_xpan_hdr,(setter)SolarField_set_L_xpan_hdr, - PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each header expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"L_xpan_rnr", (getter)SolarField_get_L_xpan_rnr,(setter)SolarField_set_L_xpan_rnr, - PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Compined perpendicular lengths of each runner expansion loop [m]\n\n**Required:**\nTrue"), NULL}, {"Min_rnr_xpans", (getter)SolarField_get_Min_rnr_xpans,(setter)SolarField_set_Min_rnr_xpans, - PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum number of expansion loops per single-diameter runner section [none]\n\n**Required:**\nTrue"), NULL}, {"N_hdr_per_xpan", (getter)SolarField_get_N_hdr_per_xpan,(setter)SolarField_set_N_hdr_per_xpan, - PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector loops per expansion loop [none]\n\n**Required:**\nTrue"), NULL}, {"N_max_hdr_diams", (getter)SolarField_get_N_max_hdr_diams,(setter)SolarField_set_N_max_hdr_diams, - PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum number of diameters in each of the hot and cold headers [none]\n\n**Required:**\nTrue"), NULL}, {"P_a", (getter)SolarField_get_P_a,(setter)SolarField_set_P_a, - PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Annulus gas pressure [torr]\n\n**Required:**\nTrue"), NULL}, {"Pipe_hl_coef", (getter)SolarField_get_Pipe_hl_coef,(setter)SolarField_set_Pipe_hl_coef, - PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the header, runner pipe, and non-HCE piping [m/s]\n\n**Required:**\nTrue"), NULL}, {"Rho_mirror_clean", (getter)SolarField_get_Rho_mirror_clean,(setter)SolarField_set_Rho_mirror_clean, - PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined clean mirror reflectivity [none]\n\n**Required:**\nTrue"), NULL}, {"Rough", (getter)SolarField_get_Rough,(setter)SolarField_set_Rough, - PyDoc_STR("*sequence[sequence]*: Roughness of the internal surface [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Roughness of the internal surface [m]\n\n**Required:**\nTrue"), NULL}, {"Row_Distance", (getter)SolarField_get_Row_Distance,(setter)SolarField_set_Row_Distance, - PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Spacing between rows (centerline to centerline) [m]\n\n**Required:**\nTrue"), NULL}, {"SCA_drives_elec", (getter)SolarField_get_SCA_drives_elec,(setter)SolarField_set_SCA_drives_elec, - PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Tracking power, in Watts per SCA drive [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {"Shadowing", (getter)SolarField_get_Shadowing,(setter)SolarField_set_Shadowing, - PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Receiver bellows shadowing loss factor [none]\n\n**Required:**\nTrue"), NULL}, {"T_fp", (getter)SolarField_get_T_fp,(setter)SolarField_set_T_fp, - PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Freeze protection temperature (heat trace activation temperature) [none]\n\n**Required:**\nTrue"), NULL}, {"T_loop_in_des", (getter)SolarField_get_T_loop_in_des,(setter)SolarField_set_T_loop_in_des, - PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Design loop inlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"T_loop_out", (getter)SolarField_get_T_loop_out,(setter)SolarField_set_T_loop_out, - PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Target loop outlet temperature [C]\n\n**Required:**\nTrue"), NULL}, {"Tau_envelope", (getter)SolarField_get_Tau_envelope,(setter)SolarField_set_Tau_envelope, - PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope transmittance [none]\n\n**Required:**\nTrue"), NULL}, {"TrackingError", (getter)SolarField_get_TrackingError,(setter)SolarField_set_TrackingError, - PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n*Required*: True"), + PyDoc_STR("*sequence*: User-defined tracking error derate [none]\n\n**Required:**\nTrue"), NULL}, {"Type_cpnt", (getter)SolarField_get_Type_cpnt,(setter)SolarField_set_Type_cpnt, - PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Interconnect component type, row=intc, col=cpnt [none]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_max", (getter)SolarField_get_V_hdr_cold_max,(setter)SolarField_set_V_hdr_cold_max, - PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_cold_min", (getter)SolarField_get_V_hdr_cold_min,(setter)SolarField_set_V_hdr_cold_min, - PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the cold headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_max", (getter)SolarField_get_V_hdr_hot_max,(setter)SolarField_set_V_hdr_hot_max, - PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"V_hdr_hot_min", (getter)SolarField_get_V_hdr_hot_min,(setter)SolarField_set_V_hdr_hot_min, - PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum HTF velocity in the hot headers at design [m/s]\n\n**Required:**\nTrue"), NULL}, {"W_aperture", (getter)SolarField_get_W_aperture,(setter)SolarField_set_W_aperture, - PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n*Required*: True"), + PyDoc_STR("*sequence*: The collector aperture width (Total structural area used for shadowing) [m]\n\n**Required:**\nTrue"), NULL}, {"accept_init", (getter)SolarField_get_accept_init,(setter)SolarField_set_accept_init, - PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - require steady-state startup [none]\n\n**Required:**\nTrue"), NULL}, {"accept_loc", (getter)SolarField_get_accept_loc,(setter)SolarField_set_accept_loc, - PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n*Info*: hx/loop\n\n*Required*: True"), + PyDoc_STR("*float*: In acceptance testing mode - temperature sensor location [1/2]\n\n**Info:**\nhx/loop\n\n**Required:**\nTrue"), NULL}, {"accept_mode", (getter)SolarField_get_accept_mode,(setter)SolarField_set_accept_mode, - PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n*Info*: no/yes\n\n*Required*: True"), + PyDoc_STR("*float*: Acceptance testing mode? [0/1]\n\n**Info:**\nno/yes\n\n**Required:**\nTrue"), NULL}, {"alpha_abs", (getter)SolarField_get_alpha_abs,(setter)SolarField_set_alpha_abs, - PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"alpha_env", (getter)SolarField_get_alpha_env,(setter)SolarField_set_alpha_env, - PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Envelope absorptance [none]\n\n**Required:**\nTrue"), NULL}, {"calc_design_pipe_vals", (getter)SolarField_get_calc_design_pipe_vals,(setter)SolarField_set_calc_design_pipe_vals, - PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Calculate temps and pressures at design conditions for runners and headers [none]\n\n**Required:**\nTrue"), NULL}, {"custom_sf_pipe_sizes", (getter)SolarField_get_custom_sf_pipe_sizes,(setter)SolarField_set_custom_sf_pipe_sizes, - PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Use custom solar field pipe diams, wallthks, and lengths [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_11", (getter)SolarField_get_epsilon_3_11,(setter)SolarField_set_epsilon_3_11, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_12", (getter)SolarField_get_epsilon_3_12,(setter)SolarField_set_epsilon_3_12, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_13", (getter)SolarField_get_epsilon_3_13,(setter)SolarField_set_epsilon_3_13, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_14", (getter)SolarField_get_epsilon_3_14,(setter)SolarField_set_epsilon_3_14, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 1 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_21", (getter)SolarField_get_epsilon_3_21,(setter)SolarField_set_epsilon_3_21, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_22", (getter)SolarField_get_epsilon_3_22,(setter)SolarField_set_epsilon_3_22, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_23", (getter)SolarField_get_epsilon_3_23,(setter)SolarField_set_epsilon_3_23, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_24", (getter)SolarField_get_epsilon_3_24,(setter)SolarField_set_epsilon_3_24, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 2 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_31", (getter)SolarField_get_epsilon_3_31,(setter)SolarField_set_epsilon_3_31, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_32", (getter)SolarField_get_epsilon_3_32,(setter)SolarField_set_epsilon_3_32, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_33", (getter)SolarField_get_epsilon_3_33,(setter)SolarField_set_epsilon_3_33, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_34", (getter)SolarField_get_epsilon_3_34,(setter)SolarField_set_epsilon_3_34, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 3 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_41", (getter)SolarField_get_epsilon_3_41,(setter)SolarField_set_epsilon_3_41, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 1 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_42", (getter)SolarField_get_epsilon_3_42,(setter)SolarField_set_epsilon_3_42, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 2 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_43", (getter)SolarField_get_epsilon_3_43,(setter)SolarField_set_epsilon_3_43, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 3 [none]\n\n**Required:**\nTrue"), NULL}, {"epsilon_3_44", (getter)SolarField_get_epsilon_3_44,(setter)SolarField_set_epsilon_3_44, - PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Absorber emittance for receiver type 4 variation 4 [none]\n\n**Required:**\nTrue"), NULL}, {"eta_pump", (getter)SolarField_get_eta_pump,(setter)SolarField_set_eta_pump, - PyDoc_STR("*float*: HTF pump efficiency [none]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF pump efficiency [none]\n\n**Required:**\nTrue"), NULL}, {"is_model_heat_sink_piping", (getter)SolarField_get_is_model_heat_sink_piping,(setter)SolarField_set_is_model_heat_sink_piping, - PyDoc_STR("*float*: Should model consider piping through heat sink? [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Should model consider piping through heat sink? [none]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmax", (getter)SolarField_get_m_dot_htfmax,(setter)SolarField_set_m_dot_htfmax, - PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Maximum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"m_dot_htfmin", (getter)SolarField_get_m_dot_htfmin,(setter)SolarField_set_m_dot_htfmin, - PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum loop HTF flow rate [kg/s]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_cold", (getter)SolarField_get_mc_bal_cold,(setter)SolarField_set_mc_bal_cold, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the cold side [kWht/K-MWt]\n\n**Required:**\nTrue"), NULL}, {"mc_bal_hot", (getter)SolarField_get_mc_bal_hot,(setter)SolarField_set_mc_bal_hot, - PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n*Info*: none\n\n*Required*: True"), + PyDoc_STR("*float*: Heat capacity of the balance of plant on the hot side [kWht/K-MWt]\n\n**Info:**\nnone\n\n**Required:**\nTrue"), NULL}, {"mc_bal_sca", (getter)SolarField_get_mc_bal_sca,(setter)SolarField_set_mc_bal_sca, - PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n*Required*: True"), + PyDoc_STR("*float*: Non-HTF heat capacity associated with each SCA - per meter basis [Wht/K-m]\n\n**Required:**\nTrue"), NULL}, {"nColt", (getter)SolarField_get_nColt,(setter)SolarField_set_nColt, - PyDoc_STR("*float*: Number of collector types [none]\n\n*Options*: constant=4\n\n*Required*: True"), + PyDoc_STR("*float*: Number of collector types [none]\n\n**Options:**\nconstant=4\n\n**Required:**\nTrue"), NULL}, {"nHCEVar", (getter)SolarField_get_nHCEVar,(setter)SolarField_set_nHCEVar, - PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE variants per type [none]\n\n**Required:**\nTrue"), NULL}, {"nHCEt", (getter)SolarField_get_nHCEt,(setter)SolarField_set_nHCEt, - PyDoc_STR("*float*: Number of HCE types [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of HCE types [none]\n\n**Required:**\nTrue"), NULL}, {"nLoops", (getter)SolarField_get_nLoops,(setter)SolarField_set_nLoops, - PyDoc_STR("*float*: Number of loops in the field [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of loops in the field [none]\n\n**Required:**\nTrue"), NULL}, {"nSCA", (getter)SolarField_get_nSCA,(setter)SolarField_set_nSCA, - PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Number of SCAs in a loop [none]\n\n**Required:**\nTrue"), NULL}, {"northsouth_field_sep", (getter)SolarField_get_northsouth_field_sep,(setter)SolarField_set_northsouth_field_sep, - PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n*Required*: True"), + PyDoc_STR("*float*: North/south separation between subfields. 0 = SCAs are touching [m]\n\n**Required:**\nTrue"), NULL}, {"offset_xpan_hdr", (getter)SolarField_get_offset_xpan_hdr,(setter)SolarField_set_offset_xpan_hdr, - PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n*Required*: True"), + PyDoc_STR("*float*: Location of first header expansion loop. 1 = after first collector loop [none]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_diams", (getter)SolarField_get_sf_hdr_diams,(setter)SolarField_set_sf_hdr_diams, - PyDoc_STR("*sequence[sequence]*: Custom header diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_lengths", (getter)SolarField_get_sf_hdr_lengths,(setter)SolarField_set_sf_hdr_lengths, - PyDoc_STR("*sequence[sequence]*: Custom header lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_hdr_wallthicks", (getter)SolarField_get_sf_hdr_wallthicks,(setter)SolarField_set_sf_hdr_wallthicks, - PyDoc_STR("*sequence[sequence]*: Custom header wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom header wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_diams", (getter)SolarField_get_sf_rnr_diams,(setter)SolarField_set_sf_rnr_diams, - PyDoc_STR("*sequence[sequence]*: Custom runner diameters [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner diameters [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_lengths", (getter)SolarField_get_sf_rnr_lengths,(setter)SolarField_set_sf_rnr_lengths, - PyDoc_STR("*sequence[sequence]*: Custom runner lengths [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner lengths [m]\n\n**Required:**\nTrue"), NULL}, {"sf_rnr_wallthicks", (getter)SolarField_get_sf_rnr_wallthicks,(setter)SolarField_set_sf_rnr_wallthicks, - PyDoc_STR("*sequence[sequence]*: Custom runner wall thicknesses [m]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Custom runner wall thicknesses [m]\n\n**Required:**\nTrue"), NULL}, {"theta_dep", (getter)SolarField_get_theta_dep,(setter)SolarField_set_theta_dep, - PyDoc_STR("*float*: Deploy angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Deploy angle [deg]\n\n**Required:**\nTrue"), NULL}, {"theta_stow", (getter)SolarField_get_theta_stow,(setter)SolarField_set_theta_stow, - PyDoc_STR("*float*: Stow angle [deg]\n\n*Required*: True"), + PyDoc_STR("*float*: Stow angle [deg]\n\n**Required:**\nTrue"), NULL}, {"washing_frequency", (getter)SolarField_get_washing_frequency,(setter)SolarField_set_washing_frequency, - PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n*Required*: True"), + PyDoc_STR("*float*: Mirror washing frequency [-/year]\n\n**Required:**\nTrue"), NULL}, {"water_usage_per_wash", (getter)SolarField_get_water_usage_per_wash,(setter)SolarField_set_water_usage_per_wash, - PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n*Required*: True"), + PyDoc_STR("*float*: Water usage per wash [L/m2_aper]\n\n**Required:**\nTrue"), NULL}, {"wind_stow_speed", (getter)SolarField_get_wind_stow_speed,(setter)SolarField_set_wind_stow_speed, - PyDoc_STR("*float*: Trough wind stow speed [m/s]\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Trough wind stow speed [m/s]\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1948,11 +1948,11 @@ Controller_export(VarGroupObject *self, PyObject *args) static PyMethodDef Controller_methods[] = { {"assign", (PyCFunction)Controller_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Controller_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Controller_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Controller_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Controller_vals = { var: val, ...}``")}, {"export", (PyCFunction)Controller_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2054,28 +2054,28 @@ Controller_set_trough_loop_control(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Controller_getset[] = { {"disp_wlim_maxspec", (getter)Controller_get_disp_wlim_maxspec,(setter)Controller_set_disp_wlim_maxspec, - PyDoc_STR("*float*: disp_wlim_maxspec [-]\n\n*Required*: True"), + PyDoc_STR("*float*: disp_wlim_maxspec [-]\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Controller_get_field_fl_props,(setter)Controller_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data [-]\n\n**Required:**\nTrue"), NULL}, {"non_solar_field_land_area_multiplier", (getter)Controller_get_non_solar_field_land_area_multiplier,(setter)Controller_set_non_solar_field_land_area_multiplier, - PyDoc_STR("*float*: non_solar_field_land_area_multiplier [-]\n\n*Required*: True"), + PyDoc_STR("*float*: non_solar_field_land_area_multiplier [-]\n\n**Required:**\nTrue"), NULL}, {"pb_pump_coef", (getter)Controller_get_pb_pump_coef,(setter)Controller_set_pb_pump_coef, - PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n*Required*: True"), + PyDoc_STR("*float*: Pumping power to move 1kg of HTF through PB loop [kW/kg]\n\n**Required:**\nTrue"), NULL}, {"q_pb_design", (getter)Controller_get_q_pb_design,(setter)Controller_set_q_pb_design, - PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n*Required*: True"), + PyDoc_STR("*float*: Design heat input to power block [MWt]\n\n**Required:**\nTrue"), NULL}, {"specified_solar_multiple", (getter)Controller_get_specified_solar_multiple,(setter)Controller_set_specified_solar_multiple, - PyDoc_STR("*float*: specified_solar_multiple [-]\n\n*Required*: True"), + PyDoc_STR("*float*: specified_solar_multiple [-]\n\n**Required:**\nTrue"), NULL}, {"tanks_in_parallel", (getter)Controller_get_tanks_in_parallel,(setter)Controller_set_tanks_in_parallel, - PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n*Required*: True"), + PyDoc_STR("*float*: Tanks are in parallel, not in series, with solar field [-]\n\n**Required:**\nTrue"), NULL}, {"trough_loop_control", (getter)Controller_get_trough_loop_control,(setter)Controller_set_trough_loop_control, - PyDoc_STR("*sequence*: trough_loop_control [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: trough_loop_control [-]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2190,11 +2190,11 @@ SystemDesign_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemDesign_methods[] = { {"assign", (PyCFunction)SystemDesign_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemDesign_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemDesign_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemDesign_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemDesign_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2212,7 +2212,7 @@ SystemDesign_set_tshours(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemDesign_getset[] = { {"tshours", (getter)SystemDesign_get_tshours,(setter)SystemDesign_set_tshours, - PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Equivalent full-load thermal storage hours [hr]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2327,11 +2327,11 @@ TES_export(VarGroupObject *self, PyObject *args) static PyMethodDef TES_methods[] = { {"assign", (PyCFunction)TES_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TES_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TES_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TES_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TES_vals = { var: val, ...}``")}, {"export", (PyCFunction)TES_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2409,22 +2409,22 @@ TES_set_u_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TES_getset[] = { {"cold_tank_Thtr", (getter)TES_get_cold_tank_Thtr,(setter)TES_set_cold_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable cold tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"cold_tank_max_heat", (getter)TES_get_cold_tank_max_heat,(setter)TES_set_cold_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for cold tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)TES_get_h_tank,(setter)TES_set_h_tank, - PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (height of HTF when tank is full [m]\n\n**Required:**\nTrue"), NULL}, {"init_hot_htf_percent", (getter)TES_get_init_hot_htf_percent,(setter)TES_set_init_hot_htf_percent, - PyDoc_STR("*float*: Initial fraction of avail. vol that is hot [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Initial fraction of avail. vol that is hot [%]\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)TES_get_tank_pairs,(setter)TES_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs [-]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)TES_get_u_tank,(setter)TES_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2539,11 +2539,11 @@ TES2tank_export(VarGroupObject *self, PyObject *args) static PyMethodDef TES2tank_methods[] = { {"assign", (PyCFunction)TES2tank_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TES2tank_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TES2tank_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TES2tank_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TES2tank_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TES2tank_vals = { var: val, ...}``")}, {"export", (PyCFunction)TES2tank_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2585,13 +2585,13 @@ TES2tank_set_hot_tank_max_heat(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef TES2tank_getset[] = { {"h_tank_min", (getter)TES2tank_get_h_tank_min,(setter)TES2tank_set_h_tank_min, - PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_Thtr", (getter)TES2tank_get_hot_tank_Thtr,(setter)TES2tank_set_hot_tank_Thtr, - PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Minimum allowable hot tank HTF temp [C]\n\n**Required:**\nTrue"), NULL}, {"hot_tank_max_heat", (getter)TES2tank_get_hot_tank_max_heat,(setter)TES2tank_set_hot_tank_max_heat, - PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n*Required*: True"), + PyDoc_STR("*float*: Rated heater capacity for hot tank heating [MW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -2706,11 +2706,11 @@ Tou_export(VarGroupObject *self, PyObject *args) static PyMethodDef Tou_methods[] = { {"assign", (PyCFunction)Tou_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Tou_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Tou_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Tou_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Tou_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Tou_vals = { var: val, ...}``")}, {"export", (PyCFunction)Tou_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3232,133 +3232,133 @@ Tou_set_wlim_series(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Tou_getset[] = { {"ampl_data_dir", (getter)Tou_get_ampl_data_dir,(setter)Tou_set_ampl_data_dir, - PyDoc_STR("*str*: AMPL data file directory [-]\n\n*Required*: If not provided, assumed to be ''"), + PyDoc_STR("*str*: AMPL data file directory [-]\n\n**Required:**\nFalse. Automatically set to '' if not assigned explicitly or loaded from defaults."), NULL}, {"ampl_exec_call", (getter)Tou_get_ampl_exec_call,(setter)Tou_set_ampl_exec_call, - PyDoc_STR("*str*: System command to run AMPL code [-]\n\n*Required*: If not provided, assumed to be 'ampl sdk_solution.run'"), + PyDoc_STR("*str*: System command to run AMPL code [-]\n\n**Required:**\nFalse. Automatically set to 'ampl sdk_solution.run' if not assigned explicitly or loaded from defaults."), NULL}, {"disp_csu_cost", (getter)Tou_get_disp_csu_cost,(setter)Tou_set_disp_csu_cost, - PyDoc_STR("*float*: Heat sink startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Heat sink startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_frequency", (getter)Tou_get_disp_frequency,(setter)Tou_set_disp_frequency, - PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Frequency for dispatch optimization calculations [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_horizon", (getter)Tou_get_disp_horizon,(setter)Tou_set_disp_horizon, - PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Time horizon for dispatch optimization [hour]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_max_iter", (getter)Tou_get_disp_max_iter,(setter)Tou_set_disp_max_iter, - PyDoc_STR("*float*: Max. no. dispatch optimization iterations [-]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max. no. dispatch optimization iterations [-]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_mip_gap", (getter)Tou_get_disp_mip_gap,(setter)Tou_set_disp_mip_gap, - PyDoc_STR("*float*: Dispatch optimization solution tolerance [-]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch optimization solution tolerance [-]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_pen_delta_w", (getter)Tou_get_disp_pen_delta_w,(setter)Tou_set_disp_pen_delta_w, - PyDoc_STR("*float*: Dispatch heat production change penalty [$/kWt-change]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Dispatch heat production change penalty [$/kWt-change]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_reporting", (getter)Tou_get_disp_reporting,(setter)Tou_set_disp_reporting, - PyDoc_STR("*float*: Dispatch optimization reporting level [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization reporting level [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_rsu_cost", (getter)Tou_get_disp_rsu_cost,(setter)Tou_set_disp_rsu_cost, - PyDoc_STR("*float*: Receiver startup cost [$]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Receiver startup cost [$]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"disp_spec_bb", (getter)Tou_get_disp_spec_bb,(setter)Tou_set_disp_spec_bb, - PyDoc_STR("*float*: Dispatch optimization B&B heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization B&B heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_presolve", (getter)Tou_get_disp_spec_presolve,(setter)Tou_set_disp_spec_presolve, - PyDoc_STR("*float*: Dispatch optimization presolve heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization presolve heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_spec_scaling", (getter)Tou_get_disp_spec_scaling,(setter)Tou_set_disp_spec_scaling, - PyDoc_STR("*float*: Dispatch optimization scaling heuristic [-]\n\n*Required*: If not provided, assumed to be -1"), + PyDoc_STR("*float*: Dispatch optimization scaling heuristic [-]\n\n**Required:**\nFalse. Automatically set to -1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_steps_per_hour", (getter)Tou_get_disp_steps_per_hour,(setter)Tou_set_disp_steps_per_hour, - PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations [-]\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Time steps per hour for dispatch optimization calculations [-]\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_time_weighting", (getter)Tou_get_disp_time_weighting,(setter)Tou_set_disp_time_weighting, - PyDoc_STR("*float*: Dispatch optimization future time discounting factor [-]\n\n*Required*: If not provided, assumed to be 0.99"), + PyDoc_STR("*float*: Dispatch optimization future time discounting factor [-]\n\n**Required:**\nFalse. Automatically set to 0.99 if not assigned explicitly or loaded from defaults."), NULL}, {"disp_timeout", (getter)Tou_get_disp_timeout,(setter)Tou_set_disp_timeout, - PyDoc_STR("*float*: Max. dispatch optimization solve duration [s]\n\n*Required*: True if is_dispatch=1"), + PyDoc_STR("*float*: Max. dispatch optimization solve duration [s]\n\n**Required:**\nRequired if is_dispatch=1"), NULL}, {"dispatch_factor1", (getter)Tou_get_dispatch_factor1,(setter)Tou_set_dispatch_factor1, - PyDoc_STR("*float*: Dispatch payment factor 1\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 1\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor2", (getter)Tou_get_dispatch_factor2,(setter)Tou_set_dispatch_factor2, - PyDoc_STR("*float*: Dispatch payment factor 2\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 2\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor3", (getter)Tou_get_dispatch_factor3,(setter)Tou_set_dispatch_factor3, - PyDoc_STR("*float*: Dispatch payment factor 3\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 3\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor4", (getter)Tou_get_dispatch_factor4,(setter)Tou_set_dispatch_factor4, - PyDoc_STR("*float*: Dispatch payment factor 4\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 4\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor5", (getter)Tou_get_dispatch_factor5,(setter)Tou_set_dispatch_factor5, - PyDoc_STR("*float*: Dispatch payment factor 5\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 5\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor6", (getter)Tou_get_dispatch_factor6,(setter)Tou_set_dispatch_factor6, - PyDoc_STR("*float*: Dispatch payment factor 6\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 6\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor7", (getter)Tou_get_dispatch_factor7,(setter)Tou_set_dispatch_factor7, - PyDoc_STR("*float*: Dispatch payment factor 7\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 7\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor8", (getter)Tou_get_dispatch_factor8,(setter)Tou_set_dispatch_factor8, - PyDoc_STR("*float*: Dispatch payment factor 8\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 8\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factor9", (getter)Tou_get_dispatch_factor9,(setter)Tou_set_dispatch_factor9, - PyDoc_STR("*float*: Dispatch payment factor 9\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Dispatch payment factor 9\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_factors_ts", (getter)Tou_get_dispatch_factors_ts,(setter)Tou_set_dispatch_factors_ts, - PyDoc_STR("*sequence*: Dispatch payment factor array\n\n*Required*: True if ppa_multiplier_model=1"), + PyDoc_STR("*sequence*: Dispatch payment factor array\n\n**Required:**\nRequired if ppa_multiplier_model=1"), NULL}, {"dispatch_sched_weekday", (getter)Tou_get_dispatch_sched_weekday,(setter)Tou_set_dispatch_sched_weekday, - PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekday schedule\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekday schedule\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_sched_weekend", (getter)Tou_get_dispatch_sched_weekend,(setter)Tou_set_dispatch_sched_weekend, - PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekend schedule\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*sequence[sequence]*: 12x24 PPA pricing Weekend schedule\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"dispatch_series", (getter)Tou_get_dispatch_series,(setter)Tou_set_dispatch_series, PyDoc_STR("*sequence*: Time series dispatch factors"), NULL}, {"f_turb_tou_periods", (getter)Tou_get_f_turb_tou_periods,(setter)Tou_set_f_turb_tou_periods, - PyDoc_STR("*sequence*: Dispatch logic for heat sink load fraction [-]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Dispatch logic for heat sink load fraction [-]\n\n**Required:**\nTrue"), NULL}, {"is_ampl_engine", (getter)Tou_get_is_ampl_engine,(setter)Tou_set_is_ampl_engine, - PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Run dispatch optimization with external AMPL engine [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch", (getter)Tou_get_is_dispatch,(setter)Tou_set_is_dispatch, - PyDoc_STR("*float*: Allow dispatch optimization? [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Allow dispatch optimization? [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_dispatch_series", (getter)Tou_get_is_dispatch_series,(setter)Tou_set_is_dispatch_series, - PyDoc_STR("*float*: Use time-series dispatch factors\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Use time-series dispatch factors\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"is_tod_pc_target_also_pc_max", (getter)Tou_get_is_tod_pc_target_also_pc_max,(setter)Tou_set_is_tod_pc_target_also_pc_max, - PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Is the TOD target cycle heat input also the max cycle heat input?\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_wlim_series", (getter)Tou_get_is_wlim_series,(setter)Tou_set_is_wlim_series, - PyDoc_STR("*float*: Use time-series net heat generation limits\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use time-series net heat generation limits\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"is_write_ampl_dat", (getter)Tou_get_is_write_ampl_dat,(setter)Tou_set_is_write_ampl_dat, - PyDoc_STR("*float*: Write AMPL data files for dispatch run [-]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Write AMPL data files for dispatch run [-]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ppa_multiplier_model", (getter)Tou_get_ppa_multiplier_model,(setter)Tou_set_ppa_multiplier_model, - PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n*Options*: 0=diurnal,1=timestep\n\n*Constraints*: INTEGER,MIN=0\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: PPA multiplier model [0/1]\n\n**Options:**\n0=diurnal,1=timestep\n\n**Constraints:**\nINTEGER,MIN=0\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_rec_heattrace", (getter)Tou_get_q_rec_heattrace,(setter)Tou_set_q_rec_heattrace, - PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Receiver heat trace energy consumption during startup [kWe-hr]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"q_rec_standby", (getter)Tou_get_q_rec_standby,(setter)Tou_set_q_rec_standby, - PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n*Required*: If not provided, assumed to be 9e99"), + PyDoc_STR("*float*: Receiver standby energy consumption [kWt]\n\n**Required:**\nFalse. Automatically set to 9e99 if not assigned explicitly or loaded from defaults."), NULL}, {"timestep_load_fractions", (getter)Tou_get_timestep_load_fractions,(setter)Tou_set_timestep_load_fractions, - PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n*Required*: False"), + PyDoc_STR("*sequence*: Turbine load fraction for each timestep, alternative to block dispatch\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"weekday_schedule", (getter)Tou_get_weekday_schedule,(setter)Tou_set_weekday_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekday schedule [-]\n\n**Required:**\nTrue"), NULL}, {"weekend_schedule", (getter)Tou_get_weekend_schedule,(setter)Tou_set_weekend_schedule, - PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule [-]\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: 12x24 CSP operation Time-of-Use Weekend schedule [-]\n\n**Required:**\nTrue"), NULL}, {"wlim_series", (getter)Tou_get_wlim_series,(setter)Tou_set_wlim_series, - PyDoc_STR("*sequence*: Time series net heat generation limits [kWt]\n\n*Required*: True if is_wlim_series=1"), + PyDoc_STR("*sequence*: Time series net heat generation limits [kWt]\n\n**Required:**\nRequired if is_wlim_series=1"), NULL}, {NULL} /* Sentinel */ }; @@ -3473,11 +3473,11 @@ SystemControl_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemControl_methods[] = { {"assign", (PyCFunction)SystemControl_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemControl_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemControl_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemControl_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemControl_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemControl_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3495,7 +3495,7 @@ SystemControl_set_disp_inventory_incentive(VarGroupObject *self, PyObject *value static PyGetSetDef SystemControl_getset[] = { {"disp_inventory_incentive", (getter)SystemControl_get_disp_inventory_incentive,(setter)SystemControl_set_disp_inventory_incentive, - PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Dispatch storage terminal inventory incentive multiplier\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3610,11 +3610,11 @@ System_export(VarGroupObject *self, PyObject *args) static PyMethodDef System_methods[] = { {"assign", (PyCFunction)System_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``System_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``System_vals = { var: val, ...}``")}, {"replace", (PyCFunction)System_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``System_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``System_vals = { var: val, ...}``")}, {"export", (PyCFunction)System_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3656,13 +3656,13 @@ System_set_pb_fixed_par(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef System_getset[] = { {"aux_array", (getter)System_get_aux_array,(setter)System_set_aux_array, - PyDoc_STR("*sequence*: Auxiliary heater, mult frac and const, linear and quad coeff\n\n*Required*: True"), + PyDoc_STR("*sequence*: Auxiliary heater, mult frac and const, linear and quad coeff\n\n**Required:**\nTrue"), NULL}, {"bop_array", (getter)System_get_bop_array,(setter)System_set_bop_array, - PyDoc_STR("*sequence*: Balance of plant parasitic power fraction, mult frac and const, linear and quad coeff\n\n*Required*: True"), + PyDoc_STR("*sequence*: Balance of plant parasitic power fraction, mult frac and const, linear and quad coeff\n\n**Required:**\nTrue"), NULL}, {"pb_fixed_par", (getter)System_get_pb_fixed_par,(setter)System_set_pb_fixed_par, - PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [MWe/MWcap]\n\n*Required*: True"), + PyDoc_STR("*float*: Fraction of rated gross power constantly consumed [MWe/MWcap]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3777,11 +3777,11 @@ Powerblock_export(VarGroupObject *self, PyObject *args) static PyMethodDef Powerblock_methods[] = { {"assign", (PyCFunction)Powerblock_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Powerblock_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Powerblock_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Powerblock_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Powerblock_vals = { var: val, ...}``")}, {"export", (PyCFunction)Powerblock_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3799,7 +3799,7 @@ Powerblock_set_L_rnr_pb(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Powerblock_getset[] = { {"L_rnr_pb", (getter)Powerblock_get_L_rnr_pb,(setter)Powerblock_set_L_rnr_pb, - PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Length of runner pipe in power block [m]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -3914,11 +3914,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4974,12 +4974,11 @@ static PyMethodDef TroughPhysicalProcessHeatModule_methods[] = { {"new", TroughPhysicalProcessHeat_new, METH_VARARGS, PyDoc_STR("new() -> TroughPhysicalProcessHeat")}, {"default", TroughPhysicalProcessHeat_default, METH_VARARGS, - PyDoc_STR("default(config) -> TroughPhysicalProcessHeat\n\nUse default attributes\n" - "`config` options:\n\n- \"PhysicalTroughIPHLCOHCalculator\"\n- \"PhysicalTroughIPHNone\"")}, + PyDoc_STR("default(config) -> TroughPhysicalProcessHeat\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"PhysicalTroughIPHLCOHCalculator\"*\n\n - *\"PhysicalTroughIPHNone\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", TroughPhysicalProcessHeat_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> TroughPhysicalProcessHeat\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> TroughPhysicalProcessHeat\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", TroughPhysicalProcessHeat_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> TroughPhysicalProcessHeat\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> TroughPhysicalProcessHeat\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/UiTesCalcs.c b/modules/UiTesCalcs.c index 51bf80be..519bb880 100644 --- a/modules/UiTesCalcs.c +++ b/modules/UiTesCalcs.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -247,46 +247,46 @@ Common_set_u_tank(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"P_ref", (getter)Common_get_P_ref,(setter)Common_set_P_ref, - PyDoc_STR("*float*: Power cycle output at design [MWe]\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle output at design [MWe]\n\n**Required:**\nTrue"), NULL}, {"T_htf_cold_des", (getter)Common_get_T_htf_cold_des,(setter)Common_set_T_htf_cold_des, - PyDoc_STR("*float*: Cold design HTF temp into field [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Cold design HTF temp into field [C]\n\n**Required:**\nTrue"), NULL}, {"T_htf_hot_des", (getter)Common_get_T_htf_hot_des,(setter)Common_set_T_htf_hot_des, - PyDoc_STR("*float*: Hot design HTF temp from field [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Hot design HTF temp from field [C]\n\n**Required:**\nTrue"), NULL}, {"design_eff", (getter)Common_get_design_eff,(setter)Common_set_design_eff, - PyDoc_STR("*float*: Power cycle thermal efficiency\n\n*Required*: True"), + PyDoc_STR("*float*: Power cycle thermal efficiency\n\n**Required:**\nTrue"), NULL}, {"dt_hot", (getter)Common_get_dt_hot,(setter)Common_set_dt_hot, - PyDoc_STR("*float*: Heat exchanger approach temperature\n\n*Required*: True"), + PyDoc_STR("*float*: Heat exchanger approach temperature\n\n**Required:**\nTrue"), NULL}, {"field_fl_props", (getter)Common_get_field_fl_props,(setter)Common_set_field_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined field fluid prop data\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid prop data\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nTrue"), NULL}, {"field_fluid", (getter)Common_get_field_fluid,(setter)Common_set_field_fluid, - PyDoc_STR("*float*: Field fluid code\n\n*Required*: True"), + PyDoc_STR("*float*: Field fluid code\n\n**Required:**\nTrue"), NULL}, {"h_tank", (getter)Common_get_h_tank,(setter)Common_set_h_tank, - PyDoc_STR("*float*: Total height of tank (HTF when tank is full [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Total height of tank (HTF when tank is full [m]\n\n**Required:**\nTrue"), NULL}, {"h_tank_min", (getter)Common_get_h_tank_min,(setter)Common_set_h_tank_min, - PyDoc_STR("*float*: Min. allowable HTF height in storage tank [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Min. allowable HTF height in storage tank [m]\n\n**Required:**\nTrue"), NULL}, {"store_fl_props", (getter)Common_get_store_fl_props,(setter)Common_set_store_fl_props, - PyDoc_STR("*sequence[sequence]*: User defined tes storage fluid prop data\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined tes storage fluid prop data\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nTrue"), NULL}, {"store_fluid", (getter)Common_get_store_fluid,(setter)Common_set_store_fluid, - PyDoc_STR("*float*: TES storage fluid code\n\n*Required*: True"), + PyDoc_STR("*float*: TES storage fluid code\n\n**Required:**\nTrue"), NULL}, {"tank_pairs", (getter)Common_get_tank_pairs,(setter)Common_set_tank_pairs, - PyDoc_STR("*float*: Number of equivalent tank pairs\n\n*Required*: True"), + PyDoc_STR("*float*: Number of equivalent tank pairs\n\n**Required:**\nTrue"), NULL}, {"tshours", (getter)Common_get_tshours,(setter)Common_set_tshours, - PyDoc_STR("*float*: Hours of TES relative to q_dot_pb_des [hr]\n\n*Required*: True"), + PyDoc_STR("*float*: Hours of TES relative to q_dot_pb_des [hr]\n\n**Required:**\nTrue"), NULL}, {"u_tank", (getter)Common_get_u_tank,(setter)Common_set_u_tank, - PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n*Required*: True"), + PyDoc_STR("*float*: Loss coefficient from the tank [W/m2-K]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -401,11 +401,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -798,12 +798,11 @@ static PyMethodDef UiTesCalcsModule_methods[] = { {"new", UiTesCalcs_new, METH_VARARGS, PyDoc_STR("new() -> UiTesCalcs")}, {"default", UiTesCalcs_default, METH_VARARGS, - PyDoc_STR("default(config) -> UiTesCalcs\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> UiTesCalcs\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", UiTesCalcs_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> UiTesCalcs\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> UiTesCalcs\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", UiTesCalcs_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> UiTesCalcs\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> UiTesCalcs\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/UiUdpcChecks.c b/modules/UiUdpcChecks.c index 175d0581..cf6e8603 100644 --- a/modules/UiUdpcChecks.c +++ b/modules/UiUdpcChecks.c @@ -69,11 +69,11 @@ UserDefinedPowerCycle_export(VarGroupObject *self, PyObject *args) static PyMethodDef UserDefinedPowerCycle_methods[] = { {"assign", (PyCFunction)UserDefinedPowerCycle_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"replace", (PyCFunction)UserDefinedPowerCycle_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``UserDefinedPowerCycle_vals = { var: val, ...}``")}, {"export", (PyCFunction)UserDefinedPowerCycle_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ UserDefinedPowerCycle_set_ud_ind_od(VarGroupObject *self, PyObject *value, void static PyGetSetDef UserDefinedPowerCycle_getset[] = { {"ud_ind_od", (getter)UserDefinedPowerCycle_get_ud_ind_od,(setter)UserDefinedPowerCycle_set_ud_ind_od, - PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n*Required*: If not provided, assumed to be [[0]]"), + PyDoc_STR("*sequence[sequence]*: Off design user-defined power cycle performance as function of T_htf, m_dot_htf [ND], and T_amb\n\n**Required:**\nFalse. Automatically set to [[0]] if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -206,11 +206,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -228,7 +228,7 @@ Common_set_T_htf_des_in(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"T_htf_des_in", (getter)Common_get_T_htf_des_in,(setter)Common_set_T_htf_des_in, - PyDoc_STR("*float*: Input HTF design temperature [C]\n\n*Required*: True"), + PyDoc_STR("*float*: Input HTF design temperature [C]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -343,11 +343,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -825,12 +825,11 @@ static PyMethodDef UiUdpcChecksModule_methods[] = { {"new", UiUdpcChecks_new, METH_VARARGS, PyDoc_STR("new() -> UiUdpcChecks")}, {"default", UiUdpcChecks_default, METH_VARARGS, - PyDoc_STR("default(config) -> UiUdpcChecks\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> UiUdpcChecks\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", UiUdpcChecks_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> UiUdpcChecks\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> UiUdpcChecks\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", UiUdpcChecks_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> UiUdpcChecks\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> UiUdpcChecks\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/UserHtfComparison.c b/modules/UserHtfComparison.c index 4ed0cb4f..ffefa8b1 100644 --- a/modules/UserHtfComparison.c +++ b/modules/UserHtfComparison.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ Common_set_fl_props2(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"HTF_code1", (getter)Common_get_HTF_code1,(setter)Common_set_HTF_code1, - PyDoc_STR("*float*: HTF fluid code: Fluid 1 [-]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF fluid code: Fluid 1 [-]\n\n**Required:**\nTrue"), NULL}, {"HTF_code2", (getter)Common_get_HTF_code2,(setter)Common_set_HTF_code2, - PyDoc_STR("*float*: HTF fluid code: Fluid 2 [-]\n\n*Required*: True"), + PyDoc_STR("*float*: HTF fluid code: Fluid 2 [-]\n\n**Required:**\nTrue"), NULL}, {"fl_props1", (getter)Common_get_fl_props1,(setter)Common_set_fl_props1, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data, Fluid 1 [-]\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data, Fluid 1 [-]\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nTrue"), NULL}, {"fl_props2", (getter)Common_get_fl_props2,(setter)Common_set_fl_props2, - PyDoc_STR("*sequence[sequence]*: User defined field fluid property data, Fluid 2 [-]\n\n*Info*: 7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: User defined field fluid property data, Fluid 2 [-]\n\n**Info:**\n7 columns (T,Cp,dens,visc,kvisc,cond,h), at least 3 rows\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -594,12 +594,11 @@ static PyMethodDef UserHtfComparisonModule_methods[] = { {"new", UserHtfComparison_new, METH_VARARGS, PyDoc_STR("new() -> UserHtfComparison")}, {"default", UserHtfComparison_default, METH_VARARGS, - PyDoc_STR("default(config) -> UserHtfComparison\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> UserHtfComparison\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", UserHtfComparison_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> UserHtfComparison\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> UserHtfComparison\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", UserHtfComparison_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> UserHtfComparison\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> UserHtfComparison\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Utilityrate.c b/modules/Utilityrate.c index cf55be6b..a332d2ce 100644 --- a/modules/Utilityrate.c +++ b/modules/Utilityrate.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1819,439 +1819,439 @@ Common_set_ur_tr_sell_rate(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"analysis_period", (getter)Common_get_analysis_period,(setter)Common_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"e_with_system", (getter)Common_get_e_with_system,(setter)Common_set_e_with_system, - PyDoc_STR("*sequence*: Energy at grid with system [kWh]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy at grid with system [kWh]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"e_without_system", (getter)Common_get_e_without_system,(setter)Common_set_e_without_system, - PyDoc_STR("*sequence*: Energy at grid without system (load only) [kWh]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Energy at grid without system (load only) [kWh]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"load_escalation", (getter)Common_get_load_escalation,(setter)Common_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"p_with_system", (getter)Common_get_p_with_system,(setter)Common_set_p_with_system, - PyDoc_STR("*sequence*: Max power at grid with system [kW]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Max power at grid with system [kW]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"p_without_system", (getter)Common_get_p_without_system,(setter)Common_set_p_without_system, - PyDoc_STR("*sequence*: Max power at grid without system (load only) [kW]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Max power at grid without system (load only) [kW]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"rate_escalation", (getter)Common_get_rate_escalation,(setter)Common_set_rate_escalation, - PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_availability", (getter)Common_get_system_availability,(setter)Common_set_system_availability, - PyDoc_STR("*sequence*: Annual availability of system [%/year]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*sequence*: Annual availability of system [%/year]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"system_degradation", (getter)Common_get_system_degradation,(setter)Common_set_system_degradation, - PyDoc_STR("*sequence*: Annual degradation of system [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual degradation of system [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_enable", (getter)Common_get_ur_dc_enable,(setter)Common_set_ur_dc_enable, - PyDoc_STR("*float*: Enable demand charges [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable demand charges [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m1", (getter)Common_get_ur_dc_fixed_m1,(setter)Common_set_ur_dc_fixed_m1, - PyDoc_STR("*float*: DC fixed rate January [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate January [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m10", (getter)Common_get_ur_dc_fixed_m10,(setter)Common_set_ur_dc_fixed_m10, - PyDoc_STR("*float*: DC fixed rate October [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate October [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m11", (getter)Common_get_ur_dc_fixed_m11,(setter)Common_set_ur_dc_fixed_m11, - PyDoc_STR("*float*: DC fixed rate November [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate November [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m12", (getter)Common_get_ur_dc_fixed_m12,(setter)Common_set_ur_dc_fixed_m12, - PyDoc_STR("*float*: DC fixed rate December [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate December [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m2", (getter)Common_get_ur_dc_fixed_m2,(setter)Common_set_ur_dc_fixed_m2, - PyDoc_STR("*float*: DC fixed rate February [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate February [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m3", (getter)Common_get_ur_dc_fixed_m3,(setter)Common_set_ur_dc_fixed_m3, - PyDoc_STR("*float*: DC fixed rate March [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate March [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m4", (getter)Common_get_ur_dc_fixed_m4,(setter)Common_set_ur_dc_fixed_m4, - PyDoc_STR("*float*: DC fixed rate April [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate April [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m5", (getter)Common_get_ur_dc_fixed_m5,(setter)Common_set_ur_dc_fixed_m5, - PyDoc_STR("*float*: DC fixed rate May [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate May [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m6", (getter)Common_get_ur_dc_fixed_m6,(setter)Common_set_ur_dc_fixed_m6, - PyDoc_STR("*float*: DC fixed rate June [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate June [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m7", (getter)Common_get_ur_dc_fixed_m7,(setter)Common_set_ur_dc_fixed_m7, - PyDoc_STR("*float*: DC fixed rate July [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate July [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m8", (getter)Common_get_ur_dc_fixed_m8,(setter)Common_set_ur_dc_fixed_m8, - PyDoc_STR("*float*: DC fixed rate August [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate August [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_fixed_m9", (getter)Common_get_ur_dc_fixed_m9,(setter)Common_set_ur_dc_fixed_m9, - PyDoc_STR("*float*: DC fixed rate September [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC fixed rate September [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1", (getter)Common_get_ur_dc_p1,(setter)Common_set_ur_dc_p1, - PyDoc_STR("*float*: DC TOU rate period 1 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 1 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2", (getter)Common_get_ur_dc_p2,(setter)Common_set_ur_dc_p2, - PyDoc_STR("*float*: DC TOU rate period 2 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 2 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3", (getter)Common_get_ur_dc_p3,(setter)Common_set_ur_dc_p3, - PyDoc_STR("*float*: DC TOU rate period 3 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 3 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4", (getter)Common_get_ur_dc_p4,(setter)Common_set_ur_dc_p4, - PyDoc_STR("*float*: DC TOU rate period 4 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 4 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5", (getter)Common_get_ur_dc_p5,(setter)Common_set_ur_dc_p5, - PyDoc_STR("*float*: DC TOU rate period 5 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 5 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6", (getter)Common_get_ur_dc_p6,(setter)Common_set_ur_dc_p6, - PyDoc_STR("*float*: DC TOU rate period 6 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 6 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7", (getter)Common_get_ur_dc_p7,(setter)Common_set_ur_dc_p7, - PyDoc_STR("*float*: DC TOU rate period 7 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 7 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8", (getter)Common_get_ur_dc_p8,(setter)Common_set_ur_dc_p8, - PyDoc_STR("*float*: DC TOU rate period 8 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 8 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9", (getter)Common_get_ur_dc_p9,(setter)Common_set_ur_dc_p9, - PyDoc_STR("*float*: DC TOU rate period 9 [$/kW,pk]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: DC TOU rate period 9 [$/kW,pk]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sched_weekday", (getter)Common_get_ur_dc_sched_weekday,(setter)Common_set_ur_dc_sched_weekday, - PyDoc_STR("*str*: DC TOU weekday schedule\n\n*Info*: 288 digits 0-9, 24x12\n\n*Constraints*: TOUSCHED\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*str*: DC TOU weekday schedule\n\n**Info:**\n288 digits 0-9, 24x12\n\n**Constraints:**\nTOUSCHED\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekend", (getter)Common_get_ur_dc_sched_weekend,(setter)Common_set_ur_dc_sched_weekend, - PyDoc_STR("*str*: DC TOU weekend schedule\n\n*Info*: 288 digits 0-9, 24x12\n\n*Constraints*: TOUSCHED\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*str*: DC TOU weekend schedule\n\n**Info:**\n288 digits 0-9, 24x12\n\n**Constraints:**\nTOUSCHED\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_flat_buy_rate", (getter)Common_get_ur_flat_buy_rate,(setter)Common_set_ur_flat_buy_rate, - PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ur_flat_sell_rate", (getter)Common_get_ur_flat_sell_rate,(setter)Common_set_ur_flat_sell_rate, - PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)Common_get_ur_monthly_fixed_charge,(setter)Common_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_sell_eq_buy", (getter)Common_get_ur_sell_eq_buy,(setter)Common_set_ur_sell_eq_buy, - PyDoc_STR("*float*: Force sell rate equal to buy [0/1]\n\n*Info*: Enforce net metering\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Force sell rate equal to buy [0/1]\n\n**Info:**\nEnforce net metering\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_enable", (getter)Common_get_ur_tou_enable,(setter)Common_set_ur_tou_enable, - PyDoc_STR("*float*: Enable time-of-use rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time-of-use rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p1_buy_rate", (getter)Common_get_ur_tou_p1_buy_rate,(setter)Common_set_ur_tou_p1_buy_rate, - PyDoc_STR("*float*: TOU period 1 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 1 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p1_sell_rate", (getter)Common_get_ur_tou_p1_sell_rate,(setter)Common_set_ur_tou_p1_sell_rate, - PyDoc_STR("*float*: TOU period 1 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 1 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p2_buy_rate", (getter)Common_get_ur_tou_p2_buy_rate,(setter)Common_set_ur_tou_p2_buy_rate, - PyDoc_STR("*float*: TOU period 2 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 2 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p2_sell_rate", (getter)Common_get_ur_tou_p2_sell_rate,(setter)Common_set_ur_tou_p2_sell_rate, - PyDoc_STR("*float*: TOU period 2 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 2 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p3_buy_rate", (getter)Common_get_ur_tou_p3_buy_rate,(setter)Common_set_ur_tou_p3_buy_rate, - PyDoc_STR("*float*: TOU period 3 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 3 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p3_sell_rate", (getter)Common_get_ur_tou_p3_sell_rate,(setter)Common_set_ur_tou_p3_sell_rate, - PyDoc_STR("*float*: TOU period 3 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 3 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p4_buy_rate", (getter)Common_get_ur_tou_p4_buy_rate,(setter)Common_set_ur_tou_p4_buy_rate, - PyDoc_STR("*float*: TOU period 4 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 4 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p4_sell_rate", (getter)Common_get_ur_tou_p4_sell_rate,(setter)Common_set_ur_tou_p4_sell_rate, - PyDoc_STR("*float*: TOU period 4 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 4 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p5_buy_rate", (getter)Common_get_ur_tou_p5_buy_rate,(setter)Common_set_ur_tou_p5_buy_rate, - PyDoc_STR("*float*: TOU period 5 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 5 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p5_sell_rate", (getter)Common_get_ur_tou_p5_sell_rate,(setter)Common_set_ur_tou_p5_sell_rate, - PyDoc_STR("*float*: TOU period 5 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 5 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p6_buy_rate", (getter)Common_get_ur_tou_p6_buy_rate,(setter)Common_set_ur_tou_p6_buy_rate, - PyDoc_STR("*float*: TOU period 6 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 6 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p6_sell_rate", (getter)Common_get_ur_tou_p6_sell_rate,(setter)Common_set_ur_tou_p6_sell_rate, - PyDoc_STR("*float*: TOU period 6 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 6 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p7_buy_rate", (getter)Common_get_ur_tou_p7_buy_rate,(setter)Common_set_ur_tou_p7_buy_rate, - PyDoc_STR("*float*: TOU period 7 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 7 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p7_sell_rate", (getter)Common_get_ur_tou_p7_sell_rate,(setter)Common_set_ur_tou_p7_sell_rate, - PyDoc_STR("*float*: TOU period 7 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 7 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p8_buy_rate", (getter)Common_get_ur_tou_p8_buy_rate,(setter)Common_set_ur_tou_p8_buy_rate, - PyDoc_STR("*float*: TOU period 8 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 8 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p8_sell_rate", (getter)Common_get_ur_tou_p8_sell_rate,(setter)Common_set_ur_tou_p8_sell_rate, - PyDoc_STR("*float*: TOU period 8 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 8 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p9_buy_rate", (getter)Common_get_ur_tou_p9_buy_rate,(setter)Common_set_ur_tou_p9_buy_rate, - PyDoc_STR("*float*: TOU period 9 rate (buy) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 9 rate (buy) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_p9_sell_rate", (getter)Common_get_ur_tou_p9_sell_rate,(setter)Common_set_ur_tou_p9_sell_rate, - PyDoc_STR("*float*: TOU period 9 rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: TOU period 9 rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tou_sched_weekday", (getter)Common_get_ur_tou_sched_weekday,(setter)Common_set_ur_tou_sched_weekday, - PyDoc_STR("*str*: TOU weekday schedule\n\n*Info*: 288 digits 0-9, 24x12\n\n*Constraints*: TOUSCHED\n\n*Required*: True if ur_tou_enable=1"), + PyDoc_STR("*str*: TOU weekday schedule\n\n**Info:**\n288 digits 0-9, 24x12\n\n**Constraints:**\nTOUSCHED\n\n**Required:**\nRequired if ur_tou_enable=1"), NULL}, {"ur_tou_sched_weekend", (getter)Common_get_ur_tou_sched_weekend,(setter)Common_set_ur_tou_sched_weekend, - PyDoc_STR("*str*: TOU weekend schedule\n\n*Info*: 288 digits 0-9, 24x12\n\n*Constraints*: TOUSCHED\n\n*Required*: True if ur_tou_enable=1"), + PyDoc_STR("*str*: TOU weekend schedule\n\n**Info:**\n288 digits 0-9, 24x12\n\n**Constraints:**\nTOUSCHED\n\n**Required:**\nRequired if ur_tou_enable=1"), NULL}, {"ur_tr_enable", (getter)Common_get_ur_tr_enable,(setter)Common_set_ur_tr_enable, - PyDoc_STR("*float*: Enable tiered rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable tiered rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub1", (getter)Common_get_ur_tr_s1_energy_ub1,(setter)Common_set_ur_tr_s1_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub2", (getter)Common_get_ur_tr_s1_energy_ub2,(setter)Common_set_ur_tr_s1_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub3", (getter)Common_get_ur_tr_s1_energy_ub3,(setter)Common_set_ur_tr_s1_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub4", (getter)Common_get_ur_tr_s1_energy_ub4,(setter)Common_set_ur_tr_s1_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub5", (getter)Common_get_ur_tr_s1_energy_ub5,(setter)Common_set_ur_tr_s1_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_energy_ub6", (getter)Common_get_ur_tr_s1_energy_ub6,(setter)Common_set_ur_tr_s1_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 1 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 1 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate1", (getter)Common_get_ur_tr_s1_rate1,(setter)Common_set_ur_tr_s1_rate1, - PyDoc_STR("*float*: Tiered struct. 1 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate2", (getter)Common_get_ur_tr_s1_rate2,(setter)Common_set_ur_tr_s1_rate2, - PyDoc_STR("*float*: Tiered struct. 1 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate3", (getter)Common_get_ur_tr_s1_rate3,(setter)Common_set_ur_tr_s1_rate3, - PyDoc_STR("*float*: Tiered struct. 1 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate4", (getter)Common_get_ur_tr_s1_rate4,(setter)Common_set_ur_tr_s1_rate4, - PyDoc_STR("*float*: Tiered struct. 1 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate5", (getter)Common_get_ur_tr_s1_rate5,(setter)Common_set_ur_tr_s1_rate5, - PyDoc_STR("*float*: Tiered struct. 1 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s1_rate6", (getter)Common_get_ur_tr_s1_rate6,(setter)Common_set_ur_tr_s1_rate6, - PyDoc_STR("*float*: Tiered struct. 1 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 1 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub1", (getter)Common_get_ur_tr_s2_energy_ub1,(setter)Common_set_ur_tr_s2_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub2", (getter)Common_get_ur_tr_s2_energy_ub2,(setter)Common_set_ur_tr_s2_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub3", (getter)Common_get_ur_tr_s2_energy_ub3,(setter)Common_set_ur_tr_s2_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub4", (getter)Common_get_ur_tr_s2_energy_ub4,(setter)Common_set_ur_tr_s2_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub5", (getter)Common_get_ur_tr_s2_energy_ub5,(setter)Common_set_ur_tr_s2_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_energy_ub6", (getter)Common_get_ur_tr_s2_energy_ub6,(setter)Common_set_ur_tr_s2_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 2 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 2 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate1", (getter)Common_get_ur_tr_s2_rate1,(setter)Common_set_ur_tr_s2_rate1, - PyDoc_STR("*float*: Tiered struct. 2 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate2", (getter)Common_get_ur_tr_s2_rate2,(setter)Common_set_ur_tr_s2_rate2, - PyDoc_STR("*float*: Tiered struct. 2 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate3", (getter)Common_get_ur_tr_s2_rate3,(setter)Common_set_ur_tr_s2_rate3, - PyDoc_STR("*float*: Tiered struct. 2 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate4", (getter)Common_get_ur_tr_s2_rate4,(setter)Common_set_ur_tr_s2_rate4, - PyDoc_STR("*float*: Tiered struct. 2 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate5", (getter)Common_get_ur_tr_s2_rate5,(setter)Common_set_ur_tr_s2_rate5, - PyDoc_STR("*float*: Tiered struct. 2 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s2_rate6", (getter)Common_get_ur_tr_s2_rate6,(setter)Common_set_ur_tr_s2_rate6, - PyDoc_STR("*float*: Tiered struct. 2 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 2 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub1", (getter)Common_get_ur_tr_s3_energy_ub1,(setter)Common_set_ur_tr_s3_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub2", (getter)Common_get_ur_tr_s3_energy_ub2,(setter)Common_set_ur_tr_s3_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub3", (getter)Common_get_ur_tr_s3_energy_ub3,(setter)Common_set_ur_tr_s3_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub4", (getter)Common_get_ur_tr_s3_energy_ub4,(setter)Common_set_ur_tr_s3_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub5", (getter)Common_get_ur_tr_s3_energy_ub5,(setter)Common_set_ur_tr_s3_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_energy_ub6", (getter)Common_get_ur_tr_s3_energy_ub6,(setter)Common_set_ur_tr_s3_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 3 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 3 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate1", (getter)Common_get_ur_tr_s3_rate1,(setter)Common_set_ur_tr_s3_rate1, - PyDoc_STR("*float*: Tiered struct. 3 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate2", (getter)Common_get_ur_tr_s3_rate2,(setter)Common_set_ur_tr_s3_rate2, - PyDoc_STR("*float*: Tiered struct. 3 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate3", (getter)Common_get_ur_tr_s3_rate3,(setter)Common_set_ur_tr_s3_rate3, - PyDoc_STR("*float*: Tiered struct. 3 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate4", (getter)Common_get_ur_tr_s3_rate4,(setter)Common_set_ur_tr_s3_rate4, - PyDoc_STR("*float*: Tiered struct. 3 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate5", (getter)Common_get_ur_tr_s3_rate5,(setter)Common_set_ur_tr_s3_rate5, - PyDoc_STR("*float*: Tiered struct. 3 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s3_rate6", (getter)Common_get_ur_tr_s3_rate6,(setter)Common_set_ur_tr_s3_rate6, - PyDoc_STR("*float*: Tiered struct. 3 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 3 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub1", (getter)Common_get_ur_tr_s4_energy_ub1,(setter)Common_set_ur_tr_s4_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub2", (getter)Common_get_ur_tr_s4_energy_ub2,(setter)Common_set_ur_tr_s4_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub3", (getter)Common_get_ur_tr_s4_energy_ub3,(setter)Common_set_ur_tr_s4_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub4", (getter)Common_get_ur_tr_s4_energy_ub4,(setter)Common_set_ur_tr_s4_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub5", (getter)Common_get_ur_tr_s4_energy_ub5,(setter)Common_set_ur_tr_s4_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_energy_ub6", (getter)Common_get_ur_tr_s4_energy_ub6,(setter)Common_set_ur_tr_s4_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 4 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 4 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate1", (getter)Common_get_ur_tr_s4_rate1,(setter)Common_set_ur_tr_s4_rate1, - PyDoc_STR("*float*: Tiered struct. 4 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate2", (getter)Common_get_ur_tr_s4_rate2,(setter)Common_set_ur_tr_s4_rate2, - PyDoc_STR("*float*: Tiered struct. 4 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate3", (getter)Common_get_ur_tr_s4_rate3,(setter)Common_set_ur_tr_s4_rate3, - PyDoc_STR("*float*: Tiered struct. 4 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate4", (getter)Common_get_ur_tr_s4_rate4,(setter)Common_set_ur_tr_s4_rate4, - PyDoc_STR("*float*: Tiered struct. 4 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate5", (getter)Common_get_ur_tr_s4_rate5,(setter)Common_set_ur_tr_s4_rate5, - PyDoc_STR("*float*: Tiered struct. 4 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s4_rate6", (getter)Common_get_ur_tr_s4_rate6,(setter)Common_set_ur_tr_s4_rate6, - PyDoc_STR("*float*: Tiered struct. 4 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 4 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub1", (getter)Common_get_ur_tr_s5_energy_ub1,(setter)Common_set_ur_tr_s5_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub2", (getter)Common_get_ur_tr_s5_energy_ub2,(setter)Common_set_ur_tr_s5_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub3", (getter)Common_get_ur_tr_s5_energy_ub3,(setter)Common_set_ur_tr_s5_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub4", (getter)Common_get_ur_tr_s5_energy_ub4,(setter)Common_set_ur_tr_s5_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub5", (getter)Common_get_ur_tr_s5_energy_ub5,(setter)Common_set_ur_tr_s5_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_energy_ub6", (getter)Common_get_ur_tr_s5_energy_ub6,(setter)Common_set_ur_tr_s5_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 5 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 5 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate1", (getter)Common_get_ur_tr_s5_rate1,(setter)Common_set_ur_tr_s5_rate1, - PyDoc_STR("*float*: Tiered struct. 5 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate2", (getter)Common_get_ur_tr_s5_rate2,(setter)Common_set_ur_tr_s5_rate2, - PyDoc_STR("*float*: Tiered struct. 5 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate3", (getter)Common_get_ur_tr_s5_rate3,(setter)Common_set_ur_tr_s5_rate3, - PyDoc_STR("*float*: Tiered struct. 5 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate4", (getter)Common_get_ur_tr_s5_rate4,(setter)Common_set_ur_tr_s5_rate4, - PyDoc_STR("*float*: Tiered struct. 5 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate5", (getter)Common_get_ur_tr_s5_rate5,(setter)Common_set_ur_tr_s5_rate5, - PyDoc_STR("*float*: Tiered struct. 5 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s5_rate6", (getter)Common_get_ur_tr_s5_rate6,(setter)Common_set_ur_tr_s5_rate6, - PyDoc_STR("*float*: Tiered struct. 5 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 5 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub1", (getter)Common_get_ur_tr_s6_energy_ub1,(setter)Common_set_ur_tr_s6_energy_ub1, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 1 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 1 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub2", (getter)Common_get_ur_tr_s6_energy_ub2,(setter)Common_set_ur_tr_s6_energy_ub2, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 2 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 2 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub3", (getter)Common_get_ur_tr_s6_energy_ub3,(setter)Common_set_ur_tr_s6_energy_ub3, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 3 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 3 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub4", (getter)Common_get_ur_tr_s6_energy_ub4,(setter)Common_set_ur_tr_s6_energy_ub4, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 4 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 4 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub5", (getter)Common_get_ur_tr_s6_energy_ub5,(setter)Common_set_ur_tr_s6_energy_ub5, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 5 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 5 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_energy_ub6", (getter)Common_get_ur_tr_s6_energy_ub6,(setter)Common_set_ur_tr_s6_energy_ub6, - PyDoc_STR("*float*: Tiered struct. 6 Energy UB 6 [kWh]\n\n*Required*: If not provided, assumed to be 1e99"), + PyDoc_STR("*float*: Tiered struct. 6 Energy UB 6 [kWh]\n\n**Required:**\nFalse. Automatically set to 1e99 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate1", (getter)Common_get_ur_tr_s6_rate1,(setter)Common_set_ur_tr_s6_rate1, - PyDoc_STR("*float*: Tiered struct. 6 Rate 1 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 1 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate2", (getter)Common_get_ur_tr_s6_rate2,(setter)Common_set_ur_tr_s6_rate2, - PyDoc_STR("*float*: Tiered struct. 6 Rate 2 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 2 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate3", (getter)Common_get_ur_tr_s6_rate3,(setter)Common_set_ur_tr_s6_rate3, - PyDoc_STR("*float*: Tiered struct. 6 Rate 3 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 3 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate4", (getter)Common_get_ur_tr_s6_rate4,(setter)Common_set_ur_tr_s6_rate4, - PyDoc_STR("*float*: Tiered struct. 6 Rate 4 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 4 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate5", (getter)Common_get_ur_tr_s6_rate5,(setter)Common_set_ur_tr_s6_rate5, - PyDoc_STR("*float*: Tiered struct. 6 Rate 5 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 5 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_s6_rate6", (getter)Common_get_ur_tr_s6_rate6,(setter)Common_set_ur_tr_s6_rate6, - PyDoc_STR("*float*: Tiered struct. 6 Rate 6 [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Tiered struct. 6 Rate 6 [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m1", (getter)Common_get_ur_tr_sched_m1,(setter)Common_set_ur_tr_sched_m1, - PyDoc_STR("*float*: Tiered structure for January [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for January [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m10", (getter)Common_get_ur_tr_sched_m10,(setter)Common_set_ur_tr_sched_m10, - PyDoc_STR("*float*: Tiered structure for October [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for October [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m11", (getter)Common_get_ur_tr_sched_m11,(setter)Common_set_ur_tr_sched_m11, - PyDoc_STR("*float*: Tiered structure for November [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for November [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m12", (getter)Common_get_ur_tr_sched_m12,(setter)Common_set_ur_tr_sched_m12, - PyDoc_STR("*float*: Tiered structure for December [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for December [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m2", (getter)Common_get_ur_tr_sched_m2,(setter)Common_set_ur_tr_sched_m2, - PyDoc_STR("*float*: Tiered structure for February [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for February [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m3", (getter)Common_get_ur_tr_sched_m3,(setter)Common_set_ur_tr_sched_m3, - PyDoc_STR("*float*: Tiered structure for March [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for March [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m4", (getter)Common_get_ur_tr_sched_m4,(setter)Common_set_ur_tr_sched_m4, - PyDoc_STR("*float*: Tiered structure for April [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for April [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m5", (getter)Common_get_ur_tr_sched_m5,(setter)Common_set_ur_tr_sched_m5, - PyDoc_STR("*float*: Tiered structure for May [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for May [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m6", (getter)Common_get_ur_tr_sched_m6,(setter)Common_set_ur_tr_sched_m6, - PyDoc_STR("*float*: Tiered structure for June [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for June [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m7", (getter)Common_get_ur_tr_sched_m7,(setter)Common_set_ur_tr_sched_m7, - PyDoc_STR("*float*: Tiered structure for July [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for July [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m8", (getter)Common_get_ur_tr_sched_m8,(setter)Common_set_ur_tr_sched_m8, - PyDoc_STR("*float*: Tiered structure for August [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for August [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sched_m9", (getter)Common_get_ur_tr_sched_m9,(setter)Common_set_ur_tr_sched_m9, - PyDoc_STR("*float*: Tiered structure for September [0-5]\n\n*Info*: tiered structure #\n\n*Constraints*: INTEGER,MIN=0,MAX=5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tiered structure for September [0-5]\n\n**Info:**\ntiered structure #\n\n**Constraints:**\nINTEGER,MIN=0,MAX=5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sell_mode", (getter)Common_get_ur_tr_sell_mode,(setter)Common_set_ur_tr_sell_mode, - PyDoc_STR("*float*: Tiered rate sell mode [0,1,2]\n\n*Options*: 0=specified,1=tier1,2=lowest\n\n*Constraints*: INTEGER,MIN=0,MAX=2\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Tiered rate sell mode [0,1,2]\n\n**Options:**\n0=specified,1=tier1,2=lowest\n\n**Constraints:**\nINTEGER,MIN=0,MAX=2\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_tr_sell_rate", (getter)Common_get_ur_tr_sell_rate,(setter)Common_set_ur_tr_sell_rate, - PyDoc_STR("*float*: Specified tiered sell rate [$/kW]\n\n*Required*: True if ur_tr_sell_mode=0"), + PyDoc_STR("*float*: Specified tiered sell rate [$/kW]\n\n**Required:**\nRequired if ur_tr_sell_mode=0"), NULL}, {NULL} /* Sentinel */ }; @@ -2366,11 +2366,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -3294,12 +3294,11 @@ static PyMethodDef UtilityrateModule_methods[] = { {"new", Utilityrate_new, METH_VARARGS, PyDoc_STR("new() -> Utilityrate")}, {"default", Utilityrate_default, METH_VARARGS, - PyDoc_STR("default(config) -> Utilityrate\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Utilityrate\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Utilityrate_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Utilityrate\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Utilityrate\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Utilityrate_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Utilityrate\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Utilityrate\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Utilityrate2.c b/modules/Utilityrate2.c index e74c961a..5cd62b28 100644 --- a/modules/Utilityrate2.c +++ b/modules/Utilityrate2.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6343,1570 +6343,1570 @@ Common_set_ur_nm_yearend_sell_rate(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Common_getset[] = { {"analysis_period", (getter)Common_get_analysis_period,(setter)Common_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"e_load", (getter)Common_get_e_load,(setter)Common_set_e_load, - PyDoc_STR("*sequence*: Energy at grid without system (load only) [kWh]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Energy at grid without system (load only) [kWh]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"hourly_gen", (getter)Common_get_hourly_gen,(setter)Common_set_hourly_gen, - PyDoc_STR("*sequence*: Energy at grid with system [kWh]\n\n*Constraints*: LENGTH=8760\n\n*Required*: True"), + PyDoc_STR("*sequence*: Energy at grid with system [kWh]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nTrue"), NULL}, {"load_escalation", (getter)Common_get_load_escalation,(setter)Common_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"p_load", (getter)Common_get_p_load,(setter)Common_set_p_load, - PyDoc_STR("*sequence*: Max power at grid without system (load only) [kW]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Max power at grid without system (load only) [kW]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"p_with_system", (getter)Common_get_p_with_system,(setter)Common_set_p_with_system, - PyDoc_STR("*sequence*: Max power at grid with system [kW]\n\n*Constraints*: LENGTH=8760\n\n*Required*: False"), + PyDoc_STR("*sequence*: Max power at grid with system [kW]\n\n**Constraints:**\nLENGTH=8760\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"rate_escalation", (getter)Common_get_rate_escalation,(setter)Common_set_rate_escalation, - PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t1_dc", (getter)Common_get_ur_dc_apr_t1_dc,(setter)Common_set_ur_dc_apr_t1_dc, - PyDoc_STR("*float*: April Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t1_ub", (getter)Common_get_ur_dc_apr_t1_ub,(setter)Common_set_ur_dc_apr_t1_ub, - PyDoc_STR("*float*: April Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t2_dc", (getter)Common_get_ur_dc_apr_t2_dc,(setter)Common_set_ur_dc_apr_t2_dc, - PyDoc_STR("*float*: April Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t2_ub", (getter)Common_get_ur_dc_apr_t2_ub,(setter)Common_set_ur_dc_apr_t2_ub, - PyDoc_STR("*float*: April Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t3_dc", (getter)Common_get_ur_dc_apr_t3_dc,(setter)Common_set_ur_dc_apr_t3_dc, - PyDoc_STR("*float*: April Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t3_ub", (getter)Common_get_ur_dc_apr_t3_ub,(setter)Common_set_ur_dc_apr_t3_ub, - PyDoc_STR("*float*: April Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t4_dc", (getter)Common_get_ur_dc_apr_t4_dc,(setter)Common_set_ur_dc_apr_t4_dc, - PyDoc_STR("*float*: April Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t4_ub", (getter)Common_get_ur_dc_apr_t4_ub,(setter)Common_set_ur_dc_apr_t4_ub, - PyDoc_STR("*float*: April Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t5_dc", (getter)Common_get_ur_dc_apr_t5_dc,(setter)Common_set_ur_dc_apr_t5_dc, - PyDoc_STR("*float*: April Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t5_ub", (getter)Common_get_ur_dc_apr_t5_ub,(setter)Common_set_ur_dc_apr_t5_ub, - PyDoc_STR("*float*: April Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t6_dc", (getter)Common_get_ur_dc_apr_t6_dc,(setter)Common_set_ur_dc_apr_t6_dc, - PyDoc_STR("*float*: April Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t6_ub", (getter)Common_get_ur_dc_apr_t6_ub,(setter)Common_set_ur_dc_apr_t6_ub, - PyDoc_STR("*float*: April Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t1_dc", (getter)Common_get_ur_dc_aug_t1_dc,(setter)Common_set_ur_dc_aug_t1_dc, - PyDoc_STR("*float*: August Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t1_ub", (getter)Common_get_ur_dc_aug_t1_ub,(setter)Common_set_ur_dc_aug_t1_ub, - PyDoc_STR("*float*: August Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t2_dc", (getter)Common_get_ur_dc_aug_t2_dc,(setter)Common_set_ur_dc_aug_t2_dc, - PyDoc_STR("*float*: August Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t2_ub", (getter)Common_get_ur_dc_aug_t2_ub,(setter)Common_set_ur_dc_aug_t2_ub, - PyDoc_STR("*float*: August Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t3_dc", (getter)Common_get_ur_dc_aug_t3_dc,(setter)Common_set_ur_dc_aug_t3_dc, - PyDoc_STR("*float*: August Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t3_ub", (getter)Common_get_ur_dc_aug_t3_ub,(setter)Common_set_ur_dc_aug_t3_ub, - PyDoc_STR("*float*: August Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t4_dc", (getter)Common_get_ur_dc_aug_t4_dc,(setter)Common_set_ur_dc_aug_t4_dc, - PyDoc_STR("*float*: August Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t4_ub", (getter)Common_get_ur_dc_aug_t4_ub,(setter)Common_set_ur_dc_aug_t4_ub, - PyDoc_STR("*float*: August Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t5_dc", (getter)Common_get_ur_dc_aug_t5_dc,(setter)Common_set_ur_dc_aug_t5_dc, - PyDoc_STR("*float*: August Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t5_ub", (getter)Common_get_ur_dc_aug_t5_ub,(setter)Common_set_ur_dc_aug_t5_ub, - PyDoc_STR("*float*: August Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t6_dc", (getter)Common_get_ur_dc_aug_t6_dc,(setter)Common_set_ur_dc_aug_t6_dc, - PyDoc_STR("*float*: August Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t6_ub", (getter)Common_get_ur_dc_aug_t6_ub,(setter)Common_set_ur_dc_aug_t6_ub, - PyDoc_STR("*float*: August Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t1_dc", (getter)Common_get_ur_dc_dec_t1_dc,(setter)Common_set_ur_dc_dec_t1_dc, - PyDoc_STR("*float*: December Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t1_ub", (getter)Common_get_ur_dc_dec_t1_ub,(setter)Common_set_ur_dc_dec_t1_ub, - PyDoc_STR("*float*: December Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t2_dc", (getter)Common_get_ur_dc_dec_t2_dc,(setter)Common_set_ur_dc_dec_t2_dc, - PyDoc_STR("*float*: December Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t2_ub", (getter)Common_get_ur_dc_dec_t2_ub,(setter)Common_set_ur_dc_dec_t2_ub, - PyDoc_STR("*float*: December Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t3_dc", (getter)Common_get_ur_dc_dec_t3_dc,(setter)Common_set_ur_dc_dec_t3_dc, - PyDoc_STR("*float*: December Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t3_ub", (getter)Common_get_ur_dc_dec_t3_ub,(setter)Common_set_ur_dc_dec_t3_ub, - PyDoc_STR("*float*: December Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t4_dc", (getter)Common_get_ur_dc_dec_t4_dc,(setter)Common_set_ur_dc_dec_t4_dc, - PyDoc_STR("*float*: December Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t4_ub", (getter)Common_get_ur_dc_dec_t4_ub,(setter)Common_set_ur_dc_dec_t4_ub, - PyDoc_STR("*float*: December Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t5_dc", (getter)Common_get_ur_dc_dec_t5_dc,(setter)Common_set_ur_dc_dec_t5_dc, - PyDoc_STR("*float*: December Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t5_ub", (getter)Common_get_ur_dc_dec_t5_ub,(setter)Common_set_ur_dc_dec_t5_ub, - PyDoc_STR("*float*: December Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t6_dc", (getter)Common_get_ur_dc_dec_t6_dc,(setter)Common_set_ur_dc_dec_t6_dc, - PyDoc_STR("*float*: December Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t6_ub", (getter)Common_get_ur_dc_dec_t6_ub,(setter)Common_set_ur_dc_dec_t6_ub, - PyDoc_STR("*float*: December Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_enable", (getter)Common_get_ur_dc_enable,(setter)Common_set_ur_dc_enable, - PyDoc_STR("*float*: Enable Demand Charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Demand Charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t1_dc", (getter)Common_get_ur_dc_feb_t1_dc,(setter)Common_set_ur_dc_feb_t1_dc, - PyDoc_STR("*float*: February Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t1_ub", (getter)Common_get_ur_dc_feb_t1_ub,(setter)Common_set_ur_dc_feb_t1_ub, - PyDoc_STR("*float*: February Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t2_dc", (getter)Common_get_ur_dc_feb_t2_dc,(setter)Common_set_ur_dc_feb_t2_dc, - PyDoc_STR("*float*: February Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t2_ub", (getter)Common_get_ur_dc_feb_t2_ub,(setter)Common_set_ur_dc_feb_t2_ub, - PyDoc_STR("*float*: February Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t3_dc", (getter)Common_get_ur_dc_feb_t3_dc,(setter)Common_set_ur_dc_feb_t3_dc, - PyDoc_STR("*float*: February Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t3_ub", (getter)Common_get_ur_dc_feb_t3_ub,(setter)Common_set_ur_dc_feb_t3_ub, - PyDoc_STR("*float*: February Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t4_dc", (getter)Common_get_ur_dc_feb_t4_dc,(setter)Common_set_ur_dc_feb_t4_dc, - PyDoc_STR("*float*: February Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t4_ub", (getter)Common_get_ur_dc_feb_t4_ub,(setter)Common_set_ur_dc_feb_t4_ub, - PyDoc_STR("*float*: February Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t5_dc", (getter)Common_get_ur_dc_feb_t5_dc,(setter)Common_set_ur_dc_feb_t5_dc, - PyDoc_STR("*float*: February Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t5_ub", (getter)Common_get_ur_dc_feb_t5_ub,(setter)Common_set_ur_dc_feb_t5_ub, - PyDoc_STR("*float*: February Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t6_dc", (getter)Common_get_ur_dc_feb_t6_dc,(setter)Common_set_ur_dc_feb_t6_dc, - PyDoc_STR("*float*: February Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t6_ub", (getter)Common_get_ur_dc_feb_t6_ub,(setter)Common_set_ur_dc_feb_t6_ub, - PyDoc_STR("*float*: February Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t1_dc", (getter)Common_get_ur_dc_jan_t1_dc,(setter)Common_set_ur_dc_jan_t1_dc, - PyDoc_STR("*float*: January Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t1_ub", (getter)Common_get_ur_dc_jan_t1_ub,(setter)Common_set_ur_dc_jan_t1_ub, - PyDoc_STR("*float*: January Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t2_dc", (getter)Common_get_ur_dc_jan_t2_dc,(setter)Common_set_ur_dc_jan_t2_dc, - PyDoc_STR("*float*: January Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t2_ub", (getter)Common_get_ur_dc_jan_t2_ub,(setter)Common_set_ur_dc_jan_t2_ub, - PyDoc_STR("*float*: January Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t3_dc", (getter)Common_get_ur_dc_jan_t3_dc,(setter)Common_set_ur_dc_jan_t3_dc, - PyDoc_STR("*float*: January Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t3_ub", (getter)Common_get_ur_dc_jan_t3_ub,(setter)Common_set_ur_dc_jan_t3_ub, - PyDoc_STR("*float*: January Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t4_dc", (getter)Common_get_ur_dc_jan_t4_dc,(setter)Common_set_ur_dc_jan_t4_dc, - PyDoc_STR("*float*: January Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t4_ub", (getter)Common_get_ur_dc_jan_t4_ub,(setter)Common_set_ur_dc_jan_t4_ub, - PyDoc_STR("*float*: January Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t5_dc", (getter)Common_get_ur_dc_jan_t5_dc,(setter)Common_set_ur_dc_jan_t5_dc, - PyDoc_STR("*float*: January Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t5_ub", (getter)Common_get_ur_dc_jan_t5_ub,(setter)Common_set_ur_dc_jan_t5_ub, - PyDoc_STR("*float*: January Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t6_dc", (getter)Common_get_ur_dc_jan_t6_dc,(setter)Common_set_ur_dc_jan_t6_dc, - PyDoc_STR("*float*: January Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t6_ub", (getter)Common_get_ur_dc_jan_t6_ub,(setter)Common_set_ur_dc_jan_t6_ub, - PyDoc_STR("*float*: January Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t1_dc", (getter)Common_get_ur_dc_jul_t1_dc,(setter)Common_set_ur_dc_jul_t1_dc, - PyDoc_STR("*float*: July Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t1_ub", (getter)Common_get_ur_dc_jul_t1_ub,(setter)Common_set_ur_dc_jul_t1_ub, - PyDoc_STR("*float*: July Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t2_dc", (getter)Common_get_ur_dc_jul_t2_dc,(setter)Common_set_ur_dc_jul_t2_dc, - PyDoc_STR("*float*: July Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t2_ub", (getter)Common_get_ur_dc_jul_t2_ub,(setter)Common_set_ur_dc_jul_t2_ub, - PyDoc_STR("*float*: July Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t3_dc", (getter)Common_get_ur_dc_jul_t3_dc,(setter)Common_set_ur_dc_jul_t3_dc, - PyDoc_STR("*float*: July Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t3_ub", (getter)Common_get_ur_dc_jul_t3_ub,(setter)Common_set_ur_dc_jul_t3_ub, - PyDoc_STR("*float*: July Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t4_dc", (getter)Common_get_ur_dc_jul_t4_dc,(setter)Common_set_ur_dc_jul_t4_dc, - PyDoc_STR("*float*: July Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t4_ub", (getter)Common_get_ur_dc_jul_t4_ub,(setter)Common_set_ur_dc_jul_t4_ub, - PyDoc_STR("*float*: July Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t5_dc", (getter)Common_get_ur_dc_jul_t5_dc,(setter)Common_set_ur_dc_jul_t5_dc, - PyDoc_STR("*float*: July Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t5_ub", (getter)Common_get_ur_dc_jul_t5_ub,(setter)Common_set_ur_dc_jul_t5_ub, - PyDoc_STR("*float*: July Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t6_dc", (getter)Common_get_ur_dc_jul_t6_dc,(setter)Common_set_ur_dc_jul_t6_dc, - PyDoc_STR("*float*: July Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t6_ub", (getter)Common_get_ur_dc_jul_t6_ub,(setter)Common_set_ur_dc_jul_t6_ub, - PyDoc_STR("*float*: July Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t1_dc", (getter)Common_get_ur_dc_jun_t1_dc,(setter)Common_set_ur_dc_jun_t1_dc, - PyDoc_STR("*float*: June Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t1_ub", (getter)Common_get_ur_dc_jun_t1_ub,(setter)Common_set_ur_dc_jun_t1_ub, - PyDoc_STR("*float*: June Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t2_dc", (getter)Common_get_ur_dc_jun_t2_dc,(setter)Common_set_ur_dc_jun_t2_dc, - PyDoc_STR("*float*: June Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t2_ub", (getter)Common_get_ur_dc_jun_t2_ub,(setter)Common_set_ur_dc_jun_t2_ub, - PyDoc_STR("*float*: June Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t3_dc", (getter)Common_get_ur_dc_jun_t3_dc,(setter)Common_set_ur_dc_jun_t3_dc, - PyDoc_STR("*float*: June Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t3_ub", (getter)Common_get_ur_dc_jun_t3_ub,(setter)Common_set_ur_dc_jun_t3_ub, - PyDoc_STR("*float*: June Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t4_dc", (getter)Common_get_ur_dc_jun_t4_dc,(setter)Common_set_ur_dc_jun_t4_dc, - PyDoc_STR("*float*: June Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t4_ub", (getter)Common_get_ur_dc_jun_t4_ub,(setter)Common_set_ur_dc_jun_t4_ub, - PyDoc_STR("*float*: June Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t5_dc", (getter)Common_get_ur_dc_jun_t5_dc,(setter)Common_set_ur_dc_jun_t5_dc, - PyDoc_STR("*float*: June Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t5_ub", (getter)Common_get_ur_dc_jun_t5_ub,(setter)Common_set_ur_dc_jun_t5_ub, - PyDoc_STR("*float*: June Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t6_dc", (getter)Common_get_ur_dc_jun_t6_dc,(setter)Common_set_ur_dc_jun_t6_dc, - PyDoc_STR("*float*: June Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t6_ub", (getter)Common_get_ur_dc_jun_t6_ub,(setter)Common_set_ur_dc_jun_t6_ub, - PyDoc_STR("*float*: June Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t1_dc", (getter)Common_get_ur_dc_mar_t1_dc,(setter)Common_set_ur_dc_mar_t1_dc, - PyDoc_STR("*float*: March Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t1_ub", (getter)Common_get_ur_dc_mar_t1_ub,(setter)Common_set_ur_dc_mar_t1_ub, - PyDoc_STR("*float*: March Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t2_dc", (getter)Common_get_ur_dc_mar_t2_dc,(setter)Common_set_ur_dc_mar_t2_dc, - PyDoc_STR("*float*: March Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t2_ub", (getter)Common_get_ur_dc_mar_t2_ub,(setter)Common_set_ur_dc_mar_t2_ub, - PyDoc_STR("*float*: March Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t3_dc", (getter)Common_get_ur_dc_mar_t3_dc,(setter)Common_set_ur_dc_mar_t3_dc, - PyDoc_STR("*float*: March Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t3_ub", (getter)Common_get_ur_dc_mar_t3_ub,(setter)Common_set_ur_dc_mar_t3_ub, - PyDoc_STR("*float*: March Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t4_dc", (getter)Common_get_ur_dc_mar_t4_dc,(setter)Common_set_ur_dc_mar_t4_dc, - PyDoc_STR("*float*: March Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t4_ub", (getter)Common_get_ur_dc_mar_t4_ub,(setter)Common_set_ur_dc_mar_t4_ub, - PyDoc_STR("*float*: March Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t5_dc", (getter)Common_get_ur_dc_mar_t5_dc,(setter)Common_set_ur_dc_mar_t5_dc, - PyDoc_STR("*float*: March Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t5_ub", (getter)Common_get_ur_dc_mar_t5_ub,(setter)Common_set_ur_dc_mar_t5_ub, - PyDoc_STR("*float*: March Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t6_dc", (getter)Common_get_ur_dc_mar_t6_dc,(setter)Common_set_ur_dc_mar_t6_dc, - PyDoc_STR("*float*: March Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t6_ub", (getter)Common_get_ur_dc_mar_t6_ub,(setter)Common_set_ur_dc_mar_t6_ub, - PyDoc_STR("*float*: March Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t1_dc", (getter)Common_get_ur_dc_may_t1_dc,(setter)Common_set_ur_dc_may_t1_dc, - PyDoc_STR("*float*: May Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t1_ub", (getter)Common_get_ur_dc_may_t1_ub,(setter)Common_set_ur_dc_may_t1_ub, - PyDoc_STR("*float*: May Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t2_dc", (getter)Common_get_ur_dc_may_t2_dc,(setter)Common_set_ur_dc_may_t2_dc, - PyDoc_STR("*float*: May Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t2_ub", (getter)Common_get_ur_dc_may_t2_ub,(setter)Common_set_ur_dc_may_t2_ub, - PyDoc_STR("*float*: May Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t3_dc", (getter)Common_get_ur_dc_may_t3_dc,(setter)Common_set_ur_dc_may_t3_dc, - PyDoc_STR("*float*: May Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t3_ub", (getter)Common_get_ur_dc_may_t3_ub,(setter)Common_set_ur_dc_may_t3_ub, - PyDoc_STR("*float*: May Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t4_dc", (getter)Common_get_ur_dc_may_t4_dc,(setter)Common_set_ur_dc_may_t4_dc, - PyDoc_STR("*float*: May Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t4_ub", (getter)Common_get_ur_dc_may_t4_ub,(setter)Common_set_ur_dc_may_t4_ub, - PyDoc_STR("*float*: May Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t5_dc", (getter)Common_get_ur_dc_may_t5_dc,(setter)Common_set_ur_dc_may_t5_dc, - PyDoc_STR("*float*: May Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t5_ub", (getter)Common_get_ur_dc_may_t5_ub,(setter)Common_set_ur_dc_may_t5_ub, - PyDoc_STR("*float*: May Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t6_dc", (getter)Common_get_ur_dc_may_t6_dc,(setter)Common_set_ur_dc_may_t6_dc, - PyDoc_STR("*float*: May Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t6_ub", (getter)Common_get_ur_dc_may_t6_ub,(setter)Common_set_ur_dc_may_t6_ub, - PyDoc_STR("*float*: May Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t1_dc", (getter)Common_get_ur_dc_nov_t1_dc,(setter)Common_set_ur_dc_nov_t1_dc, - PyDoc_STR("*float*: November Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t1_ub", (getter)Common_get_ur_dc_nov_t1_ub,(setter)Common_set_ur_dc_nov_t1_ub, - PyDoc_STR("*float*: November Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t2_dc", (getter)Common_get_ur_dc_nov_t2_dc,(setter)Common_set_ur_dc_nov_t2_dc, - PyDoc_STR("*float*: November Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t2_ub", (getter)Common_get_ur_dc_nov_t2_ub,(setter)Common_set_ur_dc_nov_t2_ub, - PyDoc_STR("*float*: November Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t3_dc", (getter)Common_get_ur_dc_nov_t3_dc,(setter)Common_set_ur_dc_nov_t3_dc, - PyDoc_STR("*float*: November Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t3_ub", (getter)Common_get_ur_dc_nov_t3_ub,(setter)Common_set_ur_dc_nov_t3_ub, - PyDoc_STR("*float*: November Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t4_dc", (getter)Common_get_ur_dc_nov_t4_dc,(setter)Common_set_ur_dc_nov_t4_dc, - PyDoc_STR("*float*: November Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t4_ub", (getter)Common_get_ur_dc_nov_t4_ub,(setter)Common_set_ur_dc_nov_t4_ub, - PyDoc_STR("*float*: November Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t5_dc", (getter)Common_get_ur_dc_nov_t5_dc,(setter)Common_set_ur_dc_nov_t5_dc, - PyDoc_STR("*float*: November Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t5_ub", (getter)Common_get_ur_dc_nov_t5_ub,(setter)Common_set_ur_dc_nov_t5_ub, - PyDoc_STR("*float*: November Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t6_dc", (getter)Common_get_ur_dc_nov_t6_dc,(setter)Common_set_ur_dc_nov_t6_dc, - PyDoc_STR("*float*: November Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t6_ub", (getter)Common_get_ur_dc_nov_t6_ub,(setter)Common_set_ur_dc_nov_t6_ub, - PyDoc_STR("*float*: November Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t1_dc", (getter)Common_get_ur_dc_oct_t1_dc,(setter)Common_set_ur_dc_oct_t1_dc, - PyDoc_STR("*float*: October Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t1_ub", (getter)Common_get_ur_dc_oct_t1_ub,(setter)Common_set_ur_dc_oct_t1_ub, - PyDoc_STR("*float*: October Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t2_dc", (getter)Common_get_ur_dc_oct_t2_dc,(setter)Common_set_ur_dc_oct_t2_dc, - PyDoc_STR("*float*: October Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t2_ub", (getter)Common_get_ur_dc_oct_t2_ub,(setter)Common_set_ur_dc_oct_t2_ub, - PyDoc_STR("*float*: October Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t3_dc", (getter)Common_get_ur_dc_oct_t3_dc,(setter)Common_set_ur_dc_oct_t3_dc, - PyDoc_STR("*float*: October Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t3_ub", (getter)Common_get_ur_dc_oct_t3_ub,(setter)Common_set_ur_dc_oct_t3_ub, - PyDoc_STR("*float*: October Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t4_dc", (getter)Common_get_ur_dc_oct_t4_dc,(setter)Common_set_ur_dc_oct_t4_dc, - PyDoc_STR("*float*: October Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t4_ub", (getter)Common_get_ur_dc_oct_t4_ub,(setter)Common_set_ur_dc_oct_t4_ub, - PyDoc_STR("*float*: October Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t5_dc", (getter)Common_get_ur_dc_oct_t5_dc,(setter)Common_set_ur_dc_oct_t5_dc, - PyDoc_STR("*float*: October Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t5_ub", (getter)Common_get_ur_dc_oct_t5_ub,(setter)Common_set_ur_dc_oct_t5_ub, - PyDoc_STR("*float*: October Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t6_dc", (getter)Common_get_ur_dc_oct_t6_dc,(setter)Common_set_ur_dc_oct_t6_dc, - PyDoc_STR("*float*: October Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t6_ub", (getter)Common_get_ur_dc_oct_t6_ub,(setter)Common_set_ur_dc_oct_t6_ub, - PyDoc_STR("*float*: October Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t1_dc", (getter)Common_get_ur_dc_p10_t1_dc,(setter)Common_set_ur_dc_p10_t1_dc, - PyDoc_STR("*float*: Period 10 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t1_ub", (getter)Common_get_ur_dc_p10_t1_ub,(setter)Common_set_ur_dc_p10_t1_ub, - PyDoc_STR("*float*: Period 10 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t2_dc", (getter)Common_get_ur_dc_p10_t2_dc,(setter)Common_set_ur_dc_p10_t2_dc, - PyDoc_STR("*float*: Period 10 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t2_ub", (getter)Common_get_ur_dc_p10_t2_ub,(setter)Common_set_ur_dc_p10_t2_ub, - PyDoc_STR("*float*: Period 10 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t3_dc", (getter)Common_get_ur_dc_p10_t3_dc,(setter)Common_set_ur_dc_p10_t3_dc, - PyDoc_STR("*float*: Period 10 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t3_ub", (getter)Common_get_ur_dc_p10_t3_ub,(setter)Common_set_ur_dc_p10_t3_ub, - PyDoc_STR("*float*: Period 10 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t4_dc", (getter)Common_get_ur_dc_p10_t4_dc,(setter)Common_set_ur_dc_p10_t4_dc, - PyDoc_STR("*float*: Period 10 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t4_ub", (getter)Common_get_ur_dc_p10_t4_ub,(setter)Common_set_ur_dc_p10_t4_ub, - PyDoc_STR("*float*: Period 10 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t5_dc", (getter)Common_get_ur_dc_p10_t5_dc,(setter)Common_set_ur_dc_p10_t5_dc, - PyDoc_STR("*float*: Period 10 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t5_ub", (getter)Common_get_ur_dc_p10_t5_ub,(setter)Common_set_ur_dc_p10_t5_ub, - PyDoc_STR("*float*: Period 10 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t6_dc", (getter)Common_get_ur_dc_p10_t6_dc,(setter)Common_set_ur_dc_p10_t6_dc, - PyDoc_STR("*float*: Period 10 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t6_ub", (getter)Common_get_ur_dc_p10_t6_ub,(setter)Common_set_ur_dc_p10_t6_ub, - PyDoc_STR("*float*: Period 10 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t1_dc", (getter)Common_get_ur_dc_p11_t1_dc,(setter)Common_set_ur_dc_p11_t1_dc, - PyDoc_STR("*float*: Period 11 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t1_ub", (getter)Common_get_ur_dc_p11_t1_ub,(setter)Common_set_ur_dc_p11_t1_ub, - PyDoc_STR("*float*: Period 11 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t2_dc", (getter)Common_get_ur_dc_p11_t2_dc,(setter)Common_set_ur_dc_p11_t2_dc, - PyDoc_STR("*float*: Period 11 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t2_ub", (getter)Common_get_ur_dc_p11_t2_ub,(setter)Common_set_ur_dc_p11_t2_ub, - PyDoc_STR("*float*: Period 11 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t3_dc", (getter)Common_get_ur_dc_p11_t3_dc,(setter)Common_set_ur_dc_p11_t3_dc, - PyDoc_STR("*float*: Period 11 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t3_ub", (getter)Common_get_ur_dc_p11_t3_ub,(setter)Common_set_ur_dc_p11_t3_ub, - PyDoc_STR("*float*: Period 11 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t4_dc", (getter)Common_get_ur_dc_p11_t4_dc,(setter)Common_set_ur_dc_p11_t4_dc, - PyDoc_STR("*float*: Period 11 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t4_ub", (getter)Common_get_ur_dc_p11_t4_ub,(setter)Common_set_ur_dc_p11_t4_ub, - PyDoc_STR("*float*: Period 11 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t5_dc", (getter)Common_get_ur_dc_p11_t5_dc,(setter)Common_set_ur_dc_p11_t5_dc, - PyDoc_STR("*float*: Period 11 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t5_ub", (getter)Common_get_ur_dc_p11_t5_ub,(setter)Common_set_ur_dc_p11_t5_ub, - PyDoc_STR("*float*: Period 11 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t6_dc", (getter)Common_get_ur_dc_p11_t6_dc,(setter)Common_set_ur_dc_p11_t6_dc, - PyDoc_STR("*float*: Period 11 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t6_ub", (getter)Common_get_ur_dc_p11_t6_ub,(setter)Common_set_ur_dc_p11_t6_ub, - PyDoc_STR("*float*: Period 11 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t1_dc", (getter)Common_get_ur_dc_p12_t1_dc,(setter)Common_set_ur_dc_p12_t1_dc, - PyDoc_STR("*float*: Period 12 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t1_ub", (getter)Common_get_ur_dc_p12_t1_ub,(setter)Common_set_ur_dc_p12_t1_ub, - PyDoc_STR("*float*: Period 12 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t2_dc", (getter)Common_get_ur_dc_p12_t2_dc,(setter)Common_set_ur_dc_p12_t2_dc, - PyDoc_STR("*float*: Period 12 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t2_ub", (getter)Common_get_ur_dc_p12_t2_ub,(setter)Common_set_ur_dc_p12_t2_ub, - PyDoc_STR("*float*: Period 12 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t3_dc", (getter)Common_get_ur_dc_p12_t3_dc,(setter)Common_set_ur_dc_p12_t3_dc, - PyDoc_STR("*float*: Period 12 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t3_ub", (getter)Common_get_ur_dc_p12_t3_ub,(setter)Common_set_ur_dc_p12_t3_ub, - PyDoc_STR("*float*: Period 12 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t4_dc", (getter)Common_get_ur_dc_p12_t4_dc,(setter)Common_set_ur_dc_p12_t4_dc, - PyDoc_STR("*float*: Period 12 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t4_ub", (getter)Common_get_ur_dc_p12_t4_ub,(setter)Common_set_ur_dc_p12_t4_ub, - PyDoc_STR("*float*: Period 12 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t5_dc", (getter)Common_get_ur_dc_p12_t5_dc,(setter)Common_set_ur_dc_p12_t5_dc, - PyDoc_STR("*float*: Period 12 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t5_ub", (getter)Common_get_ur_dc_p12_t5_ub,(setter)Common_set_ur_dc_p12_t5_ub, - PyDoc_STR("*float*: Period 12 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t6_dc", (getter)Common_get_ur_dc_p12_t6_dc,(setter)Common_set_ur_dc_p12_t6_dc, - PyDoc_STR("*float*: Period 12 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t6_ub", (getter)Common_get_ur_dc_p12_t6_ub,(setter)Common_set_ur_dc_p12_t6_ub, - PyDoc_STR("*float*: Period 12 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t1_dc", (getter)Common_get_ur_dc_p1_t1_dc,(setter)Common_set_ur_dc_p1_t1_dc, - PyDoc_STR("*float*: Period 1 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t1_ub", (getter)Common_get_ur_dc_p1_t1_ub,(setter)Common_set_ur_dc_p1_t1_ub, - PyDoc_STR("*float*: Period 1 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t2_dc", (getter)Common_get_ur_dc_p1_t2_dc,(setter)Common_set_ur_dc_p1_t2_dc, - PyDoc_STR("*float*: Period 1 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t2_ub", (getter)Common_get_ur_dc_p1_t2_ub,(setter)Common_set_ur_dc_p1_t2_ub, - PyDoc_STR("*float*: Period 1 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t3_dc", (getter)Common_get_ur_dc_p1_t3_dc,(setter)Common_set_ur_dc_p1_t3_dc, - PyDoc_STR("*float*: Period 1 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t3_ub", (getter)Common_get_ur_dc_p1_t3_ub,(setter)Common_set_ur_dc_p1_t3_ub, - PyDoc_STR("*float*: Period 1 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t4_dc", (getter)Common_get_ur_dc_p1_t4_dc,(setter)Common_set_ur_dc_p1_t4_dc, - PyDoc_STR("*float*: Period 1 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t4_ub", (getter)Common_get_ur_dc_p1_t4_ub,(setter)Common_set_ur_dc_p1_t4_ub, - PyDoc_STR("*float*: Period 1 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t5_dc", (getter)Common_get_ur_dc_p1_t5_dc,(setter)Common_set_ur_dc_p1_t5_dc, - PyDoc_STR("*float*: Period 1 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t5_ub", (getter)Common_get_ur_dc_p1_t5_ub,(setter)Common_set_ur_dc_p1_t5_ub, - PyDoc_STR("*float*: Period 1 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t6_dc", (getter)Common_get_ur_dc_p1_t6_dc,(setter)Common_set_ur_dc_p1_t6_dc, - PyDoc_STR("*float*: Period 1 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t6_ub", (getter)Common_get_ur_dc_p1_t6_ub,(setter)Common_set_ur_dc_p1_t6_ub, - PyDoc_STR("*float*: Period 1 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t1_dc", (getter)Common_get_ur_dc_p2_t1_dc,(setter)Common_set_ur_dc_p2_t1_dc, - PyDoc_STR("*float*: Period 2 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t1_ub", (getter)Common_get_ur_dc_p2_t1_ub,(setter)Common_set_ur_dc_p2_t1_ub, - PyDoc_STR("*float*: Period 2 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t2_dc", (getter)Common_get_ur_dc_p2_t2_dc,(setter)Common_set_ur_dc_p2_t2_dc, - PyDoc_STR("*float*: Period 2 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t2_ub", (getter)Common_get_ur_dc_p2_t2_ub,(setter)Common_set_ur_dc_p2_t2_ub, - PyDoc_STR("*float*: Period 2 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t3_dc", (getter)Common_get_ur_dc_p2_t3_dc,(setter)Common_set_ur_dc_p2_t3_dc, - PyDoc_STR("*float*: Period 2 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t3_ub", (getter)Common_get_ur_dc_p2_t3_ub,(setter)Common_set_ur_dc_p2_t3_ub, - PyDoc_STR("*float*: Period 2 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t4_dc", (getter)Common_get_ur_dc_p2_t4_dc,(setter)Common_set_ur_dc_p2_t4_dc, - PyDoc_STR("*float*: Period 2 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t4_ub", (getter)Common_get_ur_dc_p2_t4_ub,(setter)Common_set_ur_dc_p2_t4_ub, - PyDoc_STR("*float*: Period 2 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t5_dc", (getter)Common_get_ur_dc_p2_t5_dc,(setter)Common_set_ur_dc_p2_t5_dc, - PyDoc_STR("*float*: Period 2 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t5_ub", (getter)Common_get_ur_dc_p2_t5_ub,(setter)Common_set_ur_dc_p2_t5_ub, - PyDoc_STR("*float*: Period 2 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t6_dc", (getter)Common_get_ur_dc_p2_t6_dc,(setter)Common_set_ur_dc_p2_t6_dc, - PyDoc_STR("*float*: Period 2 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t6_ub", (getter)Common_get_ur_dc_p2_t6_ub,(setter)Common_set_ur_dc_p2_t6_ub, - PyDoc_STR("*float*: Period 2 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t1_dc", (getter)Common_get_ur_dc_p3_t1_dc,(setter)Common_set_ur_dc_p3_t1_dc, - PyDoc_STR("*float*: Period 3 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t1_ub", (getter)Common_get_ur_dc_p3_t1_ub,(setter)Common_set_ur_dc_p3_t1_ub, - PyDoc_STR("*float*: Period 3 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t2_dc", (getter)Common_get_ur_dc_p3_t2_dc,(setter)Common_set_ur_dc_p3_t2_dc, - PyDoc_STR("*float*: Period 3 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t2_ub", (getter)Common_get_ur_dc_p3_t2_ub,(setter)Common_set_ur_dc_p3_t2_ub, - PyDoc_STR("*float*: Period 3 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t3_dc", (getter)Common_get_ur_dc_p3_t3_dc,(setter)Common_set_ur_dc_p3_t3_dc, - PyDoc_STR("*float*: Period 3 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t3_ub", (getter)Common_get_ur_dc_p3_t3_ub,(setter)Common_set_ur_dc_p3_t3_ub, - PyDoc_STR("*float*: Period 3 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t4_dc", (getter)Common_get_ur_dc_p3_t4_dc,(setter)Common_set_ur_dc_p3_t4_dc, - PyDoc_STR("*float*: Period 3 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t4_ub", (getter)Common_get_ur_dc_p3_t4_ub,(setter)Common_set_ur_dc_p3_t4_ub, - PyDoc_STR("*float*: Period 3 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t5_dc", (getter)Common_get_ur_dc_p3_t5_dc,(setter)Common_set_ur_dc_p3_t5_dc, - PyDoc_STR("*float*: Period 3 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t5_ub", (getter)Common_get_ur_dc_p3_t5_ub,(setter)Common_set_ur_dc_p3_t5_ub, - PyDoc_STR("*float*: Period 3 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t6_dc", (getter)Common_get_ur_dc_p3_t6_dc,(setter)Common_set_ur_dc_p3_t6_dc, - PyDoc_STR("*float*: Period 3 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t6_ub", (getter)Common_get_ur_dc_p3_t6_ub,(setter)Common_set_ur_dc_p3_t6_ub, - PyDoc_STR("*float*: Period 3 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t1_dc", (getter)Common_get_ur_dc_p4_t1_dc,(setter)Common_set_ur_dc_p4_t1_dc, - PyDoc_STR("*float*: Period 4 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t1_ub", (getter)Common_get_ur_dc_p4_t1_ub,(setter)Common_set_ur_dc_p4_t1_ub, - PyDoc_STR("*float*: Period 4 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t2_dc", (getter)Common_get_ur_dc_p4_t2_dc,(setter)Common_set_ur_dc_p4_t2_dc, - PyDoc_STR("*float*: Period 4 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t2_ub", (getter)Common_get_ur_dc_p4_t2_ub,(setter)Common_set_ur_dc_p4_t2_ub, - PyDoc_STR("*float*: Period 4 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t3_dc", (getter)Common_get_ur_dc_p4_t3_dc,(setter)Common_set_ur_dc_p4_t3_dc, - PyDoc_STR("*float*: Period 4 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t3_ub", (getter)Common_get_ur_dc_p4_t3_ub,(setter)Common_set_ur_dc_p4_t3_ub, - PyDoc_STR("*float*: Period 4 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t4_dc", (getter)Common_get_ur_dc_p4_t4_dc,(setter)Common_set_ur_dc_p4_t4_dc, - PyDoc_STR("*float*: Period 4 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t4_ub", (getter)Common_get_ur_dc_p4_t4_ub,(setter)Common_set_ur_dc_p4_t4_ub, - PyDoc_STR("*float*: Period 4 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t5_dc", (getter)Common_get_ur_dc_p4_t5_dc,(setter)Common_set_ur_dc_p4_t5_dc, - PyDoc_STR("*float*: Period 4 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t5_ub", (getter)Common_get_ur_dc_p4_t5_ub,(setter)Common_set_ur_dc_p4_t5_ub, - PyDoc_STR("*float*: Period 4 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t6_dc", (getter)Common_get_ur_dc_p4_t6_dc,(setter)Common_set_ur_dc_p4_t6_dc, - PyDoc_STR("*float*: Period 4 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t6_ub", (getter)Common_get_ur_dc_p4_t6_ub,(setter)Common_set_ur_dc_p4_t6_ub, - PyDoc_STR("*float*: Period 4 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t1_dc", (getter)Common_get_ur_dc_p5_t1_dc,(setter)Common_set_ur_dc_p5_t1_dc, - PyDoc_STR("*float*: Period 5 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t1_ub", (getter)Common_get_ur_dc_p5_t1_ub,(setter)Common_set_ur_dc_p5_t1_ub, - PyDoc_STR("*float*: Period 5 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t2_dc", (getter)Common_get_ur_dc_p5_t2_dc,(setter)Common_set_ur_dc_p5_t2_dc, - PyDoc_STR("*float*: Period 5 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t2_ub", (getter)Common_get_ur_dc_p5_t2_ub,(setter)Common_set_ur_dc_p5_t2_ub, - PyDoc_STR("*float*: Period 5 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t3_dc", (getter)Common_get_ur_dc_p5_t3_dc,(setter)Common_set_ur_dc_p5_t3_dc, - PyDoc_STR("*float*: Period 5 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t3_ub", (getter)Common_get_ur_dc_p5_t3_ub,(setter)Common_set_ur_dc_p5_t3_ub, - PyDoc_STR("*float*: Period 5 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t4_dc", (getter)Common_get_ur_dc_p5_t4_dc,(setter)Common_set_ur_dc_p5_t4_dc, - PyDoc_STR("*float*: Period 5 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t4_ub", (getter)Common_get_ur_dc_p5_t4_ub,(setter)Common_set_ur_dc_p5_t4_ub, - PyDoc_STR("*float*: Period 5 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t5_dc", (getter)Common_get_ur_dc_p5_t5_dc,(setter)Common_set_ur_dc_p5_t5_dc, - PyDoc_STR("*float*: Period 5 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t5_ub", (getter)Common_get_ur_dc_p5_t5_ub,(setter)Common_set_ur_dc_p5_t5_ub, - PyDoc_STR("*float*: Period 5 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t6_dc", (getter)Common_get_ur_dc_p5_t6_dc,(setter)Common_set_ur_dc_p5_t6_dc, - PyDoc_STR("*float*: Period 5 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t6_ub", (getter)Common_get_ur_dc_p5_t6_ub,(setter)Common_set_ur_dc_p5_t6_ub, - PyDoc_STR("*float*: Period 5 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t1_dc", (getter)Common_get_ur_dc_p6_t1_dc,(setter)Common_set_ur_dc_p6_t1_dc, - PyDoc_STR("*float*: Period 6 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t1_ub", (getter)Common_get_ur_dc_p6_t1_ub,(setter)Common_set_ur_dc_p6_t1_ub, - PyDoc_STR("*float*: Period 6 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t2_dc", (getter)Common_get_ur_dc_p6_t2_dc,(setter)Common_set_ur_dc_p6_t2_dc, - PyDoc_STR("*float*: Period 6 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t2_ub", (getter)Common_get_ur_dc_p6_t2_ub,(setter)Common_set_ur_dc_p6_t2_ub, - PyDoc_STR("*float*: Period 6 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t3_dc", (getter)Common_get_ur_dc_p6_t3_dc,(setter)Common_set_ur_dc_p6_t3_dc, - PyDoc_STR("*float*: Period 6 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t3_ub", (getter)Common_get_ur_dc_p6_t3_ub,(setter)Common_set_ur_dc_p6_t3_ub, - PyDoc_STR("*float*: Period 6 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t4_dc", (getter)Common_get_ur_dc_p6_t4_dc,(setter)Common_set_ur_dc_p6_t4_dc, - PyDoc_STR("*float*: Period 6 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t4_ub", (getter)Common_get_ur_dc_p6_t4_ub,(setter)Common_set_ur_dc_p6_t4_ub, - PyDoc_STR("*float*: Period 6 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t5_dc", (getter)Common_get_ur_dc_p6_t5_dc,(setter)Common_set_ur_dc_p6_t5_dc, - PyDoc_STR("*float*: Period 6 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t5_ub", (getter)Common_get_ur_dc_p6_t5_ub,(setter)Common_set_ur_dc_p6_t5_ub, - PyDoc_STR("*float*: Period 6 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t6_dc", (getter)Common_get_ur_dc_p6_t6_dc,(setter)Common_set_ur_dc_p6_t6_dc, - PyDoc_STR("*float*: Period 6 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t6_ub", (getter)Common_get_ur_dc_p6_t6_ub,(setter)Common_set_ur_dc_p6_t6_ub, - PyDoc_STR("*float*: Period 6 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t1_dc", (getter)Common_get_ur_dc_p7_t1_dc,(setter)Common_set_ur_dc_p7_t1_dc, - PyDoc_STR("*float*: Period 7 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t1_ub", (getter)Common_get_ur_dc_p7_t1_ub,(setter)Common_set_ur_dc_p7_t1_ub, - PyDoc_STR("*float*: Period 7 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t2_dc", (getter)Common_get_ur_dc_p7_t2_dc,(setter)Common_set_ur_dc_p7_t2_dc, - PyDoc_STR("*float*: Period 7 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t2_ub", (getter)Common_get_ur_dc_p7_t2_ub,(setter)Common_set_ur_dc_p7_t2_ub, - PyDoc_STR("*float*: Period 7 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t3_dc", (getter)Common_get_ur_dc_p7_t3_dc,(setter)Common_set_ur_dc_p7_t3_dc, - PyDoc_STR("*float*: Period 7 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t3_ub", (getter)Common_get_ur_dc_p7_t3_ub,(setter)Common_set_ur_dc_p7_t3_ub, - PyDoc_STR("*float*: Period 7 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t4_dc", (getter)Common_get_ur_dc_p7_t4_dc,(setter)Common_set_ur_dc_p7_t4_dc, - PyDoc_STR("*float*: Period 7 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t4_ub", (getter)Common_get_ur_dc_p7_t4_ub,(setter)Common_set_ur_dc_p7_t4_ub, - PyDoc_STR("*float*: Period 7 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t5_dc", (getter)Common_get_ur_dc_p7_t5_dc,(setter)Common_set_ur_dc_p7_t5_dc, - PyDoc_STR("*float*: Period 7 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t5_ub", (getter)Common_get_ur_dc_p7_t5_ub,(setter)Common_set_ur_dc_p7_t5_ub, - PyDoc_STR("*float*: Period 7 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t6_dc", (getter)Common_get_ur_dc_p7_t6_dc,(setter)Common_set_ur_dc_p7_t6_dc, - PyDoc_STR("*float*: Period 7 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t6_ub", (getter)Common_get_ur_dc_p7_t6_ub,(setter)Common_set_ur_dc_p7_t6_ub, - PyDoc_STR("*float*: Period 7 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t1_dc", (getter)Common_get_ur_dc_p8_t1_dc,(setter)Common_set_ur_dc_p8_t1_dc, - PyDoc_STR("*float*: Period 8 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t1_ub", (getter)Common_get_ur_dc_p8_t1_ub,(setter)Common_set_ur_dc_p8_t1_ub, - PyDoc_STR("*float*: Period 8 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t2_dc", (getter)Common_get_ur_dc_p8_t2_dc,(setter)Common_set_ur_dc_p8_t2_dc, - PyDoc_STR("*float*: Period 8 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t2_ub", (getter)Common_get_ur_dc_p8_t2_ub,(setter)Common_set_ur_dc_p8_t2_ub, - PyDoc_STR("*float*: Period 8 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t3_dc", (getter)Common_get_ur_dc_p8_t3_dc,(setter)Common_set_ur_dc_p8_t3_dc, - PyDoc_STR("*float*: Period 8 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t3_ub", (getter)Common_get_ur_dc_p8_t3_ub,(setter)Common_set_ur_dc_p8_t3_ub, - PyDoc_STR("*float*: Period 8 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t4_dc", (getter)Common_get_ur_dc_p8_t4_dc,(setter)Common_set_ur_dc_p8_t4_dc, - PyDoc_STR("*float*: Period 8 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t4_ub", (getter)Common_get_ur_dc_p8_t4_ub,(setter)Common_set_ur_dc_p8_t4_ub, - PyDoc_STR("*float*: Period 8 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t5_dc", (getter)Common_get_ur_dc_p8_t5_dc,(setter)Common_set_ur_dc_p8_t5_dc, - PyDoc_STR("*float*: Period 8 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t5_ub", (getter)Common_get_ur_dc_p8_t5_ub,(setter)Common_set_ur_dc_p8_t5_ub, - PyDoc_STR("*float*: Period 8 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t6_dc", (getter)Common_get_ur_dc_p8_t6_dc,(setter)Common_set_ur_dc_p8_t6_dc, - PyDoc_STR("*float*: Period 8 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t6_ub", (getter)Common_get_ur_dc_p8_t6_ub,(setter)Common_set_ur_dc_p8_t6_ub, - PyDoc_STR("*float*: Period 8 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t1_dc", (getter)Common_get_ur_dc_p9_t1_dc,(setter)Common_set_ur_dc_p9_t1_dc, - PyDoc_STR("*float*: Period 9 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t1_ub", (getter)Common_get_ur_dc_p9_t1_ub,(setter)Common_set_ur_dc_p9_t1_ub, - PyDoc_STR("*float*: Period 9 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t2_dc", (getter)Common_get_ur_dc_p9_t2_dc,(setter)Common_set_ur_dc_p9_t2_dc, - PyDoc_STR("*float*: Period 9 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t2_ub", (getter)Common_get_ur_dc_p9_t2_ub,(setter)Common_set_ur_dc_p9_t2_ub, - PyDoc_STR("*float*: Period 9 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t3_dc", (getter)Common_get_ur_dc_p9_t3_dc,(setter)Common_set_ur_dc_p9_t3_dc, - PyDoc_STR("*float*: Period 9 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t3_ub", (getter)Common_get_ur_dc_p9_t3_ub,(setter)Common_set_ur_dc_p9_t3_ub, - PyDoc_STR("*float*: Period 9 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t4_dc", (getter)Common_get_ur_dc_p9_t4_dc,(setter)Common_set_ur_dc_p9_t4_dc, - PyDoc_STR("*float*: Period 9 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t4_ub", (getter)Common_get_ur_dc_p9_t4_ub,(setter)Common_set_ur_dc_p9_t4_ub, - PyDoc_STR("*float*: Period 9 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t5_dc", (getter)Common_get_ur_dc_p9_t5_dc,(setter)Common_set_ur_dc_p9_t5_dc, - PyDoc_STR("*float*: Period 9 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t5_ub", (getter)Common_get_ur_dc_p9_t5_ub,(setter)Common_set_ur_dc_p9_t5_ub, - PyDoc_STR("*float*: Period 9 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t6_dc", (getter)Common_get_ur_dc_p9_t6_dc,(setter)Common_set_ur_dc_p9_t6_dc, - PyDoc_STR("*float*: Period 9 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t6_ub", (getter)Common_get_ur_dc_p9_t6_ub,(setter)Common_set_ur_dc_p9_t6_ub, - PyDoc_STR("*float*: Period 9 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sched_weekday", (getter)Common_get_ur_dc_sched_weekday,(setter)Common_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demend Charge Weekday Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demend Charge Weekday Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekend", (getter)Common_get_ur_dc_sched_weekend,(setter)Common_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demend Charge Weekend Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demend Charge Weekend Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sep_t1_dc", (getter)Common_get_ur_dc_sep_t1_dc,(setter)Common_set_ur_dc_sep_t1_dc, - PyDoc_STR("*float*: September Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t1_ub", (getter)Common_get_ur_dc_sep_t1_ub,(setter)Common_set_ur_dc_sep_t1_ub, - PyDoc_STR("*float*: September Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t2_dc", (getter)Common_get_ur_dc_sep_t2_dc,(setter)Common_set_ur_dc_sep_t2_dc, - PyDoc_STR("*float*: September Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t2_ub", (getter)Common_get_ur_dc_sep_t2_ub,(setter)Common_set_ur_dc_sep_t2_ub, - PyDoc_STR("*float*: September Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t3_dc", (getter)Common_get_ur_dc_sep_t3_dc,(setter)Common_set_ur_dc_sep_t3_dc, - PyDoc_STR("*float*: September Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t3_ub", (getter)Common_get_ur_dc_sep_t3_ub,(setter)Common_set_ur_dc_sep_t3_ub, - PyDoc_STR("*float*: September Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t4_dc", (getter)Common_get_ur_dc_sep_t4_dc,(setter)Common_set_ur_dc_sep_t4_dc, - PyDoc_STR("*float*: September Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t4_ub", (getter)Common_get_ur_dc_sep_t4_ub,(setter)Common_set_ur_dc_sep_t4_ub, - PyDoc_STR("*float*: September Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t5_dc", (getter)Common_get_ur_dc_sep_t5_dc,(setter)Common_set_ur_dc_sep_t5_dc, - PyDoc_STR("*float*: September Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t5_ub", (getter)Common_get_ur_dc_sep_t5_ub,(setter)Common_set_ur_dc_sep_t5_ub, - PyDoc_STR("*float*: September Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t6_dc", (getter)Common_get_ur_dc_sep_t6_dc,(setter)Common_set_ur_dc_sep_t6_dc, - PyDoc_STR("*float*: September Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t6_ub", (getter)Common_get_ur_dc_sep_t6_ub,(setter)Common_set_ur_dc_sep_t6_ub, - PyDoc_STR("*float*: September Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_enable", (getter)Common_get_ur_ec_enable,(setter)Common_set_ur_ec_enable, - PyDoc_STR("*float*: Enable energy charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable energy charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_br", (getter)Common_get_ur_ec_p10_t1_br,(setter)Common_set_ur_ec_p10_t1_br, - PyDoc_STR("*float*: Period 10 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_sr", (getter)Common_get_ur_ec_p10_t1_sr,(setter)Common_set_ur_ec_p10_t1_sr, - PyDoc_STR("*float*: Period 10 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_ub", (getter)Common_get_ur_ec_p10_t1_ub,(setter)Common_set_ur_ec_p10_t1_ub, - PyDoc_STR("*float*: Period 10 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_br", (getter)Common_get_ur_ec_p10_t2_br,(setter)Common_set_ur_ec_p10_t2_br, - PyDoc_STR("*float*: Period 10 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_sr", (getter)Common_get_ur_ec_p10_t2_sr,(setter)Common_set_ur_ec_p10_t2_sr, - PyDoc_STR("*float*: Period 10 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_ub", (getter)Common_get_ur_ec_p10_t2_ub,(setter)Common_set_ur_ec_p10_t2_ub, - PyDoc_STR("*float*: Period 10 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_br", (getter)Common_get_ur_ec_p10_t3_br,(setter)Common_set_ur_ec_p10_t3_br, - PyDoc_STR("*float*: Period 10 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_sr", (getter)Common_get_ur_ec_p10_t3_sr,(setter)Common_set_ur_ec_p10_t3_sr, - PyDoc_STR("*float*: Period 10 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_ub", (getter)Common_get_ur_ec_p10_t3_ub,(setter)Common_set_ur_ec_p10_t3_ub, - PyDoc_STR("*float*: Period 10 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_br", (getter)Common_get_ur_ec_p10_t4_br,(setter)Common_set_ur_ec_p10_t4_br, - PyDoc_STR("*float*: Period 10 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_sr", (getter)Common_get_ur_ec_p10_t4_sr,(setter)Common_set_ur_ec_p10_t4_sr, - PyDoc_STR("*float*: Period 10 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_ub", (getter)Common_get_ur_ec_p10_t4_ub,(setter)Common_set_ur_ec_p10_t4_ub, - PyDoc_STR("*float*: Period 10 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_br", (getter)Common_get_ur_ec_p10_t5_br,(setter)Common_set_ur_ec_p10_t5_br, - PyDoc_STR("*float*: Period 10 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_sr", (getter)Common_get_ur_ec_p10_t5_sr,(setter)Common_set_ur_ec_p10_t5_sr, - PyDoc_STR("*float*: Period 10 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_ub", (getter)Common_get_ur_ec_p10_t5_ub,(setter)Common_set_ur_ec_p10_t5_ub, - PyDoc_STR("*float*: Period 10 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_br", (getter)Common_get_ur_ec_p10_t6_br,(setter)Common_set_ur_ec_p10_t6_br, - PyDoc_STR("*float*: Period 10 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_sr", (getter)Common_get_ur_ec_p10_t6_sr,(setter)Common_set_ur_ec_p10_t6_sr, - PyDoc_STR("*float*: Period 10 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_ub", (getter)Common_get_ur_ec_p10_t6_ub,(setter)Common_set_ur_ec_p10_t6_ub, - PyDoc_STR("*float*: Period 10 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_br", (getter)Common_get_ur_ec_p11_t1_br,(setter)Common_set_ur_ec_p11_t1_br, - PyDoc_STR("*float*: Period 11 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_sr", (getter)Common_get_ur_ec_p11_t1_sr,(setter)Common_set_ur_ec_p11_t1_sr, - PyDoc_STR("*float*: Period 11 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_ub", (getter)Common_get_ur_ec_p11_t1_ub,(setter)Common_set_ur_ec_p11_t1_ub, - PyDoc_STR("*float*: Period 11 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_br", (getter)Common_get_ur_ec_p11_t2_br,(setter)Common_set_ur_ec_p11_t2_br, - PyDoc_STR("*float*: Period 11 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_sr", (getter)Common_get_ur_ec_p11_t2_sr,(setter)Common_set_ur_ec_p11_t2_sr, - PyDoc_STR("*float*: Period 11 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_ub", (getter)Common_get_ur_ec_p11_t2_ub,(setter)Common_set_ur_ec_p11_t2_ub, - PyDoc_STR("*float*: Period 11 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_br", (getter)Common_get_ur_ec_p11_t3_br,(setter)Common_set_ur_ec_p11_t3_br, - PyDoc_STR("*float*: Period 11 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_sr", (getter)Common_get_ur_ec_p11_t3_sr,(setter)Common_set_ur_ec_p11_t3_sr, - PyDoc_STR("*float*: Period 11 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_ub", (getter)Common_get_ur_ec_p11_t3_ub,(setter)Common_set_ur_ec_p11_t3_ub, - PyDoc_STR("*float*: Period 11 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_br", (getter)Common_get_ur_ec_p11_t4_br,(setter)Common_set_ur_ec_p11_t4_br, - PyDoc_STR("*float*: Period 11 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_sr", (getter)Common_get_ur_ec_p11_t4_sr,(setter)Common_set_ur_ec_p11_t4_sr, - PyDoc_STR("*float*: Period 11 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_ub", (getter)Common_get_ur_ec_p11_t4_ub,(setter)Common_set_ur_ec_p11_t4_ub, - PyDoc_STR("*float*: Period 11 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_br", (getter)Common_get_ur_ec_p11_t5_br,(setter)Common_set_ur_ec_p11_t5_br, - PyDoc_STR("*float*: Period 11 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_sr", (getter)Common_get_ur_ec_p11_t5_sr,(setter)Common_set_ur_ec_p11_t5_sr, - PyDoc_STR("*float*: Period 11 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_ub", (getter)Common_get_ur_ec_p11_t5_ub,(setter)Common_set_ur_ec_p11_t5_ub, - PyDoc_STR("*float*: Period 11 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_br", (getter)Common_get_ur_ec_p11_t6_br,(setter)Common_set_ur_ec_p11_t6_br, - PyDoc_STR("*float*: Period 11 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_sr", (getter)Common_get_ur_ec_p11_t6_sr,(setter)Common_set_ur_ec_p11_t6_sr, - PyDoc_STR("*float*: Period 11 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_ub", (getter)Common_get_ur_ec_p11_t6_ub,(setter)Common_set_ur_ec_p11_t6_ub, - PyDoc_STR("*float*: Period 11 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_br", (getter)Common_get_ur_ec_p12_t1_br,(setter)Common_set_ur_ec_p12_t1_br, - PyDoc_STR("*float*: Period 12 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_sr", (getter)Common_get_ur_ec_p12_t1_sr,(setter)Common_set_ur_ec_p12_t1_sr, - PyDoc_STR("*float*: Period 12 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_ub", (getter)Common_get_ur_ec_p12_t1_ub,(setter)Common_set_ur_ec_p12_t1_ub, - PyDoc_STR("*float*: Period 12 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_br", (getter)Common_get_ur_ec_p12_t2_br,(setter)Common_set_ur_ec_p12_t2_br, - PyDoc_STR("*float*: Period 12 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_sr", (getter)Common_get_ur_ec_p12_t2_sr,(setter)Common_set_ur_ec_p12_t2_sr, - PyDoc_STR("*float*: Period 12 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_ub", (getter)Common_get_ur_ec_p12_t2_ub,(setter)Common_set_ur_ec_p12_t2_ub, - PyDoc_STR("*float*: Period 12 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_br", (getter)Common_get_ur_ec_p12_t3_br,(setter)Common_set_ur_ec_p12_t3_br, - PyDoc_STR("*float*: Period 12 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_sr", (getter)Common_get_ur_ec_p12_t3_sr,(setter)Common_set_ur_ec_p12_t3_sr, - PyDoc_STR("*float*: Period 12 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_ub", (getter)Common_get_ur_ec_p12_t3_ub,(setter)Common_set_ur_ec_p12_t3_ub, - PyDoc_STR("*float*: Period 12 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_br", (getter)Common_get_ur_ec_p12_t4_br,(setter)Common_set_ur_ec_p12_t4_br, - PyDoc_STR("*float*: Period 12 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_sr", (getter)Common_get_ur_ec_p12_t4_sr,(setter)Common_set_ur_ec_p12_t4_sr, - PyDoc_STR("*float*: Period 12 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_ub", (getter)Common_get_ur_ec_p12_t4_ub,(setter)Common_set_ur_ec_p12_t4_ub, - PyDoc_STR("*float*: Period 12 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_br", (getter)Common_get_ur_ec_p12_t5_br,(setter)Common_set_ur_ec_p12_t5_br, - PyDoc_STR("*float*: Period 12 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_sr", (getter)Common_get_ur_ec_p12_t5_sr,(setter)Common_set_ur_ec_p12_t5_sr, - PyDoc_STR("*float*: Period 12 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_ub", (getter)Common_get_ur_ec_p12_t5_ub,(setter)Common_set_ur_ec_p12_t5_ub, - PyDoc_STR("*float*: Period 12 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_br", (getter)Common_get_ur_ec_p12_t6_br,(setter)Common_set_ur_ec_p12_t6_br, - PyDoc_STR("*float*: Period 12 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_sr", (getter)Common_get_ur_ec_p12_t6_sr,(setter)Common_set_ur_ec_p12_t6_sr, - PyDoc_STR("*float*: Period 12 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_ub", (getter)Common_get_ur_ec_p12_t6_ub,(setter)Common_set_ur_ec_p12_t6_ub, - PyDoc_STR("*float*: Period 12 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_br", (getter)Common_get_ur_ec_p1_t1_br,(setter)Common_set_ur_ec_p1_t1_br, - PyDoc_STR("*float*: Period 1 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_sr", (getter)Common_get_ur_ec_p1_t1_sr,(setter)Common_set_ur_ec_p1_t1_sr, - PyDoc_STR("*float*: Period 1 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_ub", (getter)Common_get_ur_ec_p1_t1_ub,(setter)Common_set_ur_ec_p1_t1_ub, - PyDoc_STR("*float*: Period 1 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_br", (getter)Common_get_ur_ec_p1_t2_br,(setter)Common_set_ur_ec_p1_t2_br, - PyDoc_STR("*float*: Period 1 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_sr", (getter)Common_get_ur_ec_p1_t2_sr,(setter)Common_set_ur_ec_p1_t2_sr, - PyDoc_STR("*float*: Period 1 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_ub", (getter)Common_get_ur_ec_p1_t2_ub,(setter)Common_set_ur_ec_p1_t2_ub, - PyDoc_STR("*float*: Period 1 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_br", (getter)Common_get_ur_ec_p1_t3_br,(setter)Common_set_ur_ec_p1_t3_br, - PyDoc_STR("*float*: Period 1 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_sr", (getter)Common_get_ur_ec_p1_t3_sr,(setter)Common_set_ur_ec_p1_t3_sr, - PyDoc_STR("*float*: Period 1 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_ub", (getter)Common_get_ur_ec_p1_t3_ub,(setter)Common_set_ur_ec_p1_t3_ub, - PyDoc_STR("*float*: Period 1 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_br", (getter)Common_get_ur_ec_p1_t4_br,(setter)Common_set_ur_ec_p1_t4_br, - PyDoc_STR("*float*: Period 1 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_sr", (getter)Common_get_ur_ec_p1_t4_sr,(setter)Common_set_ur_ec_p1_t4_sr, - PyDoc_STR("*float*: Period 1 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_ub", (getter)Common_get_ur_ec_p1_t4_ub,(setter)Common_set_ur_ec_p1_t4_ub, - PyDoc_STR("*float*: Period 1 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_br", (getter)Common_get_ur_ec_p1_t5_br,(setter)Common_set_ur_ec_p1_t5_br, - PyDoc_STR("*float*: Period 1 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_sr", (getter)Common_get_ur_ec_p1_t5_sr,(setter)Common_set_ur_ec_p1_t5_sr, - PyDoc_STR("*float*: Period 1 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_ub", (getter)Common_get_ur_ec_p1_t5_ub,(setter)Common_set_ur_ec_p1_t5_ub, - PyDoc_STR("*float*: Period 1 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_br", (getter)Common_get_ur_ec_p1_t6_br,(setter)Common_set_ur_ec_p1_t6_br, - PyDoc_STR("*float*: Period 1 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_sr", (getter)Common_get_ur_ec_p1_t6_sr,(setter)Common_set_ur_ec_p1_t6_sr, - PyDoc_STR("*float*: Period 1 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_ub", (getter)Common_get_ur_ec_p1_t6_ub,(setter)Common_set_ur_ec_p1_t6_ub, - PyDoc_STR("*float*: Period 1 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_br", (getter)Common_get_ur_ec_p2_t1_br,(setter)Common_set_ur_ec_p2_t1_br, - PyDoc_STR("*float*: Period 2 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_sr", (getter)Common_get_ur_ec_p2_t1_sr,(setter)Common_set_ur_ec_p2_t1_sr, - PyDoc_STR("*float*: Period 2 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_ub", (getter)Common_get_ur_ec_p2_t1_ub,(setter)Common_set_ur_ec_p2_t1_ub, - PyDoc_STR("*float*: Period 2 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_br", (getter)Common_get_ur_ec_p2_t2_br,(setter)Common_set_ur_ec_p2_t2_br, - PyDoc_STR("*float*: Period 2 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_sr", (getter)Common_get_ur_ec_p2_t2_sr,(setter)Common_set_ur_ec_p2_t2_sr, - PyDoc_STR("*float*: Period 2 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_ub", (getter)Common_get_ur_ec_p2_t2_ub,(setter)Common_set_ur_ec_p2_t2_ub, - PyDoc_STR("*float*: Period 2 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_br", (getter)Common_get_ur_ec_p2_t3_br,(setter)Common_set_ur_ec_p2_t3_br, - PyDoc_STR("*float*: Period 2 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_sr", (getter)Common_get_ur_ec_p2_t3_sr,(setter)Common_set_ur_ec_p2_t3_sr, - PyDoc_STR("*float*: Period 2 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_ub", (getter)Common_get_ur_ec_p2_t3_ub,(setter)Common_set_ur_ec_p2_t3_ub, - PyDoc_STR("*float*: Period 2 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_br", (getter)Common_get_ur_ec_p2_t4_br,(setter)Common_set_ur_ec_p2_t4_br, - PyDoc_STR("*float*: Period 2 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_sr", (getter)Common_get_ur_ec_p2_t4_sr,(setter)Common_set_ur_ec_p2_t4_sr, - PyDoc_STR("*float*: Period 2 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_ub", (getter)Common_get_ur_ec_p2_t4_ub,(setter)Common_set_ur_ec_p2_t4_ub, - PyDoc_STR("*float*: Period 2 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_br", (getter)Common_get_ur_ec_p2_t5_br,(setter)Common_set_ur_ec_p2_t5_br, - PyDoc_STR("*float*: Period 2 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_sr", (getter)Common_get_ur_ec_p2_t5_sr,(setter)Common_set_ur_ec_p2_t5_sr, - PyDoc_STR("*float*: Period 2 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_ub", (getter)Common_get_ur_ec_p2_t5_ub,(setter)Common_set_ur_ec_p2_t5_ub, - PyDoc_STR("*float*: Period 2 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_br", (getter)Common_get_ur_ec_p2_t6_br,(setter)Common_set_ur_ec_p2_t6_br, - PyDoc_STR("*float*: Period 2 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_sr", (getter)Common_get_ur_ec_p2_t6_sr,(setter)Common_set_ur_ec_p2_t6_sr, - PyDoc_STR("*float*: Period 2 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_ub", (getter)Common_get_ur_ec_p2_t6_ub,(setter)Common_set_ur_ec_p2_t6_ub, - PyDoc_STR("*float*: Period 2 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_br", (getter)Common_get_ur_ec_p3_t1_br,(setter)Common_set_ur_ec_p3_t1_br, - PyDoc_STR("*float*: Period 3 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_sr", (getter)Common_get_ur_ec_p3_t1_sr,(setter)Common_set_ur_ec_p3_t1_sr, - PyDoc_STR("*float*: Period 3 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_ub", (getter)Common_get_ur_ec_p3_t1_ub,(setter)Common_set_ur_ec_p3_t1_ub, - PyDoc_STR("*float*: Period 3 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_br", (getter)Common_get_ur_ec_p3_t2_br,(setter)Common_set_ur_ec_p3_t2_br, - PyDoc_STR("*float*: Period 3 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_sr", (getter)Common_get_ur_ec_p3_t2_sr,(setter)Common_set_ur_ec_p3_t2_sr, - PyDoc_STR("*float*: Period 3 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_ub", (getter)Common_get_ur_ec_p3_t2_ub,(setter)Common_set_ur_ec_p3_t2_ub, - PyDoc_STR("*float*: Period 3 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_br", (getter)Common_get_ur_ec_p3_t3_br,(setter)Common_set_ur_ec_p3_t3_br, - PyDoc_STR("*float*: Period 3 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_sr", (getter)Common_get_ur_ec_p3_t3_sr,(setter)Common_set_ur_ec_p3_t3_sr, - PyDoc_STR("*float*: Period 3 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_ub", (getter)Common_get_ur_ec_p3_t3_ub,(setter)Common_set_ur_ec_p3_t3_ub, - PyDoc_STR("*float*: Period 3 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_br", (getter)Common_get_ur_ec_p3_t4_br,(setter)Common_set_ur_ec_p3_t4_br, - PyDoc_STR("*float*: Period 3 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_sr", (getter)Common_get_ur_ec_p3_t4_sr,(setter)Common_set_ur_ec_p3_t4_sr, - PyDoc_STR("*float*: Period 3 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_ub", (getter)Common_get_ur_ec_p3_t4_ub,(setter)Common_set_ur_ec_p3_t4_ub, - PyDoc_STR("*float*: Period 3 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_br", (getter)Common_get_ur_ec_p3_t5_br,(setter)Common_set_ur_ec_p3_t5_br, - PyDoc_STR("*float*: Period 3 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_sr", (getter)Common_get_ur_ec_p3_t5_sr,(setter)Common_set_ur_ec_p3_t5_sr, - PyDoc_STR("*float*: Period 3 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_ub", (getter)Common_get_ur_ec_p3_t5_ub,(setter)Common_set_ur_ec_p3_t5_ub, - PyDoc_STR("*float*: Period 3 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_br", (getter)Common_get_ur_ec_p3_t6_br,(setter)Common_set_ur_ec_p3_t6_br, - PyDoc_STR("*float*: Period 3 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_sr", (getter)Common_get_ur_ec_p3_t6_sr,(setter)Common_set_ur_ec_p3_t6_sr, - PyDoc_STR("*float*: Period 3 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_ub", (getter)Common_get_ur_ec_p3_t6_ub,(setter)Common_set_ur_ec_p3_t6_ub, - PyDoc_STR("*float*: Period 3 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_br", (getter)Common_get_ur_ec_p4_t1_br,(setter)Common_set_ur_ec_p4_t1_br, - PyDoc_STR("*float*: Period 4 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_sr", (getter)Common_get_ur_ec_p4_t1_sr,(setter)Common_set_ur_ec_p4_t1_sr, - PyDoc_STR("*float*: Period 4 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_ub", (getter)Common_get_ur_ec_p4_t1_ub,(setter)Common_set_ur_ec_p4_t1_ub, - PyDoc_STR("*float*: Period 4 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_br", (getter)Common_get_ur_ec_p4_t2_br,(setter)Common_set_ur_ec_p4_t2_br, - PyDoc_STR("*float*: Period 4 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_sr", (getter)Common_get_ur_ec_p4_t2_sr,(setter)Common_set_ur_ec_p4_t2_sr, - PyDoc_STR("*float*: Period 4 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_ub", (getter)Common_get_ur_ec_p4_t2_ub,(setter)Common_set_ur_ec_p4_t2_ub, - PyDoc_STR("*float*: Period 4 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_br", (getter)Common_get_ur_ec_p4_t3_br,(setter)Common_set_ur_ec_p4_t3_br, - PyDoc_STR("*float*: Period 4 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_sr", (getter)Common_get_ur_ec_p4_t3_sr,(setter)Common_set_ur_ec_p4_t3_sr, - PyDoc_STR("*float*: Period 4 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_ub", (getter)Common_get_ur_ec_p4_t3_ub,(setter)Common_set_ur_ec_p4_t3_ub, - PyDoc_STR("*float*: Period 4 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_br", (getter)Common_get_ur_ec_p4_t4_br,(setter)Common_set_ur_ec_p4_t4_br, - PyDoc_STR("*float*: Period 4 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_sr", (getter)Common_get_ur_ec_p4_t4_sr,(setter)Common_set_ur_ec_p4_t4_sr, - PyDoc_STR("*float*: Period 4 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_ub", (getter)Common_get_ur_ec_p4_t4_ub,(setter)Common_set_ur_ec_p4_t4_ub, - PyDoc_STR("*float*: Period 4 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_br", (getter)Common_get_ur_ec_p4_t5_br,(setter)Common_set_ur_ec_p4_t5_br, - PyDoc_STR("*float*: Period 4 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_sr", (getter)Common_get_ur_ec_p4_t5_sr,(setter)Common_set_ur_ec_p4_t5_sr, - PyDoc_STR("*float*: Period 4 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_ub", (getter)Common_get_ur_ec_p4_t5_ub,(setter)Common_set_ur_ec_p4_t5_ub, - PyDoc_STR("*float*: Period 4 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_br", (getter)Common_get_ur_ec_p4_t6_br,(setter)Common_set_ur_ec_p4_t6_br, - PyDoc_STR("*float*: Period 4 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_sr", (getter)Common_get_ur_ec_p4_t6_sr,(setter)Common_set_ur_ec_p4_t6_sr, - PyDoc_STR("*float*: Period 4 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_ub", (getter)Common_get_ur_ec_p4_t6_ub,(setter)Common_set_ur_ec_p4_t6_ub, - PyDoc_STR("*float*: Period 4 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_br", (getter)Common_get_ur_ec_p5_t1_br,(setter)Common_set_ur_ec_p5_t1_br, - PyDoc_STR("*float*: Period 5 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_sr", (getter)Common_get_ur_ec_p5_t1_sr,(setter)Common_set_ur_ec_p5_t1_sr, - PyDoc_STR("*float*: Period 5 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_ub", (getter)Common_get_ur_ec_p5_t1_ub,(setter)Common_set_ur_ec_p5_t1_ub, - PyDoc_STR("*float*: Period 5 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_br", (getter)Common_get_ur_ec_p5_t2_br,(setter)Common_set_ur_ec_p5_t2_br, - PyDoc_STR("*float*: Period 5 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_sr", (getter)Common_get_ur_ec_p5_t2_sr,(setter)Common_set_ur_ec_p5_t2_sr, - PyDoc_STR("*float*: Period 5 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_ub", (getter)Common_get_ur_ec_p5_t2_ub,(setter)Common_set_ur_ec_p5_t2_ub, - PyDoc_STR("*float*: Period 5 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_br", (getter)Common_get_ur_ec_p5_t3_br,(setter)Common_set_ur_ec_p5_t3_br, - PyDoc_STR("*float*: Period 5 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_sr", (getter)Common_get_ur_ec_p5_t3_sr,(setter)Common_set_ur_ec_p5_t3_sr, - PyDoc_STR("*float*: Period 5 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_ub", (getter)Common_get_ur_ec_p5_t3_ub,(setter)Common_set_ur_ec_p5_t3_ub, - PyDoc_STR("*float*: Period 5 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_br", (getter)Common_get_ur_ec_p5_t4_br,(setter)Common_set_ur_ec_p5_t4_br, - PyDoc_STR("*float*: Period 5 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_sr", (getter)Common_get_ur_ec_p5_t4_sr,(setter)Common_set_ur_ec_p5_t4_sr, - PyDoc_STR("*float*: Period 5 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_ub", (getter)Common_get_ur_ec_p5_t4_ub,(setter)Common_set_ur_ec_p5_t4_ub, - PyDoc_STR("*float*: Period 5 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_br", (getter)Common_get_ur_ec_p5_t5_br,(setter)Common_set_ur_ec_p5_t5_br, - PyDoc_STR("*float*: Period 5 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_sr", (getter)Common_get_ur_ec_p5_t5_sr,(setter)Common_set_ur_ec_p5_t5_sr, - PyDoc_STR("*float*: Period 5 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_ub", (getter)Common_get_ur_ec_p5_t5_ub,(setter)Common_set_ur_ec_p5_t5_ub, - PyDoc_STR("*float*: Period 5 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_br", (getter)Common_get_ur_ec_p5_t6_br,(setter)Common_set_ur_ec_p5_t6_br, - PyDoc_STR("*float*: Period 5 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_sr", (getter)Common_get_ur_ec_p5_t6_sr,(setter)Common_set_ur_ec_p5_t6_sr, - PyDoc_STR("*float*: Period 5 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_ub", (getter)Common_get_ur_ec_p5_t6_ub,(setter)Common_set_ur_ec_p5_t6_ub, - PyDoc_STR("*float*: Period 5 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_br", (getter)Common_get_ur_ec_p6_t1_br,(setter)Common_set_ur_ec_p6_t1_br, - PyDoc_STR("*float*: Period 6 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_sr", (getter)Common_get_ur_ec_p6_t1_sr,(setter)Common_set_ur_ec_p6_t1_sr, - PyDoc_STR("*float*: Period 6 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_ub", (getter)Common_get_ur_ec_p6_t1_ub,(setter)Common_set_ur_ec_p6_t1_ub, - PyDoc_STR("*float*: Period 6 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_br", (getter)Common_get_ur_ec_p6_t2_br,(setter)Common_set_ur_ec_p6_t2_br, - PyDoc_STR("*float*: Period 6 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_sr", (getter)Common_get_ur_ec_p6_t2_sr,(setter)Common_set_ur_ec_p6_t2_sr, - PyDoc_STR("*float*: Period 6 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_ub", (getter)Common_get_ur_ec_p6_t2_ub,(setter)Common_set_ur_ec_p6_t2_ub, - PyDoc_STR("*float*: Period 6 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_br", (getter)Common_get_ur_ec_p6_t3_br,(setter)Common_set_ur_ec_p6_t3_br, - PyDoc_STR("*float*: Period 6 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_sr", (getter)Common_get_ur_ec_p6_t3_sr,(setter)Common_set_ur_ec_p6_t3_sr, - PyDoc_STR("*float*: Period 6 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_ub", (getter)Common_get_ur_ec_p6_t3_ub,(setter)Common_set_ur_ec_p6_t3_ub, - PyDoc_STR("*float*: Period 6 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_br", (getter)Common_get_ur_ec_p6_t4_br,(setter)Common_set_ur_ec_p6_t4_br, - PyDoc_STR("*float*: Period 6 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_sr", (getter)Common_get_ur_ec_p6_t4_sr,(setter)Common_set_ur_ec_p6_t4_sr, - PyDoc_STR("*float*: Period 6 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_ub", (getter)Common_get_ur_ec_p6_t4_ub,(setter)Common_set_ur_ec_p6_t4_ub, - PyDoc_STR("*float*: Period 6 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_br", (getter)Common_get_ur_ec_p6_t5_br,(setter)Common_set_ur_ec_p6_t5_br, - PyDoc_STR("*float*: Period 6 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_sr", (getter)Common_get_ur_ec_p6_t5_sr,(setter)Common_set_ur_ec_p6_t5_sr, - PyDoc_STR("*float*: Period 6 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_ub", (getter)Common_get_ur_ec_p6_t5_ub,(setter)Common_set_ur_ec_p6_t5_ub, - PyDoc_STR("*float*: Period 6 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_br", (getter)Common_get_ur_ec_p6_t6_br,(setter)Common_set_ur_ec_p6_t6_br, - PyDoc_STR("*float*: Period 6 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_sr", (getter)Common_get_ur_ec_p6_t6_sr,(setter)Common_set_ur_ec_p6_t6_sr, - PyDoc_STR("*float*: Period 6 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_ub", (getter)Common_get_ur_ec_p6_t6_ub,(setter)Common_set_ur_ec_p6_t6_ub, - PyDoc_STR("*float*: Period 6 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_br", (getter)Common_get_ur_ec_p7_t1_br,(setter)Common_set_ur_ec_p7_t1_br, - PyDoc_STR("*float*: Period 7 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_sr", (getter)Common_get_ur_ec_p7_t1_sr,(setter)Common_set_ur_ec_p7_t1_sr, - PyDoc_STR("*float*: Period 7 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_ub", (getter)Common_get_ur_ec_p7_t1_ub,(setter)Common_set_ur_ec_p7_t1_ub, - PyDoc_STR("*float*: Period 7 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_br", (getter)Common_get_ur_ec_p7_t2_br,(setter)Common_set_ur_ec_p7_t2_br, - PyDoc_STR("*float*: Period 7 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_sr", (getter)Common_get_ur_ec_p7_t2_sr,(setter)Common_set_ur_ec_p7_t2_sr, - PyDoc_STR("*float*: Period 7 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_ub", (getter)Common_get_ur_ec_p7_t2_ub,(setter)Common_set_ur_ec_p7_t2_ub, - PyDoc_STR("*float*: Period 7 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_br", (getter)Common_get_ur_ec_p7_t3_br,(setter)Common_set_ur_ec_p7_t3_br, - PyDoc_STR("*float*: Period 7 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_sr", (getter)Common_get_ur_ec_p7_t3_sr,(setter)Common_set_ur_ec_p7_t3_sr, - PyDoc_STR("*float*: Period 7 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_ub", (getter)Common_get_ur_ec_p7_t3_ub,(setter)Common_set_ur_ec_p7_t3_ub, - PyDoc_STR("*float*: Period 7 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_br", (getter)Common_get_ur_ec_p7_t4_br,(setter)Common_set_ur_ec_p7_t4_br, - PyDoc_STR("*float*: Period 7 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_sr", (getter)Common_get_ur_ec_p7_t4_sr,(setter)Common_set_ur_ec_p7_t4_sr, - PyDoc_STR("*float*: Period 7 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_ub", (getter)Common_get_ur_ec_p7_t4_ub,(setter)Common_set_ur_ec_p7_t4_ub, - PyDoc_STR("*float*: Period 7 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_br", (getter)Common_get_ur_ec_p7_t5_br,(setter)Common_set_ur_ec_p7_t5_br, - PyDoc_STR("*float*: Period 7 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_sr", (getter)Common_get_ur_ec_p7_t5_sr,(setter)Common_set_ur_ec_p7_t5_sr, - PyDoc_STR("*float*: Period 7 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_ub", (getter)Common_get_ur_ec_p7_t5_ub,(setter)Common_set_ur_ec_p7_t5_ub, - PyDoc_STR("*float*: Period 7 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_br", (getter)Common_get_ur_ec_p7_t6_br,(setter)Common_set_ur_ec_p7_t6_br, - PyDoc_STR("*float*: Period 7 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_sr", (getter)Common_get_ur_ec_p7_t6_sr,(setter)Common_set_ur_ec_p7_t6_sr, - PyDoc_STR("*float*: Period 7 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_ub", (getter)Common_get_ur_ec_p7_t6_ub,(setter)Common_set_ur_ec_p7_t6_ub, - PyDoc_STR("*float*: Period 7 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_br", (getter)Common_get_ur_ec_p8_t1_br,(setter)Common_set_ur_ec_p8_t1_br, - PyDoc_STR("*float*: Period 8 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_sr", (getter)Common_get_ur_ec_p8_t1_sr,(setter)Common_set_ur_ec_p8_t1_sr, - PyDoc_STR("*float*: Period 8 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_ub", (getter)Common_get_ur_ec_p8_t1_ub,(setter)Common_set_ur_ec_p8_t1_ub, - PyDoc_STR("*float*: Period 8 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_br", (getter)Common_get_ur_ec_p8_t2_br,(setter)Common_set_ur_ec_p8_t2_br, - PyDoc_STR("*float*: Period 8 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_sr", (getter)Common_get_ur_ec_p8_t2_sr,(setter)Common_set_ur_ec_p8_t2_sr, - PyDoc_STR("*float*: Period 8 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_ub", (getter)Common_get_ur_ec_p8_t2_ub,(setter)Common_set_ur_ec_p8_t2_ub, - PyDoc_STR("*float*: Period 8 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_br", (getter)Common_get_ur_ec_p8_t3_br,(setter)Common_set_ur_ec_p8_t3_br, - PyDoc_STR("*float*: Period 8 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_sr", (getter)Common_get_ur_ec_p8_t3_sr,(setter)Common_set_ur_ec_p8_t3_sr, - PyDoc_STR("*float*: Period 8 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_ub", (getter)Common_get_ur_ec_p8_t3_ub,(setter)Common_set_ur_ec_p8_t3_ub, - PyDoc_STR("*float*: Period 8 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_br", (getter)Common_get_ur_ec_p8_t4_br,(setter)Common_set_ur_ec_p8_t4_br, - PyDoc_STR("*float*: Period 8 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_sr", (getter)Common_get_ur_ec_p8_t4_sr,(setter)Common_set_ur_ec_p8_t4_sr, - PyDoc_STR("*float*: Period 8 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_ub", (getter)Common_get_ur_ec_p8_t4_ub,(setter)Common_set_ur_ec_p8_t4_ub, - PyDoc_STR("*float*: Period 8 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_br", (getter)Common_get_ur_ec_p8_t5_br,(setter)Common_set_ur_ec_p8_t5_br, - PyDoc_STR("*float*: Period 8 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_sr", (getter)Common_get_ur_ec_p8_t5_sr,(setter)Common_set_ur_ec_p8_t5_sr, - PyDoc_STR("*float*: Period 8 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_ub", (getter)Common_get_ur_ec_p8_t5_ub,(setter)Common_set_ur_ec_p8_t5_ub, - PyDoc_STR("*float*: Period 8 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_br", (getter)Common_get_ur_ec_p8_t6_br,(setter)Common_set_ur_ec_p8_t6_br, - PyDoc_STR("*float*: Period 8 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_sr", (getter)Common_get_ur_ec_p8_t6_sr,(setter)Common_set_ur_ec_p8_t6_sr, - PyDoc_STR("*float*: Period 8 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_ub", (getter)Common_get_ur_ec_p8_t6_ub,(setter)Common_set_ur_ec_p8_t6_ub, - PyDoc_STR("*float*: Period 8 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_br", (getter)Common_get_ur_ec_p9_t1_br,(setter)Common_set_ur_ec_p9_t1_br, - PyDoc_STR("*float*: Period 9 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_sr", (getter)Common_get_ur_ec_p9_t1_sr,(setter)Common_set_ur_ec_p9_t1_sr, - PyDoc_STR("*float*: Period 9 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_ub", (getter)Common_get_ur_ec_p9_t1_ub,(setter)Common_set_ur_ec_p9_t1_ub, - PyDoc_STR("*float*: Period 9 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_br", (getter)Common_get_ur_ec_p9_t2_br,(setter)Common_set_ur_ec_p9_t2_br, - PyDoc_STR("*float*: Period 9 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_sr", (getter)Common_get_ur_ec_p9_t2_sr,(setter)Common_set_ur_ec_p9_t2_sr, - PyDoc_STR("*float*: Period 9 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_ub", (getter)Common_get_ur_ec_p9_t2_ub,(setter)Common_set_ur_ec_p9_t2_ub, - PyDoc_STR("*float*: Period 9 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_br", (getter)Common_get_ur_ec_p9_t3_br,(setter)Common_set_ur_ec_p9_t3_br, - PyDoc_STR("*float*: Period 9 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_sr", (getter)Common_get_ur_ec_p9_t3_sr,(setter)Common_set_ur_ec_p9_t3_sr, - PyDoc_STR("*float*: Period 9 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_ub", (getter)Common_get_ur_ec_p9_t3_ub,(setter)Common_set_ur_ec_p9_t3_ub, - PyDoc_STR("*float*: Period 9 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_br", (getter)Common_get_ur_ec_p9_t4_br,(setter)Common_set_ur_ec_p9_t4_br, - PyDoc_STR("*float*: Period 9 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_sr", (getter)Common_get_ur_ec_p9_t4_sr,(setter)Common_set_ur_ec_p9_t4_sr, - PyDoc_STR("*float*: Period 9 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_ub", (getter)Common_get_ur_ec_p9_t4_ub,(setter)Common_set_ur_ec_p9_t4_ub, - PyDoc_STR("*float*: Period 9 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_br", (getter)Common_get_ur_ec_p9_t5_br,(setter)Common_set_ur_ec_p9_t5_br, - PyDoc_STR("*float*: Period 9 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_sr", (getter)Common_get_ur_ec_p9_t5_sr,(setter)Common_set_ur_ec_p9_t5_sr, - PyDoc_STR("*float*: Period 9 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_ub", (getter)Common_get_ur_ec_p9_t5_ub,(setter)Common_set_ur_ec_p9_t5_ub, - PyDoc_STR("*float*: Period 9 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_br", (getter)Common_get_ur_ec_p9_t6_br,(setter)Common_set_ur_ec_p9_t6_br, - PyDoc_STR("*float*: Period 9 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_sr", (getter)Common_get_ur_ec_p9_t6_sr,(setter)Common_set_ur_ec_p9_t6_sr, - PyDoc_STR("*float*: Period 9 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_ub", (getter)Common_get_ur_ec_p9_t6_ub,(setter)Common_set_ur_ec_p9_t6_ub, - PyDoc_STR("*float*: Period 9 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_sched_weekday", (getter)Common_get_ur_ec_sched_weekday,(setter)Common_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy Charge Weekday Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_ec_enable=1"), + PyDoc_STR("*sequence[sequence]*: Energy Charge Weekday Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_ec_enable=1"), NULL}, {"ur_ec_sched_weekend", (getter)Common_get_ur_ec_sched_weekend,(setter)Common_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy Charge Weekend Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_ec_enable=1"), + PyDoc_STR("*sequence[sequence]*: Energy Charge Weekend Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_ec_enable=1"), NULL}, {"ur_enable_net_metering", (getter)Common_get_ur_enable_net_metering,(setter)Common_set_ur_enable_net_metering, - PyDoc_STR("*float*: Enable net metering [0/1]\n\n*Info*: Enforce net metering\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Enable net metering [0/1]\n\n**Info:**\nEnforce net metering\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_flat_buy_rate", (getter)Common_get_ur_flat_buy_rate,(setter)Common_set_ur_flat_buy_rate, - PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ur_flat_sell_rate", (getter)Common_get_ur_flat_sell_rate,(setter)Common_set_ur_flat_sell_rate, - PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)Common_get_ur_monthly_fixed_charge,(setter)Common_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)Common_get_ur_nm_yearend_sell_rate,(setter)Common_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -8021,11 +8021,11 @@ AnnualOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef AnnualOutput_methods[] = { {"assign", (PyCFunction)AnnualOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AnnualOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)AnnualOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8043,7 +8043,7 @@ AnnualOutput_set_degradation(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef AnnualOutput_getset[] = { {"degradation", (getter)AnnualOutput_get_degradation,(setter)AnnualOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -8158,11 +8158,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -9036,12 +9036,11 @@ static PyMethodDef Utilityrate2Module_methods[] = { {"new", Utilityrate2_new, METH_VARARGS, PyDoc_STR("new() -> Utilityrate2")}, {"default", Utilityrate2_default, METH_VARARGS, - PyDoc_STR("default(config) -> Utilityrate2\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Utilityrate2\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Utilityrate2_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Utilityrate2\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Utilityrate2\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Utilityrate2_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Utilityrate2\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Utilityrate2\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Utilityrate3.c b/modules/Utilityrate3.c index 4203a659..9614d462 100644 --- a/modules/Utilityrate3.c +++ b/modules/Utilityrate3.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -6343,1570 +6343,1570 @@ Common_set_ur_nm_yearend_sell_rate(VarGroupObject *self, PyObject *value, void * static PyGetSetDef Common_getset[] = { {"analysis_period", (getter)Common_get_analysis_period,(setter)Common_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"load_escalation", (getter)Common_get_load_escalation,(setter)Common_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rate_escalation", (getter)Common_get_rate_escalation,(setter)Common_set_rate_escalation, - PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual utility rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)Common_get_system_use_lifetime_output,(setter)Common_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"ur_annual_min_charge", (getter)Common_get_ur_annual_min_charge,(setter)Common_set_ur_annual_min_charge, - PyDoc_STR("*float*: Annual minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Annual minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t1_dc", (getter)Common_get_ur_dc_apr_t1_dc,(setter)Common_set_ur_dc_apr_t1_dc, - PyDoc_STR("*float*: April Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t1_ub", (getter)Common_get_ur_dc_apr_t1_ub,(setter)Common_set_ur_dc_apr_t1_ub, - PyDoc_STR("*float*: April Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t2_dc", (getter)Common_get_ur_dc_apr_t2_dc,(setter)Common_set_ur_dc_apr_t2_dc, - PyDoc_STR("*float*: April Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t2_ub", (getter)Common_get_ur_dc_apr_t2_ub,(setter)Common_set_ur_dc_apr_t2_ub, - PyDoc_STR("*float*: April Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t3_dc", (getter)Common_get_ur_dc_apr_t3_dc,(setter)Common_set_ur_dc_apr_t3_dc, - PyDoc_STR("*float*: April Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t3_ub", (getter)Common_get_ur_dc_apr_t3_ub,(setter)Common_set_ur_dc_apr_t3_ub, - PyDoc_STR("*float*: April Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t4_dc", (getter)Common_get_ur_dc_apr_t4_dc,(setter)Common_set_ur_dc_apr_t4_dc, - PyDoc_STR("*float*: April Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t4_ub", (getter)Common_get_ur_dc_apr_t4_ub,(setter)Common_set_ur_dc_apr_t4_ub, - PyDoc_STR("*float*: April Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t5_dc", (getter)Common_get_ur_dc_apr_t5_dc,(setter)Common_set_ur_dc_apr_t5_dc, - PyDoc_STR("*float*: April Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t5_ub", (getter)Common_get_ur_dc_apr_t5_ub,(setter)Common_set_ur_dc_apr_t5_ub, - PyDoc_STR("*float*: April Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t6_dc", (getter)Common_get_ur_dc_apr_t6_dc,(setter)Common_set_ur_dc_apr_t6_dc, - PyDoc_STR("*float*: April Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_apr_t6_ub", (getter)Common_get_ur_dc_apr_t6_ub,(setter)Common_set_ur_dc_apr_t6_ub, - PyDoc_STR("*float*: April Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: April Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t1_dc", (getter)Common_get_ur_dc_aug_t1_dc,(setter)Common_set_ur_dc_aug_t1_dc, - PyDoc_STR("*float*: August Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t1_ub", (getter)Common_get_ur_dc_aug_t1_ub,(setter)Common_set_ur_dc_aug_t1_ub, - PyDoc_STR("*float*: August Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t2_dc", (getter)Common_get_ur_dc_aug_t2_dc,(setter)Common_set_ur_dc_aug_t2_dc, - PyDoc_STR("*float*: August Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t2_ub", (getter)Common_get_ur_dc_aug_t2_ub,(setter)Common_set_ur_dc_aug_t2_ub, - PyDoc_STR("*float*: August Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t3_dc", (getter)Common_get_ur_dc_aug_t3_dc,(setter)Common_set_ur_dc_aug_t3_dc, - PyDoc_STR("*float*: August Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t3_ub", (getter)Common_get_ur_dc_aug_t3_ub,(setter)Common_set_ur_dc_aug_t3_ub, - PyDoc_STR("*float*: August Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t4_dc", (getter)Common_get_ur_dc_aug_t4_dc,(setter)Common_set_ur_dc_aug_t4_dc, - PyDoc_STR("*float*: August Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t4_ub", (getter)Common_get_ur_dc_aug_t4_ub,(setter)Common_set_ur_dc_aug_t4_ub, - PyDoc_STR("*float*: August Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t5_dc", (getter)Common_get_ur_dc_aug_t5_dc,(setter)Common_set_ur_dc_aug_t5_dc, - PyDoc_STR("*float*: August Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t5_ub", (getter)Common_get_ur_dc_aug_t5_ub,(setter)Common_set_ur_dc_aug_t5_ub, - PyDoc_STR("*float*: August Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t6_dc", (getter)Common_get_ur_dc_aug_t6_dc,(setter)Common_set_ur_dc_aug_t6_dc, - PyDoc_STR("*float*: August Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_aug_t6_ub", (getter)Common_get_ur_dc_aug_t6_ub,(setter)Common_set_ur_dc_aug_t6_ub, - PyDoc_STR("*float*: August Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: August Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t1_dc", (getter)Common_get_ur_dc_dec_t1_dc,(setter)Common_set_ur_dc_dec_t1_dc, - PyDoc_STR("*float*: December Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t1_ub", (getter)Common_get_ur_dc_dec_t1_ub,(setter)Common_set_ur_dc_dec_t1_ub, - PyDoc_STR("*float*: December Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t2_dc", (getter)Common_get_ur_dc_dec_t2_dc,(setter)Common_set_ur_dc_dec_t2_dc, - PyDoc_STR("*float*: December Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t2_ub", (getter)Common_get_ur_dc_dec_t2_ub,(setter)Common_set_ur_dc_dec_t2_ub, - PyDoc_STR("*float*: December Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t3_dc", (getter)Common_get_ur_dc_dec_t3_dc,(setter)Common_set_ur_dc_dec_t3_dc, - PyDoc_STR("*float*: December Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t3_ub", (getter)Common_get_ur_dc_dec_t3_ub,(setter)Common_set_ur_dc_dec_t3_ub, - PyDoc_STR("*float*: December Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t4_dc", (getter)Common_get_ur_dc_dec_t4_dc,(setter)Common_set_ur_dc_dec_t4_dc, - PyDoc_STR("*float*: December Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t4_ub", (getter)Common_get_ur_dc_dec_t4_ub,(setter)Common_set_ur_dc_dec_t4_ub, - PyDoc_STR("*float*: December Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t5_dc", (getter)Common_get_ur_dc_dec_t5_dc,(setter)Common_set_ur_dc_dec_t5_dc, - PyDoc_STR("*float*: December Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t5_ub", (getter)Common_get_ur_dc_dec_t5_ub,(setter)Common_set_ur_dc_dec_t5_ub, - PyDoc_STR("*float*: December Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t6_dc", (getter)Common_get_ur_dc_dec_t6_dc,(setter)Common_set_ur_dc_dec_t6_dc, - PyDoc_STR("*float*: December Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_dec_t6_ub", (getter)Common_get_ur_dc_dec_t6_ub,(setter)Common_set_ur_dc_dec_t6_ub, - PyDoc_STR("*float*: December Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: December Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_enable", (getter)Common_get_ur_dc_enable,(setter)Common_set_ur_dc_enable, - PyDoc_STR("*float*: Enable Demand Charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Demand Charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t1_dc", (getter)Common_get_ur_dc_feb_t1_dc,(setter)Common_set_ur_dc_feb_t1_dc, - PyDoc_STR("*float*: February Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t1_ub", (getter)Common_get_ur_dc_feb_t1_ub,(setter)Common_set_ur_dc_feb_t1_ub, - PyDoc_STR("*float*: February Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t2_dc", (getter)Common_get_ur_dc_feb_t2_dc,(setter)Common_set_ur_dc_feb_t2_dc, - PyDoc_STR("*float*: February Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t2_ub", (getter)Common_get_ur_dc_feb_t2_ub,(setter)Common_set_ur_dc_feb_t2_ub, - PyDoc_STR("*float*: February Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t3_dc", (getter)Common_get_ur_dc_feb_t3_dc,(setter)Common_set_ur_dc_feb_t3_dc, - PyDoc_STR("*float*: February Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t3_ub", (getter)Common_get_ur_dc_feb_t3_ub,(setter)Common_set_ur_dc_feb_t3_ub, - PyDoc_STR("*float*: February Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t4_dc", (getter)Common_get_ur_dc_feb_t4_dc,(setter)Common_set_ur_dc_feb_t4_dc, - PyDoc_STR("*float*: February Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t4_ub", (getter)Common_get_ur_dc_feb_t4_ub,(setter)Common_set_ur_dc_feb_t4_ub, - PyDoc_STR("*float*: February Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t5_dc", (getter)Common_get_ur_dc_feb_t5_dc,(setter)Common_set_ur_dc_feb_t5_dc, - PyDoc_STR("*float*: February Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t5_ub", (getter)Common_get_ur_dc_feb_t5_ub,(setter)Common_set_ur_dc_feb_t5_ub, - PyDoc_STR("*float*: February Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t6_dc", (getter)Common_get_ur_dc_feb_t6_dc,(setter)Common_set_ur_dc_feb_t6_dc, - PyDoc_STR("*float*: February Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_feb_t6_ub", (getter)Common_get_ur_dc_feb_t6_ub,(setter)Common_set_ur_dc_feb_t6_ub, - PyDoc_STR("*float*: February Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: February Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t1_dc", (getter)Common_get_ur_dc_jan_t1_dc,(setter)Common_set_ur_dc_jan_t1_dc, - PyDoc_STR("*float*: January Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t1_ub", (getter)Common_get_ur_dc_jan_t1_ub,(setter)Common_set_ur_dc_jan_t1_ub, - PyDoc_STR("*float*: January Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t2_dc", (getter)Common_get_ur_dc_jan_t2_dc,(setter)Common_set_ur_dc_jan_t2_dc, - PyDoc_STR("*float*: January Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t2_ub", (getter)Common_get_ur_dc_jan_t2_ub,(setter)Common_set_ur_dc_jan_t2_ub, - PyDoc_STR("*float*: January Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t3_dc", (getter)Common_get_ur_dc_jan_t3_dc,(setter)Common_set_ur_dc_jan_t3_dc, - PyDoc_STR("*float*: January Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t3_ub", (getter)Common_get_ur_dc_jan_t3_ub,(setter)Common_set_ur_dc_jan_t3_ub, - PyDoc_STR("*float*: January Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t4_dc", (getter)Common_get_ur_dc_jan_t4_dc,(setter)Common_set_ur_dc_jan_t4_dc, - PyDoc_STR("*float*: January Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t4_ub", (getter)Common_get_ur_dc_jan_t4_ub,(setter)Common_set_ur_dc_jan_t4_ub, - PyDoc_STR("*float*: January Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t5_dc", (getter)Common_get_ur_dc_jan_t5_dc,(setter)Common_set_ur_dc_jan_t5_dc, - PyDoc_STR("*float*: January Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t5_ub", (getter)Common_get_ur_dc_jan_t5_ub,(setter)Common_set_ur_dc_jan_t5_ub, - PyDoc_STR("*float*: January Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t6_dc", (getter)Common_get_ur_dc_jan_t6_dc,(setter)Common_set_ur_dc_jan_t6_dc, - PyDoc_STR("*float*: January Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jan_t6_ub", (getter)Common_get_ur_dc_jan_t6_ub,(setter)Common_set_ur_dc_jan_t6_ub, - PyDoc_STR("*float*: January Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: January Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t1_dc", (getter)Common_get_ur_dc_jul_t1_dc,(setter)Common_set_ur_dc_jul_t1_dc, - PyDoc_STR("*float*: July Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t1_ub", (getter)Common_get_ur_dc_jul_t1_ub,(setter)Common_set_ur_dc_jul_t1_ub, - PyDoc_STR("*float*: July Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t2_dc", (getter)Common_get_ur_dc_jul_t2_dc,(setter)Common_set_ur_dc_jul_t2_dc, - PyDoc_STR("*float*: July Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t2_ub", (getter)Common_get_ur_dc_jul_t2_ub,(setter)Common_set_ur_dc_jul_t2_ub, - PyDoc_STR("*float*: July Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t3_dc", (getter)Common_get_ur_dc_jul_t3_dc,(setter)Common_set_ur_dc_jul_t3_dc, - PyDoc_STR("*float*: July Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t3_ub", (getter)Common_get_ur_dc_jul_t3_ub,(setter)Common_set_ur_dc_jul_t3_ub, - PyDoc_STR("*float*: July Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t4_dc", (getter)Common_get_ur_dc_jul_t4_dc,(setter)Common_set_ur_dc_jul_t4_dc, - PyDoc_STR("*float*: July Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t4_ub", (getter)Common_get_ur_dc_jul_t4_ub,(setter)Common_set_ur_dc_jul_t4_ub, - PyDoc_STR("*float*: July Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t5_dc", (getter)Common_get_ur_dc_jul_t5_dc,(setter)Common_set_ur_dc_jul_t5_dc, - PyDoc_STR("*float*: July Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t5_ub", (getter)Common_get_ur_dc_jul_t5_ub,(setter)Common_set_ur_dc_jul_t5_ub, - PyDoc_STR("*float*: July Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t6_dc", (getter)Common_get_ur_dc_jul_t6_dc,(setter)Common_set_ur_dc_jul_t6_dc, - PyDoc_STR("*float*: July Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jul_t6_ub", (getter)Common_get_ur_dc_jul_t6_ub,(setter)Common_set_ur_dc_jul_t6_ub, - PyDoc_STR("*float*: July Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: July Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t1_dc", (getter)Common_get_ur_dc_jun_t1_dc,(setter)Common_set_ur_dc_jun_t1_dc, - PyDoc_STR("*float*: June Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t1_ub", (getter)Common_get_ur_dc_jun_t1_ub,(setter)Common_set_ur_dc_jun_t1_ub, - PyDoc_STR("*float*: June Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t2_dc", (getter)Common_get_ur_dc_jun_t2_dc,(setter)Common_set_ur_dc_jun_t2_dc, - PyDoc_STR("*float*: June Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t2_ub", (getter)Common_get_ur_dc_jun_t2_ub,(setter)Common_set_ur_dc_jun_t2_ub, - PyDoc_STR("*float*: June Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t3_dc", (getter)Common_get_ur_dc_jun_t3_dc,(setter)Common_set_ur_dc_jun_t3_dc, - PyDoc_STR("*float*: June Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t3_ub", (getter)Common_get_ur_dc_jun_t3_ub,(setter)Common_set_ur_dc_jun_t3_ub, - PyDoc_STR("*float*: June Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t4_dc", (getter)Common_get_ur_dc_jun_t4_dc,(setter)Common_set_ur_dc_jun_t4_dc, - PyDoc_STR("*float*: June Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t4_ub", (getter)Common_get_ur_dc_jun_t4_ub,(setter)Common_set_ur_dc_jun_t4_ub, - PyDoc_STR("*float*: June Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t5_dc", (getter)Common_get_ur_dc_jun_t5_dc,(setter)Common_set_ur_dc_jun_t5_dc, - PyDoc_STR("*float*: June Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t5_ub", (getter)Common_get_ur_dc_jun_t5_ub,(setter)Common_set_ur_dc_jun_t5_ub, - PyDoc_STR("*float*: June Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t6_dc", (getter)Common_get_ur_dc_jun_t6_dc,(setter)Common_set_ur_dc_jun_t6_dc, - PyDoc_STR("*float*: June Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_jun_t6_ub", (getter)Common_get_ur_dc_jun_t6_ub,(setter)Common_set_ur_dc_jun_t6_ub, - PyDoc_STR("*float*: June Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: June Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t1_dc", (getter)Common_get_ur_dc_mar_t1_dc,(setter)Common_set_ur_dc_mar_t1_dc, - PyDoc_STR("*float*: March Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t1_ub", (getter)Common_get_ur_dc_mar_t1_ub,(setter)Common_set_ur_dc_mar_t1_ub, - PyDoc_STR("*float*: March Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t2_dc", (getter)Common_get_ur_dc_mar_t2_dc,(setter)Common_set_ur_dc_mar_t2_dc, - PyDoc_STR("*float*: March Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t2_ub", (getter)Common_get_ur_dc_mar_t2_ub,(setter)Common_set_ur_dc_mar_t2_ub, - PyDoc_STR("*float*: March Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t3_dc", (getter)Common_get_ur_dc_mar_t3_dc,(setter)Common_set_ur_dc_mar_t3_dc, - PyDoc_STR("*float*: March Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t3_ub", (getter)Common_get_ur_dc_mar_t3_ub,(setter)Common_set_ur_dc_mar_t3_ub, - PyDoc_STR("*float*: March Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t4_dc", (getter)Common_get_ur_dc_mar_t4_dc,(setter)Common_set_ur_dc_mar_t4_dc, - PyDoc_STR("*float*: March Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t4_ub", (getter)Common_get_ur_dc_mar_t4_ub,(setter)Common_set_ur_dc_mar_t4_ub, - PyDoc_STR("*float*: March Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t5_dc", (getter)Common_get_ur_dc_mar_t5_dc,(setter)Common_set_ur_dc_mar_t5_dc, - PyDoc_STR("*float*: March Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t5_ub", (getter)Common_get_ur_dc_mar_t5_ub,(setter)Common_set_ur_dc_mar_t5_ub, - PyDoc_STR("*float*: March Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t6_dc", (getter)Common_get_ur_dc_mar_t6_dc,(setter)Common_set_ur_dc_mar_t6_dc, - PyDoc_STR("*float*: March Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_mar_t6_ub", (getter)Common_get_ur_dc_mar_t6_ub,(setter)Common_set_ur_dc_mar_t6_ub, - PyDoc_STR("*float*: March Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: March Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t1_dc", (getter)Common_get_ur_dc_may_t1_dc,(setter)Common_set_ur_dc_may_t1_dc, - PyDoc_STR("*float*: May Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t1_ub", (getter)Common_get_ur_dc_may_t1_ub,(setter)Common_set_ur_dc_may_t1_ub, - PyDoc_STR("*float*: May Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t2_dc", (getter)Common_get_ur_dc_may_t2_dc,(setter)Common_set_ur_dc_may_t2_dc, - PyDoc_STR("*float*: May Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t2_ub", (getter)Common_get_ur_dc_may_t2_ub,(setter)Common_set_ur_dc_may_t2_ub, - PyDoc_STR("*float*: May Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t3_dc", (getter)Common_get_ur_dc_may_t3_dc,(setter)Common_set_ur_dc_may_t3_dc, - PyDoc_STR("*float*: May Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t3_ub", (getter)Common_get_ur_dc_may_t3_ub,(setter)Common_set_ur_dc_may_t3_ub, - PyDoc_STR("*float*: May Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t4_dc", (getter)Common_get_ur_dc_may_t4_dc,(setter)Common_set_ur_dc_may_t4_dc, - PyDoc_STR("*float*: May Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t4_ub", (getter)Common_get_ur_dc_may_t4_ub,(setter)Common_set_ur_dc_may_t4_ub, - PyDoc_STR("*float*: May Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t5_dc", (getter)Common_get_ur_dc_may_t5_dc,(setter)Common_set_ur_dc_may_t5_dc, - PyDoc_STR("*float*: May Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t5_ub", (getter)Common_get_ur_dc_may_t5_ub,(setter)Common_set_ur_dc_may_t5_ub, - PyDoc_STR("*float*: May Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t6_dc", (getter)Common_get_ur_dc_may_t6_dc,(setter)Common_set_ur_dc_may_t6_dc, - PyDoc_STR("*float*: May Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_may_t6_ub", (getter)Common_get_ur_dc_may_t6_ub,(setter)Common_set_ur_dc_may_t6_ub, - PyDoc_STR("*float*: May Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: May Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t1_dc", (getter)Common_get_ur_dc_nov_t1_dc,(setter)Common_set_ur_dc_nov_t1_dc, - PyDoc_STR("*float*: November Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t1_ub", (getter)Common_get_ur_dc_nov_t1_ub,(setter)Common_set_ur_dc_nov_t1_ub, - PyDoc_STR("*float*: November Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t2_dc", (getter)Common_get_ur_dc_nov_t2_dc,(setter)Common_set_ur_dc_nov_t2_dc, - PyDoc_STR("*float*: November Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t2_ub", (getter)Common_get_ur_dc_nov_t2_ub,(setter)Common_set_ur_dc_nov_t2_ub, - PyDoc_STR("*float*: November Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t3_dc", (getter)Common_get_ur_dc_nov_t3_dc,(setter)Common_set_ur_dc_nov_t3_dc, - PyDoc_STR("*float*: November Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t3_ub", (getter)Common_get_ur_dc_nov_t3_ub,(setter)Common_set_ur_dc_nov_t3_ub, - PyDoc_STR("*float*: November Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t4_dc", (getter)Common_get_ur_dc_nov_t4_dc,(setter)Common_set_ur_dc_nov_t4_dc, - PyDoc_STR("*float*: November Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t4_ub", (getter)Common_get_ur_dc_nov_t4_ub,(setter)Common_set_ur_dc_nov_t4_ub, - PyDoc_STR("*float*: November Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t5_dc", (getter)Common_get_ur_dc_nov_t5_dc,(setter)Common_set_ur_dc_nov_t5_dc, - PyDoc_STR("*float*: November Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t5_ub", (getter)Common_get_ur_dc_nov_t5_ub,(setter)Common_set_ur_dc_nov_t5_ub, - PyDoc_STR("*float*: November Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t6_dc", (getter)Common_get_ur_dc_nov_t6_dc,(setter)Common_set_ur_dc_nov_t6_dc, - PyDoc_STR("*float*: November Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_nov_t6_ub", (getter)Common_get_ur_dc_nov_t6_ub,(setter)Common_set_ur_dc_nov_t6_ub, - PyDoc_STR("*float*: November Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: November Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t1_dc", (getter)Common_get_ur_dc_oct_t1_dc,(setter)Common_set_ur_dc_oct_t1_dc, - PyDoc_STR("*float*: October Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t1_ub", (getter)Common_get_ur_dc_oct_t1_ub,(setter)Common_set_ur_dc_oct_t1_ub, - PyDoc_STR("*float*: October Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t2_dc", (getter)Common_get_ur_dc_oct_t2_dc,(setter)Common_set_ur_dc_oct_t2_dc, - PyDoc_STR("*float*: October Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t2_ub", (getter)Common_get_ur_dc_oct_t2_ub,(setter)Common_set_ur_dc_oct_t2_ub, - PyDoc_STR("*float*: October Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t3_dc", (getter)Common_get_ur_dc_oct_t3_dc,(setter)Common_set_ur_dc_oct_t3_dc, - PyDoc_STR("*float*: October Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t3_ub", (getter)Common_get_ur_dc_oct_t3_ub,(setter)Common_set_ur_dc_oct_t3_ub, - PyDoc_STR("*float*: October Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t4_dc", (getter)Common_get_ur_dc_oct_t4_dc,(setter)Common_set_ur_dc_oct_t4_dc, - PyDoc_STR("*float*: October Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t4_ub", (getter)Common_get_ur_dc_oct_t4_ub,(setter)Common_set_ur_dc_oct_t4_ub, - PyDoc_STR("*float*: October Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t5_dc", (getter)Common_get_ur_dc_oct_t5_dc,(setter)Common_set_ur_dc_oct_t5_dc, - PyDoc_STR("*float*: October Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t5_ub", (getter)Common_get_ur_dc_oct_t5_ub,(setter)Common_set_ur_dc_oct_t5_ub, - PyDoc_STR("*float*: October Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t6_dc", (getter)Common_get_ur_dc_oct_t6_dc,(setter)Common_set_ur_dc_oct_t6_dc, - PyDoc_STR("*float*: October Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_oct_t6_ub", (getter)Common_get_ur_dc_oct_t6_ub,(setter)Common_set_ur_dc_oct_t6_ub, - PyDoc_STR("*float*: October Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: October Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t1_dc", (getter)Common_get_ur_dc_p10_t1_dc,(setter)Common_set_ur_dc_p10_t1_dc, - PyDoc_STR("*float*: Period 10 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t1_ub", (getter)Common_get_ur_dc_p10_t1_ub,(setter)Common_set_ur_dc_p10_t1_ub, - PyDoc_STR("*float*: Period 10 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t2_dc", (getter)Common_get_ur_dc_p10_t2_dc,(setter)Common_set_ur_dc_p10_t2_dc, - PyDoc_STR("*float*: Period 10 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t2_ub", (getter)Common_get_ur_dc_p10_t2_ub,(setter)Common_set_ur_dc_p10_t2_ub, - PyDoc_STR("*float*: Period 10 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t3_dc", (getter)Common_get_ur_dc_p10_t3_dc,(setter)Common_set_ur_dc_p10_t3_dc, - PyDoc_STR("*float*: Period 10 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t3_ub", (getter)Common_get_ur_dc_p10_t3_ub,(setter)Common_set_ur_dc_p10_t3_ub, - PyDoc_STR("*float*: Period 10 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t4_dc", (getter)Common_get_ur_dc_p10_t4_dc,(setter)Common_set_ur_dc_p10_t4_dc, - PyDoc_STR("*float*: Period 10 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t4_ub", (getter)Common_get_ur_dc_p10_t4_ub,(setter)Common_set_ur_dc_p10_t4_ub, - PyDoc_STR("*float*: Period 10 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t5_dc", (getter)Common_get_ur_dc_p10_t5_dc,(setter)Common_set_ur_dc_p10_t5_dc, - PyDoc_STR("*float*: Period 10 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t5_ub", (getter)Common_get_ur_dc_p10_t5_ub,(setter)Common_set_ur_dc_p10_t5_ub, - PyDoc_STR("*float*: Period 10 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t6_dc", (getter)Common_get_ur_dc_p10_t6_dc,(setter)Common_set_ur_dc_p10_t6_dc, - PyDoc_STR("*float*: Period 10 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p10_t6_ub", (getter)Common_get_ur_dc_p10_t6_ub,(setter)Common_set_ur_dc_p10_t6_ub, - PyDoc_STR("*float*: Period 10 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t1_dc", (getter)Common_get_ur_dc_p11_t1_dc,(setter)Common_set_ur_dc_p11_t1_dc, - PyDoc_STR("*float*: Period 11 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t1_ub", (getter)Common_get_ur_dc_p11_t1_ub,(setter)Common_set_ur_dc_p11_t1_ub, - PyDoc_STR("*float*: Period 11 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t2_dc", (getter)Common_get_ur_dc_p11_t2_dc,(setter)Common_set_ur_dc_p11_t2_dc, - PyDoc_STR("*float*: Period 11 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t2_ub", (getter)Common_get_ur_dc_p11_t2_ub,(setter)Common_set_ur_dc_p11_t2_ub, - PyDoc_STR("*float*: Period 11 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t3_dc", (getter)Common_get_ur_dc_p11_t3_dc,(setter)Common_set_ur_dc_p11_t3_dc, - PyDoc_STR("*float*: Period 11 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t3_ub", (getter)Common_get_ur_dc_p11_t3_ub,(setter)Common_set_ur_dc_p11_t3_ub, - PyDoc_STR("*float*: Period 11 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t4_dc", (getter)Common_get_ur_dc_p11_t4_dc,(setter)Common_set_ur_dc_p11_t4_dc, - PyDoc_STR("*float*: Period 11 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t4_ub", (getter)Common_get_ur_dc_p11_t4_ub,(setter)Common_set_ur_dc_p11_t4_ub, - PyDoc_STR("*float*: Period 11 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t5_dc", (getter)Common_get_ur_dc_p11_t5_dc,(setter)Common_set_ur_dc_p11_t5_dc, - PyDoc_STR("*float*: Period 11 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t5_ub", (getter)Common_get_ur_dc_p11_t5_ub,(setter)Common_set_ur_dc_p11_t5_ub, - PyDoc_STR("*float*: Period 11 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t6_dc", (getter)Common_get_ur_dc_p11_t6_dc,(setter)Common_set_ur_dc_p11_t6_dc, - PyDoc_STR("*float*: Period 11 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p11_t6_ub", (getter)Common_get_ur_dc_p11_t6_ub,(setter)Common_set_ur_dc_p11_t6_ub, - PyDoc_STR("*float*: Period 11 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t1_dc", (getter)Common_get_ur_dc_p12_t1_dc,(setter)Common_set_ur_dc_p12_t1_dc, - PyDoc_STR("*float*: Period 12 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t1_ub", (getter)Common_get_ur_dc_p12_t1_ub,(setter)Common_set_ur_dc_p12_t1_ub, - PyDoc_STR("*float*: Period 12 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t2_dc", (getter)Common_get_ur_dc_p12_t2_dc,(setter)Common_set_ur_dc_p12_t2_dc, - PyDoc_STR("*float*: Period 12 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t2_ub", (getter)Common_get_ur_dc_p12_t2_ub,(setter)Common_set_ur_dc_p12_t2_ub, - PyDoc_STR("*float*: Period 12 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t3_dc", (getter)Common_get_ur_dc_p12_t3_dc,(setter)Common_set_ur_dc_p12_t3_dc, - PyDoc_STR("*float*: Period 12 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t3_ub", (getter)Common_get_ur_dc_p12_t3_ub,(setter)Common_set_ur_dc_p12_t3_ub, - PyDoc_STR("*float*: Period 12 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t4_dc", (getter)Common_get_ur_dc_p12_t4_dc,(setter)Common_set_ur_dc_p12_t4_dc, - PyDoc_STR("*float*: Period 12 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t4_ub", (getter)Common_get_ur_dc_p12_t4_ub,(setter)Common_set_ur_dc_p12_t4_ub, - PyDoc_STR("*float*: Period 12 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t5_dc", (getter)Common_get_ur_dc_p12_t5_dc,(setter)Common_set_ur_dc_p12_t5_dc, - PyDoc_STR("*float*: Period 12 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t5_ub", (getter)Common_get_ur_dc_p12_t5_ub,(setter)Common_set_ur_dc_p12_t5_ub, - PyDoc_STR("*float*: Period 12 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t6_dc", (getter)Common_get_ur_dc_p12_t6_dc,(setter)Common_set_ur_dc_p12_t6_dc, - PyDoc_STR("*float*: Period 12 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p12_t6_ub", (getter)Common_get_ur_dc_p12_t6_ub,(setter)Common_set_ur_dc_p12_t6_ub, - PyDoc_STR("*float*: Period 12 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t1_dc", (getter)Common_get_ur_dc_p1_t1_dc,(setter)Common_set_ur_dc_p1_t1_dc, - PyDoc_STR("*float*: Period 1 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t1_ub", (getter)Common_get_ur_dc_p1_t1_ub,(setter)Common_set_ur_dc_p1_t1_ub, - PyDoc_STR("*float*: Period 1 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t2_dc", (getter)Common_get_ur_dc_p1_t2_dc,(setter)Common_set_ur_dc_p1_t2_dc, - PyDoc_STR("*float*: Period 1 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t2_ub", (getter)Common_get_ur_dc_p1_t2_ub,(setter)Common_set_ur_dc_p1_t2_ub, - PyDoc_STR("*float*: Period 1 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t3_dc", (getter)Common_get_ur_dc_p1_t3_dc,(setter)Common_set_ur_dc_p1_t3_dc, - PyDoc_STR("*float*: Period 1 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t3_ub", (getter)Common_get_ur_dc_p1_t3_ub,(setter)Common_set_ur_dc_p1_t3_ub, - PyDoc_STR("*float*: Period 1 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t4_dc", (getter)Common_get_ur_dc_p1_t4_dc,(setter)Common_set_ur_dc_p1_t4_dc, - PyDoc_STR("*float*: Period 1 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t4_ub", (getter)Common_get_ur_dc_p1_t4_ub,(setter)Common_set_ur_dc_p1_t4_ub, - PyDoc_STR("*float*: Period 1 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t5_dc", (getter)Common_get_ur_dc_p1_t5_dc,(setter)Common_set_ur_dc_p1_t5_dc, - PyDoc_STR("*float*: Period 1 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t5_ub", (getter)Common_get_ur_dc_p1_t5_ub,(setter)Common_set_ur_dc_p1_t5_ub, - PyDoc_STR("*float*: Period 1 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t6_dc", (getter)Common_get_ur_dc_p1_t6_dc,(setter)Common_set_ur_dc_p1_t6_dc, - PyDoc_STR("*float*: Period 1 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p1_t6_ub", (getter)Common_get_ur_dc_p1_t6_ub,(setter)Common_set_ur_dc_p1_t6_ub, - PyDoc_STR("*float*: Period 1 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t1_dc", (getter)Common_get_ur_dc_p2_t1_dc,(setter)Common_set_ur_dc_p2_t1_dc, - PyDoc_STR("*float*: Period 2 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t1_ub", (getter)Common_get_ur_dc_p2_t1_ub,(setter)Common_set_ur_dc_p2_t1_ub, - PyDoc_STR("*float*: Period 2 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t2_dc", (getter)Common_get_ur_dc_p2_t2_dc,(setter)Common_set_ur_dc_p2_t2_dc, - PyDoc_STR("*float*: Period 2 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t2_ub", (getter)Common_get_ur_dc_p2_t2_ub,(setter)Common_set_ur_dc_p2_t2_ub, - PyDoc_STR("*float*: Period 2 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t3_dc", (getter)Common_get_ur_dc_p2_t3_dc,(setter)Common_set_ur_dc_p2_t3_dc, - PyDoc_STR("*float*: Period 2 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t3_ub", (getter)Common_get_ur_dc_p2_t3_ub,(setter)Common_set_ur_dc_p2_t3_ub, - PyDoc_STR("*float*: Period 2 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t4_dc", (getter)Common_get_ur_dc_p2_t4_dc,(setter)Common_set_ur_dc_p2_t4_dc, - PyDoc_STR("*float*: Period 2 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t4_ub", (getter)Common_get_ur_dc_p2_t4_ub,(setter)Common_set_ur_dc_p2_t4_ub, - PyDoc_STR("*float*: Period 2 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t5_dc", (getter)Common_get_ur_dc_p2_t5_dc,(setter)Common_set_ur_dc_p2_t5_dc, - PyDoc_STR("*float*: Period 2 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t5_ub", (getter)Common_get_ur_dc_p2_t5_ub,(setter)Common_set_ur_dc_p2_t5_ub, - PyDoc_STR("*float*: Period 2 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t6_dc", (getter)Common_get_ur_dc_p2_t6_dc,(setter)Common_set_ur_dc_p2_t6_dc, - PyDoc_STR("*float*: Period 2 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p2_t6_ub", (getter)Common_get_ur_dc_p2_t6_ub,(setter)Common_set_ur_dc_p2_t6_ub, - PyDoc_STR("*float*: Period 2 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t1_dc", (getter)Common_get_ur_dc_p3_t1_dc,(setter)Common_set_ur_dc_p3_t1_dc, - PyDoc_STR("*float*: Period 3 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t1_ub", (getter)Common_get_ur_dc_p3_t1_ub,(setter)Common_set_ur_dc_p3_t1_ub, - PyDoc_STR("*float*: Period 3 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t2_dc", (getter)Common_get_ur_dc_p3_t2_dc,(setter)Common_set_ur_dc_p3_t2_dc, - PyDoc_STR("*float*: Period 3 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t2_ub", (getter)Common_get_ur_dc_p3_t2_ub,(setter)Common_set_ur_dc_p3_t2_ub, - PyDoc_STR("*float*: Period 3 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t3_dc", (getter)Common_get_ur_dc_p3_t3_dc,(setter)Common_set_ur_dc_p3_t3_dc, - PyDoc_STR("*float*: Period 3 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t3_ub", (getter)Common_get_ur_dc_p3_t3_ub,(setter)Common_set_ur_dc_p3_t3_ub, - PyDoc_STR("*float*: Period 3 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t4_dc", (getter)Common_get_ur_dc_p3_t4_dc,(setter)Common_set_ur_dc_p3_t4_dc, - PyDoc_STR("*float*: Period 3 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t4_ub", (getter)Common_get_ur_dc_p3_t4_ub,(setter)Common_set_ur_dc_p3_t4_ub, - PyDoc_STR("*float*: Period 3 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t5_dc", (getter)Common_get_ur_dc_p3_t5_dc,(setter)Common_set_ur_dc_p3_t5_dc, - PyDoc_STR("*float*: Period 3 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t5_ub", (getter)Common_get_ur_dc_p3_t5_ub,(setter)Common_set_ur_dc_p3_t5_ub, - PyDoc_STR("*float*: Period 3 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t6_dc", (getter)Common_get_ur_dc_p3_t6_dc,(setter)Common_set_ur_dc_p3_t6_dc, - PyDoc_STR("*float*: Period 3 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p3_t6_ub", (getter)Common_get_ur_dc_p3_t6_ub,(setter)Common_set_ur_dc_p3_t6_ub, - PyDoc_STR("*float*: Period 3 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t1_dc", (getter)Common_get_ur_dc_p4_t1_dc,(setter)Common_set_ur_dc_p4_t1_dc, - PyDoc_STR("*float*: Period 4 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t1_ub", (getter)Common_get_ur_dc_p4_t1_ub,(setter)Common_set_ur_dc_p4_t1_ub, - PyDoc_STR("*float*: Period 4 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t2_dc", (getter)Common_get_ur_dc_p4_t2_dc,(setter)Common_set_ur_dc_p4_t2_dc, - PyDoc_STR("*float*: Period 4 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t2_ub", (getter)Common_get_ur_dc_p4_t2_ub,(setter)Common_set_ur_dc_p4_t2_ub, - PyDoc_STR("*float*: Period 4 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t3_dc", (getter)Common_get_ur_dc_p4_t3_dc,(setter)Common_set_ur_dc_p4_t3_dc, - PyDoc_STR("*float*: Period 4 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t3_ub", (getter)Common_get_ur_dc_p4_t3_ub,(setter)Common_set_ur_dc_p4_t3_ub, - PyDoc_STR("*float*: Period 4 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t4_dc", (getter)Common_get_ur_dc_p4_t4_dc,(setter)Common_set_ur_dc_p4_t4_dc, - PyDoc_STR("*float*: Period 4 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t4_ub", (getter)Common_get_ur_dc_p4_t4_ub,(setter)Common_set_ur_dc_p4_t4_ub, - PyDoc_STR("*float*: Period 4 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t5_dc", (getter)Common_get_ur_dc_p4_t5_dc,(setter)Common_set_ur_dc_p4_t5_dc, - PyDoc_STR("*float*: Period 4 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t5_ub", (getter)Common_get_ur_dc_p4_t5_ub,(setter)Common_set_ur_dc_p4_t5_ub, - PyDoc_STR("*float*: Period 4 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t6_dc", (getter)Common_get_ur_dc_p4_t6_dc,(setter)Common_set_ur_dc_p4_t6_dc, - PyDoc_STR("*float*: Period 4 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p4_t6_ub", (getter)Common_get_ur_dc_p4_t6_ub,(setter)Common_set_ur_dc_p4_t6_ub, - PyDoc_STR("*float*: Period 4 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t1_dc", (getter)Common_get_ur_dc_p5_t1_dc,(setter)Common_set_ur_dc_p5_t1_dc, - PyDoc_STR("*float*: Period 5 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t1_ub", (getter)Common_get_ur_dc_p5_t1_ub,(setter)Common_set_ur_dc_p5_t1_ub, - PyDoc_STR("*float*: Period 5 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t2_dc", (getter)Common_get_ur_dc_p5_t2_dc,(setter)Common_set_ur_dc_p5_t2_dc, - PyDoc_STR("*float*: Period 5 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t2_ub", (getter)Common_get_ur_dc_p5_t2_ub,(setter)Common_set_ur_dc_p5_t2_ub, - PyDoc_STR("*float*: Period 5 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t3_dc", (getter)Common_get_ur_dc_p5_t3_dc,(setter)Common_set_ur_dc_p5_t3_dc, - PyDoc_STR("*float*: Period 5 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t3_ub", (getter)Common_get_ur_dc_p5_t3_ub,(setter)Common_set_ur_dc_p5_t3_ub, - PyDoc_STR("*float*: Period 5 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t4_dc", (getter)Common_get_ur_dc_p5_t4_dc,(setter)Common_set_ur_dc_p5_t4_dc, - PyDoc_STR("*float*: Period 5 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t4_ub", (getter)Common_get_ur_dc_p5_t4_ub,(setter)Common_set_ur_dc_p5_t4_ub, - PyDoc_STR("*float*: Period 5 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t5_dc", (getter)Common_get_ur_dc_p5_t5_dc,(setter)Common_set_ur_dc_p5_t5_dc, - PyDoc_STR("*float*: Period 5 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t5_ub", (getter)Common_get_ur_dc_p5_t5_ub,(setter)Common_set_ur_dc_p5_t5_ub, - PyDoc_STR("*float*: Period 5 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t6_dc", (getter)Common_get_ur_dc_p5_t6_dc,(setter)Common_set_ur_dc_p5_t6_dc, - PyDoc_STR("*float*: Period 5 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p5_t6_ub", (getter)Common_get_ur_dc_p5_t6_ub,(setter)Common_set_ur_dc_p5_t6_ub, - PyDoc_STR("*float*: Period 5 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t1_dc", (getter)Common_get_ur_dc_p6_t1_dc,(setter)Common_set_ur_dc_p6_t1_dc, - PyDoc_STR("*float*: Period 6 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t1_ub", (getter)Common_get_ur_dc_p6_t1_ub,(setter)Common_set_ur_dc_p6_t1_ub, - PyDoc_STR("*float*: Period 6 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t2_dc", (getter)Common_get_ur_dc_p6_t2_dc,(setter)Common_set_ur_dc_p6_t2_dc, - PyDoc_STR("*float*: Period 6 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t2_ub", (getter)Common_get_ur_dc_p6_t2_ub,(setter)Common_set_ur_dc_p6_t2_ub, - PyDoc_STR("*float*: Period 6 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t3_dc", (getter)Common_get_ur_dc_p6_t3_dc,(setter)Common_set_ur_dc_p6_t3_dc, - PyDoc_STR("*float*: Period 6 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t3_ub", (getter)Common_get_ur_dc_p6_t3_ub,(setter)Common_set_ur_dc_p6_t3_ub, - PyDoc_STR("*float*: Period 6 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t4_dc", (getter)Common_get_ur_dc_p6_t4_dc,(setter)Common_set_ur_dc_p6_t4_dc, - PyDoc_STR("*float*: Period 6 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t4_ub", (getter)Common_get_ur_dc_p6_t4_ub,(setter)Common_set_ur_dc_p6_t4_ub, - PyDoc_STR("*float*: Period 6 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t5_dc", (getter)Common_get_ur_dc_p6_t5_dc,(setter)Common_set_ur_dc_p6_t5_dc, - PyDoc_STR("*float*: Period 6 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t5_ub", (getter)Common_get_ur_dc_p6_t5_ub,(setter)Common_set_ur_dc_p6_t5_ub, - PyDoc_STR("*float*: Period 6 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t6_dc", (getter)Common_get_ur_dc_p6_t6_dc,(setter)Common_set_ur_dc_p6_t6_dc, - PyDoc_STR("*float*: Period 6 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p6_t6_ub", (getter)Common_get_ur_dc_p6_t6_ub,(setter)Common_set_ur_dc_p6_t6_ub, - PyDoc_STR("*float*: Period 6 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t1_dc", (getter)Common_get_ur_dc_p7_t1_dc,(setter)Common_set_ur_dc_p7_t1_dc, - PyDoc_STR("*float*: Period 7 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t1_ub", (getter)Common_get_ur_dc_p7_t1_ub,(setter)Common_set_ur_dc_p7_t1_ub, - PyDoc_STR("*float*: Period 7 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t2_dc", (getter)Common_get_ur_dc_p7_t2_dc,(setter)Common_set_ur_dc_p7_t2_dc, - PyDoc_STR("*float*: Period 7 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t2_ub", (getter)Common_get_ur_dc_p7_t2_ub,(setter)Common_set_ur_dc_p7_t2_ub, - PyDoc_STR("*float*: Period 7 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t3_dc", (getter)Common_get_ur_dc_p7_t3_dc,(setter)Common_set_ur_dc_p7_t3_dc, - PyDoc_STR("*float*: Period 7 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t3_ub", (getter)Common_get_ur_dc_p7_t3_ub,(setter)Common_set_ur_dc_p7_t3_ub, - PyDoc_STR("*float*: Period 7 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t4_dc", (getter)Common_get_ur_dc_p7_t4_dc,(setter)Common_set_ur_dc_p7_t4_dc, - PyDoc_STR("*float*: Period 7 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t4_ub", (getter)Common_get_ur_dc_p7_t4_ub,(setter)Common_set_ur_dc_p7_t4_ub, - PyDoc_STR("*float*: Period 7 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t5_dc", (getter)Common_get_ur_dc_p7_t5_dc,(setter)Common_set_ur_dc_p7_t5_dc, - PyDoc_STR("*float*: Period 7 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t5_ub", (getter)Common_get_ur_dc_p7_t5_ub,(setter)Common_set_ur_dc_p7_t5_ub, - PyDoc_STR("*float*: Period 7 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t6_dc", (getter)Common_get_ur_dc_p7_t6_dc,(setter)Common_set_ur_dc_p7_t6_dc, - PyDoc_STR("*float*: Period 7 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p7_t6_ub", (getter)Common_get_ur_dc_p7_t6_ub,(setter)Common_set_ur_dc_p7_t6_ub, - PyDoc_STR("*float*: Period 7 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t1_dc", (getter)Common_get_ur_dc_p8_t1_dc,(setter)Common_set_ur_dc_p8_t1_dc, - PyDoc_STR("*float*: Period 8 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t1_ub", (getter)Common_get_ur_dc_p8_t1_ub,(setter)Common_set_ur_dc_p8_t1_ub, - PyDoc_STR("*float*: Period 8 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t2_dc", (getter)Common_get_ur_dc_p8_t2_dc,(setter)Common_set_ur_dc_p8_t2_dc, - PyDoc_STR("*float*: Period 8 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t2_ub", (getter)Common_get_ur_dc_p8_t2_ub,(setter)Common_set_ur_dc_p8_t2_ub, - PyDoc_STR("*float*: Period 8 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t3_dc", (getter)Common_get_ur_dc_p8_t3_dc,(setter)Common_set_ur_dc_p8_t3_dc, - PyDoc_STR("*float*: Period 8 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t3_ub", (getter)Common_get_ur_dc_p8_t3_ub,(setter)Common_set_ur_dc_p8_t3_ub, - PyDoc_STR("*float*: Period 8 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t4_dc", (getter)Common_get_ur_dc_p8_t4_dc,(setter)Common_set_ur_dc_p8_t4_dc, - PyDoc_STR("*float*: Period 8 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t4_ub", (getter)Common_get_ur_dc_p8_t4_ub,(setter)Common_set_ur_dc_p8_t4_ub, - PyDoc_STR("*float*: Period 8 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t5_dc", (getter)Common_get_ur_dc_p8_t5_dc,(setter)Common_set_ur_dc_p8_t5_dc, - PyDoc_STR("*float*: Period 8 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t5_ub", (getter)Common_get_ur_dc_p8_t5_ub,(setter)Common_set_ur_dc_p8_t5_ub, - PyDoc_STR("*float*: Period 8 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t6_dc", (getter)Common_get_ur_dc_p8_t6_dc,(setter)Common_set_ur_dc_p8_t6_dc, - PyDoc_STR("*float*: Period 8 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p8_t6_ub", (getter)Common_get_ur_dc_p8_t6_ub,(setter)Common_set_ur_dc_p8_t6_ub, - PyDoc_STR("*float*: Period 8 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t1_dc", (getter)Common_get_ur_dc_p9_t1_dc,(setter)Common_set_ur_dc_p9_t1_dc, - PyDoc_STR("*float*: Period 9 Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t1_ub", (getter)Common_get_ur_dc_p9_t1_ub,(setter)Common_set_ur_dc_p9_t1_ub, - PyDoc_STR("*float*: Period 9 Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t2_dc", (getter)Common_get_ur_dc_p9_t2_dc,(setter)Common_set_ur_dc_p9_t2_dc, - PyDoc_STR("*float*: Period 9 Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t2_ub", (getter)Common_get_ur_dc_p9_t2_ub,(setter)Common_set_ur_dc_p9_t2_ub, - PyDoc_STR("*float*: Period 9 Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t3_dc", (getter)Common_get_ur_dc_p9_t3_dc,(setter)Common_set_ur_dc_p9_t3_dc, - PyDoc_STR("*float*: Period 9 Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t3_ub", (getter)Common_get_ur_dc_p9_t3_ub,(setter)Common_set_ur_dc_p9_t3_ub, - PyDoc_STR("*float*: Period 9 Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t4_dc", (getter)Common_get_ur_dc_p9_t4_dc,(setter)Common_set_ur_dc_p9_t4_dc, - PyDoc_STR("*float*: Period 9 Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t4_ub", (getter)Common_get_ur_dc_p9_t4_ub,(setter)Common_set_ur_dc_p9_t4_ub, - PyDoc_STR("*float*: Period 9 Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t5_dc", (getter)Common_get_ur_dc_p9_t5_dc,(setter)Common_set_ur_dc_p9_t5_dc, - PyDoc_STR("*float*: Period 9 Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t5_ub", (getter)Common_get_ur_dc_p9_t5_ub,(setter)Common_set_ur_dc_p9_t5_ub, - PyDoc_STR("*float*: Period 9 Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t6_dc", (getter)Common_get_ur_dc_p9_t6_dc,(setter)Common_set_ur_dc_p9_t6_dc, - PyDoc_STR("*float*: Period 9 Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_p9_t6_ub", (getter)Common_get_ur_dc_p9_t6_ub,(setter)Common_set_ur_dc_p9_t6_ub, - PyDoc_STR("*float*: Period 9 Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sched_weekday", (getter)Common_get_ur_dc_sched_weekday,(setter)Common_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demend Charge Weekday Schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demend Charge Weekday Schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sched_weekend", (getter)Common_get_ur_dc_sched_weekend,(setter)Common_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demend Charge Weekend Schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demend Charge Weekend Schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sep_t1_dc", (getter)Common_get_ur_dc_sep_t1_dc,(setter)Common_set_ur_dc_sep_t1_dc, - PyDoc_STR("*float*: September Tier 1 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 1 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t1_ub", (getter)Common_get_ur_dc_sep_t1_ub,(setter)Common_set_ur_dc_sep_t1_ub, - PyDoc_STR("*float*: September Tier 1 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 1 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t2_dc", (getter)Common_get_ur_dc_sep_t2_dc,(setter)Common_set_ur_dc_sep_t2_dc, - PyDoc_STR("*float*: September Tier 2 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 2 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t2_ub", (getter)Common_get_ur_dc_sep_t2_ub,(setter)Common_set_ur_dc_sep_t2_ub, - PyDoc_STR("*float*: September Tier 2 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 2 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t3_dc", (getter)Common_get_ur_dc_sep_t3_dc,(setter)Common_set_ur_dc_sep_t3_dc, - PyDoc_STR("*float*: September Tier 3 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 3 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t3_ub", (getter)Common_get_ur_dc_sep_t3_ub,(setter)Common_set_ur_dc_sep_t3_ub, - PyDoc_STR("*float*: September Tier 3 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 3 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t4_dc", (getter)Common_get_ur_dc_sep_t4_dc,(setter)Common_set_ur_dc_sep_t4_dc, - PyDoc_STR("*float*: September Tier 4 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 4 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t4_ub", (getter)Common_get_ur_dc_sep_t4_ub,(setter)Common_set_ur_dc_sep_t4_ub, - PyDoc_STR("*float*: September Tier 4 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 4 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t5_dc", (getter)Common_get_ur_dc_sep_t5_dc,(setter)Common_set_ur_dc_sep_t5_dc, - PyDoc_STR("*float*: September Tier 5 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 5 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t5_ub", (getter)Common_get_ur_dc_sep_t5_ub,(setter)Common_set_ur_dc_sep_t5_ub, - PyDoc_STR("*float*: September Tier 5 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 5 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t6_dc", (getter)Common_get_ur_dc_sep_t6_dc,(setter)Common_set_ur_dc_sep_t6_dc, - PyDoc_STR("*float*: September Tier 6 Demand Charge [$/kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 6 Demand Charge [$/kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_sep_t6_ub", (getter)Common_get_ur_dc_sep_t6_ub,(setter)Common_set_ur_dc_sep_t6_ub, - PyDoc_STR("*float*: September Tier 6 Peak Demand [kW]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: September Tier 6 Peak Demand [kW]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_enable", (getter)Common_get_ur_ec_enable,(setter)Common_set_ur_ec_enable, - PyDoc_STR("*float*: Enable energy charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable energy charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_br", (getter)Common_get_ur_ec_p10_t1_br,(setter)Common_set_ur_ec_p10_t1_br, - PyDoc_STR("*float*: Period 10 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_sr", (getter)Common_get_ur_ec_p10_t1_sr,(setter)Common_set_ur_ec_p10_t1_sr, - PyDoc_STR("*float*: Period 10 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t1_ub", (getter)Common_get_ur_ec_p10_t1_ub,(setter)Common_set_ur_ec_p10_t1_ub, - PyDoc_STR("*float*: Period 10 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_br", (getter)Common_get_ur_ec_p10_t2_br,(setter)Common_set_ur_ec_p10_t2_br, - PyDoc_STR("*float*: Period 10 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_sr", (getter)Common_get_ur_ec_p10_t2_sr,(setter)Common_set_ur_ec_p10_t2_sr, - PyDoc_STR("*float*: Period 10 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t2_ub", (getter)Common_get_ur_ec_p10_t2_ub,(setter)Common_set_ur_ec_p10_t2_ub, - PyDoc_STR("*float*: Period 10 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_br", (getter)Common_get_ur_ec_p10_t3_br,(setter)Common_set_ur_ec_p10_t3_br, - PyDoc_STR("*float*: Period 10 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_sr", (getter)Common_get_ur_ec_p10_t3_sr,(setter)Common_set_ur_ec_p10_t3_sr, - PyDoc_STR("*float*: Period 10 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t3_ub", (getter)Common_get_ur_ec_p10_t3_ub,(setter)Common_set_ur_ec_p10_t3_ub, - PyDoc_STR("*float*: Period 10 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_br", (getter)Common_get_ur_ec_p10_t4_br,(setter)Common_set_ur_ec_p10_t4_br, - PyDoc_STR("*float*: Period 10 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_sr", (getter)Common_get_ur_ec_p10_t4_sr,(setter)Common_set_ur_ec_p10_t4_sr, - PyDoc_STR("*float*: Period 10 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t4_ub", (getter)Common_get_ur_ec_p10_t4_ub,(setter)Common_set_ur_ec_p10_t4_ub, - PyDoc_STR("*float*: Period 10 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_br", (getter)Common_get_ur_ec_p10_t5_br,(setter)Common_set_ur_ec_p10_t5_br, - PyDoc_STR("*float*: Period 10 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_sr", (getter)Common_get_ur_ec_p10_t5_sr,(setter)Common_set_ur_ec_p10_t5_sr, - PyDoc_STR("*float*: Period 10 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t5_ub", (getter)Common_get_ur_ec_p10_t5_ub,(setter)Common_set_ur_ec_p10_t5_ub, - PyDoc_STR("*float*: Period 10 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_br", (getter)Common_get_ur_ec_p10_t6_br,(setter)Common_set_ur_ec_p10_t6_br, - PyDoc_STR("*float*: Period 10 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_sr", (getter)Common_get_ur_ec_p10_t6_sr,(setter)Common_set_ur_ec_p10_t6_sr, - PyDoc_STR("*float*: Period 10 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p10_t6_ub", (getter)Common_get_ur_ec_p10_t6_ub,(setter)Common_set_ur_ec_p10_t6_ub, - PyDoc_STR("*float*: Period 10 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 10 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_br", (getter)Common_get_ur_ec_p11_t1_br,(setter)Common_set_ur_ec_p11_t1_br, - PyDoc_STR("*float*: Period 11 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_sr", (getter)Common_get_ur_ec_p11_t1_sr,(setter)Common_set_ur_ec_p11_t1_sr, - PyDoc_STR("*float*: Period 11 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t1_ub", (getter)Common_get_ur_ec_p11_t1_ub,(setter)Common_set_ur_ec_p11_t1_ub, - PyDoc_STR("*float*: Period 11 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_br", (getter)Common_get_ur_ec_p11_t2_br,(setter)Common_set_ur_ec_p11_t2_br, - PyDoc_STR("*float*: Period 11 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_sr", (getter)Common_get_ur_ec_p11_t2_sr,(setter)Common_set_ur_ec_p11_t2_sr, - PyDoc_STR("*float*: Period 11 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t2_ub", (getter)Common_get_ur_ec_p11_t2_ub,(setter)Common_set_ur_ec_p11_t2_ub, - PyDoc_STR("*float*: Period 11 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_br", (getter)Common_get_ur_ec_p11_t3_br,(setter)Common_set_ur_ec_p11_t3_br, - PyDoc_STR("*float*: Period 11 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_sr", (getter)Common_get_ur_ec_p11_t3_sr,(setter)Common_set_ur_ec_p11_t3_sr, - PyDoc_STR("*float*: Period 11 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t3_ub", (getter)Common_get_ur_ec_p11_t3_ub,(setter)Common_set_ur_ec_p11_t3_ub, - PyDoc_STR("*float*: Period 11 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_br", (getter)Common_get_ur_ec_p11_t4_br,(setter)Common_set_ur_ec_p11_t4_br, - PyDoc_STR("*float*: Period 11 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_sr", (getter)Common_get_ur_ec_p11_t4_sr,(setter)Common_set_ur_ec_p11_t4_sr, - PyDoc_STR("*float*: Period 11 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t4_ub", (getter)Common_get_ur_ec_p11_t4_ub,(setter)Common_set_ur_ec_p11_t4_ub, - PyDoc_STR("*float*: Period 11 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_br", (getter)Common_get_ur_ec_p11_t5_br,(setter)Common_set_ur_ec_p11_t5_br, - PyDoc_STR("*float*: Period 11 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_sr", (getter)Common_get_ur_ec_p11_t5_sr,(setter)Common_set_ur_ec_p11_t5_sr, - PyDoc_STR("*float*: Period 11 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t5_ub", (getter)Common_get_ur_ec_p11_t5_ub,(setter)Common_set_ur_ec_p11_t5_ub, - PyDoc_STR("*float*: Period 11 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_br", (getter)Common_get_ur_ec_p11_t6_br,(setter)Common_set_ur_ec_p11_t6_br, - PyDoc_STR("*float*: Period 11 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_sr", (getter)Common_get_ur_ec_p11_t6_sr,(setter)Common_set_ur_ec_p11_t6_sr, - PyDoc_STR("*float*: Period 11 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p11_t6_ub", (getter)Common_get_ur_ec_p11_t6_ub,(setter)Common_set_ur_ec_p11_t6_ub, - PyDoc_STR("*float*: Period 11 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 11 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_br", (getter)Common_get_ur_ec_p12_t1_br,(setter)Common_set_ur_ec_p12_t1_br, - PyDoc_STR("*float*: Period 12 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_sr", (getter)Common_get_ur_ec_p12_t1_sr,(setter)Common_set_ur_ec_p12_t1_sr, - PyDoc_STR("*float*: Period 12 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t1_ub", (getter)Common_get_ur_ec_p12_t1_ub,(setter)Common_set_ur_ec_p12_t1_ub, - PyDoc_STR("*float*: Period 12 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_br", (getter)Common_get_ur_ec_p12_t2_br,(setter)Common_set_ur_ec_p12_t2_br, - PyDoc_STR("*float*: Period 12 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_sr", (getter)Common_get_ur_ec_p12_t2_sr,(setter)Common_set_ur_ec_p12_t2_sr, - PyDoc_STR("*float*: Period 12 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t2_ub", (getter)Common_get_ur_ec_p12_t2_ub,(setter)Common_set_ur_ec_p12_t2_ub, - PyDoc_STR("*float*: Period 12 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_br", (getter)Common_get_ur_ec_p12_t3_br,(setter)Common_set_ur_ec_p12_t3_br, - PyDoc_STR("*float*: Period 12 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_sr", (getter)Common_get_ur_ec_p12_t3_sr,(setter)Common_set_ur_ec_p12_t3_sr, - PyDoc_STR("*float*: Period 12 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t3_ub", (getter)Common_get_ur_ec_p12_t3_ub,(setter)Common_set_ur_ec_p12_t3_ub, - PyDoc_STR("*float*: Period 12 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_br", (getter)Common_get_ur_ec_p12_t4_br,(setter)Common_set_ur_ec_p12_t4_br, - PyDoc_STR("*float*: Period 12 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_sr", (getter)Common_get_ur_ec_p12_t4_sr,(setter)Common_set_ur_ec_p12_t4_sr, - PyDoc_STR("*float*: Period 12 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t4_ub", (getter)Common_get_ur_ec_p12_t4_ub,(setter)Common_set_ur_ec_p12_t4_ub, - PyDoc_STR("*float*: Period 12 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_br", (getter)Common_get_ur_ec_p12_t5_br,(setter)Common_set_ur_ec_p12_t5_br, - PyDoc_STR("*float*: Period 12 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_sr", (getter)Common_get_ur_ec_p12_t5_sr,(setter)Common_set_ur_ec_p12_t5_sr, - PyDoc_STR("*float*: Period 12 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t5_ub", (getter)Common_get_ur_ec_p12_t5_ub,(setter)Common_set_ur_ec_p12_t5_ub, - PyDoc_STR("*float*: Period 12 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_br", (getter)Common_get_ur_ec_p12_t6_br,(setter)Common_set_ur_ec_p12_t6_br, - PyDoc_STR("*float*: Period 12 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_sr", (getter)Common_get_ur_ec_p12_t6_sr,(setter)Common_set_ur_ec_p12_t6_sr, - PyDoc_STR("*float*: Period 12 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p12_t6_ub", (getter)Common_get_ur_ec_p12_t6_ub,(setter)Common_set_ur_ec_p12_t6_ub, - PyDoc_STR("*float*: Period 12 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 12 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_br", (getter)Common_get_ur_ec_p1_t1_br,(setter)Common_set_ur_ec_p1_t1_br, - PyDoc_STR("*float*: Period 1 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_sr", (getter)Common_get_ur_ec_p1_t1_sr,(setter)Common_set_ur_ec_p1_t1_sr, - PyDoc_STR("*float*: Period 1 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t1_ub", (getter)Common_get_ur_ec_p1_t1_ub,(setter)Common_set_ur_ec_p1_t1_ub, - PyDoc_STR("*float*: Period 1 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_br", (getter)Common_get_ur_ec_p1_t2_br,(setter)Common_set_ur_ec_p1_t2_br, - PyDoc_STR("*float*: Period 1 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_sr", (getter)Common_get_ur_ec_p1_t2_sr,(setter)Common_set_ur_ec_p1_t2_sr, - PyDoc_STR("*float*: Period 1 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t2_ub", (getter)Common_get_ur_ec_p1_t2_ub,(setter)Common_set_ur_ec_p1_t2_ub, - PyDoc_STR("*float*: Period 1 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_br", (getter)Common_get_ur_ec_p1_t3_br,(setter)Common_set_ur_ec_p1_t3_br, - PyDoc_STR("*float*: Period 1 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_sr", (getter)Common_get_ur_ec_p1_t3_sr,(setter)Common_set_ur_ec_p1_t3_sr, - PyDoc_STR("*float*: Period 1 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t3_ub", (getter)Common_get_ur_ec_p1_t3_ub,(setter)Common_set_ur_ec_p1_t3_ub, - PyDoc_STR("*float*: Period 1 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_br", (getter)Common_get_ur_ec_p1_t4_br,(setter)Common_set_ur_ec_p1_t4_br, - PyDoc_STR("*float*: Period 1 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_sr", (getter)Common_get_ur_ec_p1_t4_sr,(setter)Common_set_ur_ec_p1_t4_sr, - PyDoc_STR("*float*: Period 1 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t4_ub", (getter)Common_get_ur_ec_p1_t4_ub,(setter)Common_set_ur_ec_p1_t4_ub, - PyDoc_STR("*float*: Period 1 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_br", (getter)Common_get_ur_ec_p1_t5_br,(setter)Common_set_ur_ec_p1_t5_br, - PyDoc_STR("*float*: Period 1 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_sr", (getter)Common_get_ur_ec_p1_t5_sr,(setter)Common_set_ur_ec_p1_t5_sr, - PyDoc_STR("*float*: Period 1 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t5_ub", (getter)Common_get_ur_ec_p1_t5_ub,(setter)Common_set_ur_ec_p1_t5_ub, - PyDoc_STR("*float*: Period 1 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_br", (getter)Common_get_ur_ec_p1_t6_br,(setter)Common_set_ur_ec_p1_t6_br, - PyDoc_STR("*float*: Period 1 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_sr", (getter)Common_get_ur_ec_p1_t6_sr,(setter)Common_set_ur_ec_p1_t6_sr, - PyDoc_STR("*float*: Period 1 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p1_t6_ub", (getter)Common_get_ur_ec_p1_t6_ub,(setter)Common_set_ur_ec_p1_t6_ub, - PyDoc_STR("*float*: Period 1 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 1 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_br", (getter)Common_get_ur_ec_p2_t1_br,(setter)Common_set_ur_ec_p2_t1_br, - PyDoc_STR("*float*: Period 2 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_sr", (getter)Common_get_ur_ec_p2_t1_sr,(setter)Common_set_ur_ec_p2_t1_sr, - PyDoc_STR("*float*: Period 2 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t1_ub", (getter)Common_get_ur_ec_p2_t1_ub,(setter)Common_set_ur_ec_p2_t1_ub, - PyDoc_STR("*float*: Period 2 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_br", (getter)Common_get_ur_ec_p2_t2_br,(setter)Common_set_ur_ec_p2_t2_br, - PyDoc_STR("*float*: Period 2 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_sr", (getter)Common_get_ur_ec_p2_t2_sr,(setter)Common_set_ur_ec_p2_t2_sr, - PyDoc_STR("*float*: Period 2 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t2_ub", (getter)Common_get_ur_ec_p2_t2_ub,(setter)Common_set_ur_ec_p2_t2_ub, - PyDoc_STR("*float*: Period 2 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_br", (getter)Common_get_ur_ec_p2_t3_br,(setter)Common_set_ur_ec_p2_t3_br, - PyDoc_STR("*float*: Period 2 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_sr", (getter)Common_get_ur_ec_p2_t3_sr,(setter)Common_set_ur_ec_p2_t3_sr, - PyDoc_STR("*float*: Period 2 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t3_ub", (getter)Common_get_ur_ec_p2_t3_ub,(setter)Common_set_ur_ec_p2_t3_ub, - PyDoc_STR("*float*: Period 2 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_br", (getter)Common_get_ur_ec_p2_t4_br,(setter)Common_set_ur_ec_p2_t4_br, - PyDoc_STR("*float*: Period 2 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_sr", (getter)Common_get_ur_ec_p2_t4_sr,(setter)Common_set_ur_ec_p2_t4_sr, - PyDoc_STR("*float*: Period 2 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t4_ub", (getter)Common_get_ur_ec_p2_t4_ub,(setter)Common_set_ur_ec_p2_t4_ub, - PyDoc_STR("*float*: Period 2 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_br", (getter)Common_get_ur_ec_p2_t5_br,(setter)Common_set_ur_ec_p2_t5_br, - PyDoc_STR("*float*: Period 2 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_sr", (getter)Common_get_ur_ec_p2_t5_sr,(setter)Common_set_ur_ec_p2_t5_sr, - PyDoc_STR("*float*: Period 2 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t5_ub", (getter)Common_get_ur_ec_p2_t5_ub,(setter)Common_set_ur_ec_p2_t5_ub, - PyDoc_STR("*float*: Period 2 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_br", (getter)Common_get_ur_ec_p2_t6_br,(setter)Common_set_ur_ec_p2_t6_br, - PyDoc_STR("*float*: Period 2 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_sr", (getter)Common_get_ur_ec_p2_t6_sr,(setter)Common_set_ur_ec_p2_t6_sr, - PyDoc_STR("*float*: Period 2 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p2_t6_ub", (getter)Common_get_ur_ec_p2_t6_ub,(setter)Common_set_ur_ec_p2_t6_ub, - PyDoc_STR("*float*: Period 2 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 2 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_br", (getter)Common_get_ur_ec_p3_t1_br,(setter)Common_set_ur_ec_p3_t1_br, - PyDoc_STR("*float*: Period 3 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_sr", (getter)Common_get_ur_ec_p3_t1_sr,(setter)Common_set_ur_ec_p3_t1_sr, - PyDoc_STR("*float*: Period 3 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t1_ub", (getter)Common_get_ur_ec_p3_t1_ub,(setter)Common_set_ur_ec_p3_t1_ub, - PyDoc_STR("*float*: Period 3 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_br", (getter)Common_get_ur_ec_p3_t2_br,(setter)Common_set_ur_ec_p3_t2_br, - PyDoc_STR("*float*: Period 3 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_sr", (getter)Common_get_ur_ec_p3_t2_sr,(setter)Common_set_ur_ec_p3_t2_sr, - PyDoc_STR("*float*: Period 3 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t2_ub", (getter)Common_get_ur_ec_p3_t2_ub,(setter)Common_set_ur_ec_p3_t2_ub, - PyDoc_STR("*float*: Period 3 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_br", (getter)Common_get_ur_ec_p3_t3_br,(setter)Common_set_ur_ec_p3_t3_br, - PyDoc_STR("*float*: Period 3 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_sr", (getter)Common_get_ur_ec_p3_t3_sr,(setter)Common_set_ur_ec_p3_t3_sr, - PyDoc_STR("*float*: Period 3 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t3_ub", (getter)Common_get_ur_ec_p3_t3_ub,(setter)Common_set_ur_ec_p3_t3_ub, - PyDoc_STR("*float*: Period 3 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_br", (getter)Common_get_ur_ec_p3_t4_br,(setter)Common_set_ur_ec_p3_t4_br, - PyDoc_STR("*float*: Period 3 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_sr", (getter)Common_get_ur_ec_p3_t4_sr,(setter)Common_set_ur_ec_p3_t4_sr, - PyDoc_STR("*float*: Period 3 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t4_ub", (getter)Common_get_ur_ec_p3_t4_ub,(setter)Common_set_ur_ec_p3_t4_ub, - PyDoc_STR("*float*: Period 3 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_br", (getter)Common_get_ur_ec_p3_t5_br,(setter)Common_set_ur_ec_p3_t5_br, - PyDoc_STR("*float*: Period 3 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_sr", (getter)Common_get_ur_ec_p3_t5_sr,(setter)Common_set_ur_ec_p3_t5_sr, - PyDoc_STR("*float*: Period 3 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t5_ub", (getter)Common_get_ur_ec_p3_t5_ub,(setter)Common_set_ur_ec_p3_t5_ub, - PyDoc_STR("*float*: Period 3 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_br", (getter)Common_get_ur_ec_p3_t6_br,(setter)Common_set_ur_ec_p3_t6_br, - PyDoc_STR("*float*: Period 3 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_sr", (getter)Common_get_ur_ec_p3_t6_sr,(setter)Common_set_ur_ec_p3_t6_sr, - PyDoc_STR("*float*: Period 3 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p3_t6_ub", (getter)Common_get_ur_ec_p3_t6_ub,(setter)Common_set_ur_ec_p3_t6_ub, - PyDoc_STR("*float*: Period 3 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 3 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_br", (getter)Common_get_ur_ec_p4_t1_br,(setter)Common_set_ur_ec_p4_t1_br, - PyDoc_STR("*float*: Period 4 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_sr", (getter)Common_get_ur_ec_p4_t1_sr,(setter)Common_set_ur_ec_p4_t1_sr, - PyDoc_STR("*float*: Period 4 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t1_ub", (getter)Common_get_ur_ec_p4_t1_ub,(setter)Common_set_ur_ec_p4_t1_ub, - PyDoc_STR("*float*: Period 4 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_br", (getter)Common_get_ur_ec_p4_t2_br,(setter)Common_set_ur_ec_p4_t2_br, - PyDoc_STR("*float*: Period 4 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_sr", (getter)Common_get_ur_ec_p4_t2_sr,(setter)Common_set_ur_ec_p4_t2_sr, - PyDoc_STR("*float*: Period 4 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t2_ub", (getter)Common_get_ur_ec_p4_t2_ub,(setter)Common_set_ur_ec_p4_t2_ub, - PyDoc_STR("*float*: Period 4 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_br", (getter)Common_get_ur_ec_p4_t3_br,(setter)Common_set_ur_ec_p4_t3_br, - PyDoc_STR("*float*: Period 4 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_sr", (getter)Common_get_ur_ec_p4_t3_sr,(setter)Common_set_ur_ec_p4_t3_sr, - PyDoc_STR("*float*: Period 4 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t3_ub", (getter)Common_get_ur_ec_p4_t3_ub,(setter)Common_set_ur_ec_p4_t3_ub, - PyDoc_STR("*float*: Period 4 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_br", (getter)Common_get_ur_ec_p4_t4_br,(setter)Common_set_ur_ec_p4_t4_br, - PyDoc_STR("*float*: Period 4 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_sr", (getter)Common_get_ur_ec_p4_t4_sr,(setter)Common_set_ur_ec_p4_t4_sr, - PyDoc_STR("*float*: Period 4 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t4_ub", (getter)Common_get_ur_ec_p4_t4_ub,(setter)Common_set_ur_ec_p4_t4_ub, - PyDoc_STR("*float*: Period 4 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_br", (getter)Common_get_ur_ec_p4_t5_br,(setter)Common_set_ur_ec_p4_t5_br, - PyDoc_STR("*float*: Period 4 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_sr", (getter)Common_get_ur_ec_p4_t5_sr,(setter)Common_set_ur_ec_p4_t5_sr, - PyDoc_STR("*float*: Period 4 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t5_ub", (getter)Common_get_ur_ec_p4_t5_ub,(setter)Common_set_ur_ec_p4_t5_ub, - PyDoc_STR("*float*: Period 4 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_br", (getter)Common_get_ur_ec_p4_t6_br,(setter)Common_set_ur_ec_p4_t6_br, - PyDoc_STR("*float*: Period 4 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_sr", (getter)Common_get_ur_ec_p4_t6_sr,(setter)Common_set_ur_ec_p4_t6_sr, - PyDoc_STR("*float*: Period 4 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p4_t6_ub", (getter)Common_get_ur_ec_p4_t6_ub,(setter)Common_set_ur_ec_p4_t6_ub, - PyDoc_STR("*float*: Period 4 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 4 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_br", (getter)Common_get_ur_ec_p5_t1_br,(setter)Common_set_ur_ec_p5_t1_br, - PyDoc_STR("*float*: Period 5 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_sr", (getter)Common_get_ur_ec_p5_t1_sr,(setter)Common_set_ur_ec_p5_t1_sr, - PyDoc_STR("*float*: Period 5 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t1_ub", (getter)Common_get_ur_ec_p5_t1_ub,(setter)Common_set_ur_ec_p5_t1_ub, - PyDoc_STR("*float*: Period 5 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_br", (getter)Common_get_ur_ec_p5_t2_br,(setter)Common_set_ur_ec_p5_t2_br, - PyDoc_STR("*float*: Period 5 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_sr", (getter)Common_get_ur_ec_p5_t2_sr,(setter)Common_set_ur_ec_p5_t2_sr, - PyDoc_STR("*float*: Period 5 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t2_ub", (getter)Common_get_ur_ec_p5_t2_ub,(setter)Common_set_ur_ec_p5_t2_ub, - PyDoc_STR("*float*: Period 5 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_br", (getter)Common_get_ur_ec_p5_t3_br,(setter)Common_set_ur_ec_p5_t3_br, - PyDoc_STR("*float*: Period 5 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_sr", (getter)Common_get_ur_ec_p5_t3_sr,(setter)Common_set_ur_ec_p5_t3_sr, - PyDoc_STR("*float*: Period 5 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t3_ub", (getter)Common_get_ur_ec_p5_t3_ub,(setter)Common_set_ur_ec_p5_t3_ub, - PyDoc_STR("*float*: Period 5 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_br", (getter)Common_get_ur_ec_p5_t4_br,(setter)Common_set_ur_ec_p5_t4_br, - PyDoc_STR("*float*: Period 5 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_sr", (getter)Common_get_ur_ec_p5_t4_sr,(setter)Common_set_ur_ec_p5_t4_sr, - PyDoc_STR("*float*: Period 5 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t4_ub", (getter)Common_get_ur_ec_p5_t4_ub,(setter)Common_set_ur_ec_p5_t4_ub, - PyDoc_STR("*float*: Period 5 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_br", (getter)Common_get_ur_ec_p5_t5_br,(setter)Common_set_ur_ec_p5_t5_br, - PyDoc_STR("*float*: Period 5 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_sr", (getter)Common_get_ur_ec_p5_t5_sr,(setter)Common_set_ur_ec_p5_t5_sr, - PyDoc_STR("*float*: Period 5 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t5_ub", (getter)Common_get_ur_ec_p5_t5_ub,(setter)Common_set_ur_ec_p5_t5_ub, - PyDoc_STR("*float*: Period 5 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_br", (getter)Common_get_ur_ec_p5_t6_br,(setter)Common_set_ur_ec_p5_t6_br, - PyDoc_STR("*float*: Period 5 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_sr", (getter)Common_get_ur_ec_p5_t6_sr,(setter)Common_set_ur_ec_p5_t6_sr, - PyDoc_STR("*float*: Period 5 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p5_t6_ub", (getter)Common_get_ur_ec_p5_t6_ub,(setter)Common_set_ur_ec_p5_t6_ub, - PyDoc_STR("*float*: Period 5 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 5 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_br", (getter)Common_get_ur_ec_p6_t1_br,(setter)Common_set_ur_ec_p6_t1_br, - PyDoc_STR("*float*: Period 6 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_sr", (getter)Common_get_ur_ec_p6_t1_sr,(setter)Common_set_ur_ec_p6_t1_sr, - PyDoc_STR("*float*: Period 6 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t1_ub", (getter)Common_get_ur_ec_p6_t1_ub,(setter)Common_set_ur_ec_p6_t1_ub, - PyDoc_STR("*float*: Period 6 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_br", (getter)Common_get_ur_ec_p6_t2_br,(setter)Common_set_ur_ec_p6_t2_br, - PyDoc_STR("*float*: Period 6 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_sr", (getter)Common_get_ur_ec_p6_t2_sr,(setter)Common_set_ur_ec_p6_t2_sr, - PyDoc_STR("*float*: Period 6 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t2_ub", (getter)Common_get_ur_ec_p6_t2_ub,(setter)Common_set_ur_ec_p6_t2_ub, - PyDoc_STR("*float*: Period 6 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_br", (getter)Common_get_ur_ec_p6_t3_br,(setter)Common_set_ur_ec_p6_t3_br, - PyDoc_STR("*float*: Period 6 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_sr", (getter)Common_get_ur_ec_p6_t3_sr,(setter)Common_set_ur_ec_p6_t3_sr, - PyDoc_STR("*float*: Period 6 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t3_ub", (getter)Common_get_ur_ec_p6_t3_ub,(setter)Common_set_ur_ec_p6_t3_ub, - PyDoc_STR("*float*: Period 6 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_br", (getter)Common_get_ur_ec_p6_t4_br,(setter)Common_set_ur_ec_p6_t4_br, - PyDoc_STR("*float*: Period 6 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_sr", (getter)Common_get_ur_ec_p6_t4_sr,(setter)Common_set_ur_ec_p6_t4_sr, - PyDoc_STR("*float*: Period 6 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t4_ub", (getter)Common_get_ur_ec_p6_t4_ub,(setter)Common_set_ur_ec_p6_t4_ub, - PyDoc_STR("*float*: Period 6 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_br", (getter)Common_get_ur_ec_p6_t5_br,(setter)Common_set_ur_ec_p6_t5_br, - PyDoc_STR("*float*: Period 6 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_sr", (getter)Common_get_ur_ec_p6_t5_sr,(setter)Common_set_ur_ec_p6_t5_sr, - PyDoc_STR("*float*: Period 6 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t5_ub", (getter)Common_get_ur_ec_p6_t5_ub,(setter)Common_set_ur_ec_p6_t5_ub, - PyDoc_STR("*float*: Period 6 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_br", (getter)Common_get_ur_ec_p6_t6_br,(setter)Common_set_ur_ec_p6_t6_br, - PyDoc_STR("*float*: Period 6 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_sr", (getter)Common_get_ur_ec_p6_t6_sr,(setter)Common_set_ur_ec_p6_t6_sr, - PyDoc_STR("*float*: Period 6 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p6_t6_ub", (getter)Common_get_ur_ec_p6_t6_ub,(setter)Common_set_ur_ec_p6_t6_ub, - PyDoc_STR("*float*: Period 6 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 6 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_br", (getter)Common_get_ur_ec_p7_t1_br,(setter)Common_set_ur_ec_p7_t1_br, - PyDoc_STR("*float*: Period 7 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_sr", (getter)Common_get_ur_ec_p7_t1_sr,(setter)Common_set_ur_ec_p7_t1_sr, - PyDoc_STR("*float*: Period 7 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t1_ub", (getter)Common_get_ur_ec_p7_t1_ub,(setter)Common_set_ur_ec_p7_t1_ub, - PyDoc_STR("*float*: Period 7 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_br", (getter)Common_get_ur_ec_p7_t2_br,(setter)Common_set_ur_ec_p7_t2_br, - PyDoc_STR("*float*: Period 7 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_sr", (getter)Common_get_ur_ec_p7_t2_sr,(setter)Common_set_ur_ec_p7_t2_sr, - PyDoc_STR("*float*: Period 7 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t2_ub", (getter)Common_get_ur_ec_p7_t2_ub,(setter)Common_set_ur_ec_p7_t2_ub, - PyDoc_STR("*float*: Period 7 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_br", (getter)Common_get_ur_ec_p7_t3_br,(setter)Common_set_ur_ec_p7_t3_br, - PyDoc_STR("*float*: Period 7 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_sr", (getter)Common_get_ur_ec_p7_t3_sr,(setter)Common_set_ur_ec_p7_t3_sr, - PyDoc_STR("*float*: Period 7 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t3_ub", (getter)Common_get_ur_ec_p7_t3_ub,(setter)Common_set_ur_ec_p7_t3_ub, - PyDoc_STR("*float*: Period 7 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_br", (getter)Common_get_ur_ec_p7_t4_br,(setter)Common_set_ur_ec_p7_t4_br, - PyDoc_STR("*float*: Period 7 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_sr", (getter)Common_get_ur_ec_p7_t4_sr,(setter)Common_set_ur_ec_p7_t4_sr, - PyDoc_STR("*float*: Period 7 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t4_ub", (getter)Common_get_ur_ec_p7_t4_ub,(setter)Common_set_ur_ec_p7_t4_ub, - PyDoc_STR("*float*: Period 7 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_br", (getter)Common_get_ur_ec_p7_t5_br,(setter)Common_set_ur_ec_p7_t5_br, - PyDoc_STR("*float*: Period 7 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_sr", (getter)Common_get_ur_ec_p7_t5_sr,(setter)Common_set_ur_ec_p7_t5_sr, - PyDoc_STR("*float*: Period 7 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t5_ub", (getter)Common_get_ur_ec_p7_t5_ub,(setter)Common_set_ur_ec_p7_t5_ub, - PyDoc_STR("*float*: Period 7 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_br", (getter)Common_get_ur_ec_p7_t6_br,(setter)Common_set_ur_ec_p7_t6_br, - PyDoc_STR("*float*: Period 7 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_sr", (getter)Common_get_ur_ec_p7_t6_sr,(setter)Common_set_ur_ec_p7_t6_sr, - PyDoc_STR("*float*: Period 7 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p7_t6_ub", (getter)Common_get_ur_ec_p7_t6_ub,(setter)Common_set_ur_ec_p7_t6_ub, - PyDoc_STR("*float*: Period 7 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 7 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_br", (getter)Common_get_ur_ec_p8_t1_br,(setter)Common_set_ur_ec_p8_t1_br, - PyDoc_STR("*float*: Period 8 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_sr", (getter)Common_get_ur_ec_p8_t1_sr,(setter)Common_set_ur_ec_p8_t1_sr, - PyDoc_STR("*float*: Period 8 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t1_ub", (getter)Common_get_ur_ec_p8_t1_ub,(setter)Common_set_ur_ec_p8_t1_ub, - PyDoc_STR("*float*: Period 8 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_br", (getter)Common_get_ur_ec_p8_t2_br,(setter)Common_set_ur_ec_p8_t2_br, - PyDoc_STR("*float*: Period 8 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_sr", (getter)Common_get_ur_ec_p8_t2_sr,(setter)Common_set_ur_ec_p8_t2_sr, - PyDoc_STR("*float*: Period 8 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t2_ub", (getter)Common_get_ur_ec_p8_t2_ub,(setter)Common_set_ur_ec_p8_t2_ub, - PyDoc_STR("*float*: Period 8 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_br", (getter)Common_get_ur_ec_p8_t3_br,(setter)Common_set_ur_ec_p8_t3_br, - PyDoc_STR("*float*: Period 8 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_sr", (getter)Common_get_ur_ec_p8_t3_sr,(setter)Common_set_ur_ec_p8_t3_sr, - PyDoc_STR("*float*: Period 8 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t3_ub", (getter)Common_get_ur_ec_p8_t3_ub,(setter)Common_set_ur_ec_p8_t3_ub, - PyDoc_STR("*float*: Period 8 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_br", (getter)Common_get_ur_ec_p8_t4_br,(setter)Common_set_ur_ec_p8_t4_br, - PyDoc_STR("*float*: Period 8 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_sr", (getter)Common_get_ur_ec_p8_t4_sr,(setter)Common_set_ur_ec_p8_t4_sr, - PyDoc_STR("*float*: Period 8 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t4_ub", (getter)Common_get_ur_ec_p8_t4_ub,(setter)Common_set_ur_ec_p8_t4_ub, - PyDoc_STR("*float*: Period 8 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_br", (getter)Common_get_ur_ec_p8_t5_br,(setter)Common_set_ur_ec_p8_t5_br, - PyDoc_STR("*float*: Period 8 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_sr", (getter)Common_get_ur_ec_p8_t5_sr,(setter)Common_set_ur_ec_p8_t5_sr, - PyDoc_STR("*float*: Period 8 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t5_ub", (getter)Common_get_ur_ec_p8_t5_ub,(setter)Common_set_ur_ec_p8_t5_ub, - PyDoc_STR("*float*: Period 8 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_br", (getter)Common_get_ur_ec_p8_t6_br,(setter)Common_set_ur_ec_p8_t6_br, - PyDoc_STR("*float*: Period 8 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_sr", (getter)Common_get_ur_ec_p8_t6_sr,(setter)Common_set_ur_ec_p8_t6_sr, - PyDoc_STR("*float*: Period 8 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p8_t6_ub", (getter)Common_get_ur_ec_p8_t6_ub,(setter)Common_set_ur_ec_p8_t6_ub, - PyDoc_STR("*float*: Period 8 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 8 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_br", (getter)Common_get_ur_ec_p9_t1_br,(setter)Common_set_ur_ec_p9_t1_br, - PyDoc_STR("*float*: Period 9 Tier 1 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_sr", (getter)Common_get_ur_ec_p9_t1_sr,(setter)Common_set_ur_ec_p9_t1_sr, - PyDoc_STR("*float*: Period 9 Tier 1 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t1_ub", (getter)Common_get_ur_ec_p9_t1_ub,(setter)Common_set_ur_ec_p9_t1_ub, - PyDoc_STR("*float*: Period 9 Tier 1 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 1 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_br", (getter)Common_get_ur_ec_p9_t2_br,(setter)Common_set_ur_ec_p9_t2_br, - PyDoc_STR("*float*: Period 9 Tier 2 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_sr", (getter)Common_get_ur_ec_p9_t2_sr,(setter)Common_set_ur_ec_p9_t2_sr, - PyDoc_STR("*float*: Period 9 Tier 2 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t2_ub", (getter)Common_get_ur_ec_p9_t2_ub,(setter)Common_set_ur_ec_p9_t2_ub, - PyDoc_STR("*float*: Period 9 Tier 2 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 2 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_br", (getter)Common_get_ur_ec_p9_t3_br,(setter)Common_set_ur_ec_p9_t3_br, - PyDoc_STR("*float*: Period 9 Tier 3 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_sr", (getter)Common_get_ur_ec_p9_t3_sr,(setter)Common_set_ur_ec_p9_t3_sr, - PyDoc_STR("*float*: Period 9 Tier 3 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t3_ub", (getter)Common_get_ur_ec_p9_t3_ub,(setter)Common_set_ur_ec_p9_t3_ub, - PyDoc_STR("*float*: Period 9 Tier 3 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 3 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_br", (getter)Common_get_ur_ec_p9_t4_br,(setter)Common_set_ur_ec_p9_t4_br, - PyDoc_STR("*float*: Period 9 Tier 4 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_sr", (getter)Common_get_ur_ec_p9_t4_sr,(setter)Common_set_ur_ec_p9_t4_sr, - PyDoc_STR("*float*: Period 9 Tier 4 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t4_ub", (getter)Common_get_ur_ec_p9_t4_ub,(setter)Common_set_ur_ec_p9_t4_ub, - PyDoc_STR("*float*: Period 9 Tier 4 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 4 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_br", (getter)Common_get_ur_ec_p9_t5_br,(setter)Common_set_ur_ec_p9_t5_br, - PyDoc_STR("*float*: Period 9 Tier 5 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_sr", (getter)Common_get_ur_ec_p9_t5_sr,(setter)Common_set_ur_ec_p9_t5_sr, - PyDoc_STR("*float*: Period 9 Tier 5 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t5_ub", (getter)Common_get_ur_ec_p9_t5_ub,(setter)Common_set_ur_ec_p9_t5_ub, - PyDoc_STR("*float*: Period 9 Tier 5 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 5 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_br", (getter)Common_get_ur_ec_p9_t6_br,(setter)Common_set_ur_ec_p9_t6_br, - PyDoc_STR("*float*: Period 9 Tier 6 Energy Buy Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Energy Buy Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_sr", (getter)Common_get_ur_ec_p9_t6_sr,(setter)Common_set_ur_ec_p9_t6_sr, - PyDoc_STR("*float*: Period 9 Tier 6 Energy Sell Rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Energy Sell Rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_p9_t6_ub", (getter)Common_get_ur_ec_p9_t6_ub,(setter)Common_set_ur_ec_p9_t6_ub, - PyDoc_STR("*float*: Period 9 Tier 6 Maximum Energy Usage [kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Period 9 Tier 6 Maximum Energy Usage [kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ec_sched_weekday", (getter)Common_get_ur_ec_sched_weekday,(setter)Common_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy Charge Weekday Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_ec_enable=1"), + PyDoc_STR("*sequence[sequence]*: Energy Charge Weekday Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_ec_enable=1"), NULL}, {"ur_ec_sched_weekend", (getter)Common_get_ur_ec_sched_weekend,(setter)Common_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy Charge Weekend Schedule\n\n*Info*: 12x24\n\n*Required*: True if ur_ec_enable=1"), + PyDoc_STR("*sequence[sequence]*: Energy Charge Weekend Schedule\n\n**Info:**\n12x24\n\n**Required:**\nRequired if ur_ec_enable=1"), NULL}, {"ur_enable_net_metering", (getter)Common_get_ur_enable_net_metering,(setter)Common_set_ur_enable_net_metering, - PyDoc_STR("*float*: Enable net metering [0/1]\n\n*Info*: Enforce net metering\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Enable net metering [0/1]\n\n**Info:**\nEnforce net metering\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_excess_monthly_energy_or_dollars", (getter)Common_get_ur_excess_monthly_energy_or_dollars,(setter)Common_set_ur_excess_monthly_energy_or_dollars, - PyDoc_STR("*float*: Net metering handling of monthly excess [0=Rollover energy,1=Rollover dollars]\n\n*Info*: Net metering monthly excess\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Net metering handling of monthly excess [0=Rollover energy,1=Rollover dollars]\n\n**Info:**\nNet metering monthly excess\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_flat_buy_rate", (getter)Common_get_ur_flat_buy_rate,(setter)Common_set_ur_flat_buy_rate, - PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n*Required*: True"), + PyDoc_STR("*float*: Flat rate (buy) [$/kWh]\n\n**Required:**\nTrue"), NULL}, {"ur_flat_sell_rate", (getter)Common_get_ur_flat_sell_rate,(setter)Common_set_ur_flat_sell_rate, - PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Flat rate (sell) [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)Common_get_ur_monthly_fixed_charge,(setter)Common_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_min_charge", (getter)Common_get_ur_monthly_min_charge,(setter)Common_set_ur_monthly_min_charge, - PyDoc_STR("*float*: Monthly minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)Common_get_ur_nm_yearend_sell_rate,(setter)Common_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -8021,11 +8021,11 @@ TimeSeries_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSeries_methods[] = { {"assign", (PyCFunction)TimeSeries_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSeries_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSeries_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8055,10 +8055,10 @@ TimeSeries_set_load(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TimeSeries_getset[] = { {"gen", (getter)TimeSeries_get_gen,(setter)TimeSeries_set_gen, - PyDoc_STR("*sequence*: System power generated [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: System power generated [kW]\n\n**Required:**\nTrue"), NULL}, {"load", (getter)TimeSeries_get_load,(setter)TimeSeries_set_load, - PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -8173,11 +8173,11 @@ Financials_export(VarGroupObject *self, PyObject *args) static PyMethodDef Financials_methods[] = { {"assign", (PyCFunction)Financials_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Financials_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Financials_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Financials_vals = { var: val, ...}``")}, {"export", (PyCFunction)Financials_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8195,7 +8195,7 @@ Financials_set_inflation_rate(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef Financials_getset[] = { {"inflation_rate", (getter)Financials_get_inflation_rate,(setter)Financials_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -8310,11 +8310,11 @@ AnnualOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef AnnualOutput_methods[] = { {"assign", (PyCFunction)AnnualOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AnnualOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)AnnualOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -8332,7 +8332,7 @@ AnnualOutput_set_degradation(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef AnnualOutput_getset[] = { {"degradation", (getter)AnnualOutput_get_degradation,(setter)AnnualOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -8447,11 +8447,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -15975,12 +15975,11 @@ static PyMethodDef Utilityrate3Module_methods[] = { {"new", Utilityrate3_new, METH_VARARGS, PyDoc_STR("new() -> Utilityrate3")}, {"default", Utilityrate3_default, METH_VARARGS, - PyDoc_STR("default(config) -> Utilityrate3\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Utilityrate3\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Utilityrate3_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Utilityrate3\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Utilityrate3\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Utilityrate3_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Utilityrate3\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Utilityrate3\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Utilityrate4.c b/modules/Utilityrate4.c index b9f53a23..b3985a30 100644 --- a/modules/Utilityrate4.c +++ b/modules/Utilityrate4.c @@ -69,11 +69,11 @@ Common_export(VarGroupObject *self, PyObject *args) static PyMethodDef Common_methods[] = { {"assign", (PyCFunction)Common_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Common_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Common_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Common_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Common_vals = { var: val, ...}``")}, {"export", (PyCFunction)Common_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -295,58 +295,58 @@ Common_set_ur_sell_eq_buy(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Common_getset[] = { {"analysis_period", (getter)Common_get_analysis_period,(setter)Common_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"load_escalation", (getter)Common_get_load_escalation,(setter)Common_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rate_escalation", (getter)Common_get_rate_escalation,(setter)Common_set_rate_escalation, - PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"system_use_lifetime_output", (getter)Common_get_system_use_lifetime_output,(setter)Common_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {"ur_annual_min_charge", (getter)Common_get_ur_annual_min_charge,(setter)Common_set_ur_annual_min_charge, - PyDoc_STR("*float*: Annual minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Annual minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_enable", (getter)Common_get_ur_dc_enable,(setter)Common_set_ur_dc_enable, - PyDoc_STR("*float*: Enable demand charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable demand charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_flat_mat", (getter)Common_get_ur_dc_flat_mat,(setter)Common_set_ur_dc_flat_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekday", (getter)Common_get_ur_dc_sched_weekday,(setter)Common_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sched_weekend", (getter)Common_get_ur_dc_sched_weekend,(setter)Common_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_tou_mat", (getter)Common_get_ur_dc_tou_mat,(setter)Common_set_ur_dc_tou_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_ec_sched_weekday", (getter)Common_get_ur_ec_sched_weekday,(setter)Common_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n*Info*: 12x24\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n**Info:**\n12x24\n\n**Required:**\nTrue"), NULL}, {"ur_ec_sched_weekend", (getter)Common_get_ur_ec_sched_weekend,(setter)Common_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n*Info*: 12x24\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n**Info:**\n12x24\n\n**Required:**\nTrue"), NULL}, {"ur_ec_tou_mat", (getter)Common_get_ur_ec_tou_mat,(setter)Common_set_ur_ec_tou_mat, - PyDoc_STR("*sequence[sequence]*: Energy rates table\n\n*Required*: True"), + PyDoc_STR("*sequence[sequence]*: Energy rates table\n\n**Required:**\nTrue"), NULL}, {"ur_metering_option", (getter)Common_get_ur_metering_option,(setter)Common_set_ur_metering_option, - PyDoc_STR("*float*: Metering options [0=Single meter with monthly rollover credits in kWh,1=Single meter with monthly rollover credits in $,2=Single meter with no monthly rollover credits,3=Two meters with all generation sold and all load purchased]\n\n*Info*: Net metering monthly excess\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Metering options [0=Single meter with monthly rollover credits in kWh,1=Single meter with monthly rollover credits in $,2=Single meter with no monthly rollover credits,3=Two meters with all generation sold and all load purchased]\n\n**Info:**\nNet metering monthly excess\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)Common_get_ur_monthly_fixed_charge,(setter)Common_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_min_charge", (getter)Common_get_ur_monthly_min_charge,(setter)Common_set_ur_monthly_min_charge, - PyDoc_STR("*float*: Monthly minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)Common_get_ur_nm_yearend_sell_rate,(setter)Common_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Year end sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_sell_eq_buy", (getter)Common_get_ur_sell_eq_buy,(setter)Common_set_ur_sell_eq_buy, - PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n*Info*: Optional override\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n**Info:**\nOptional override\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -461,11 +461,11 @@ TimeSeries_export(VarGroupObject *self, PyObject *args) static PyMethodDef TimeSeries_methods[] = { {"assign", (PyCFunction)TimeSeries_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"replace", (PyCFunction)TimeSeries_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``TimeSeries_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``TimeSeries_vals = { var: val, ...}``")}, {"export", (PyCFunction)TimeSeries_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -495,10 +495,10 @@ TimeSeries_set_load(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef TimeSeries_getset[] = { {"gen", (getter)TimeSeries_get_gen,(setter)TimeSeries_set_gen, - PyDoc_STR("*sequence*: System power generated [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: System power generated [kW]\n\n**Required:**\nTrue"), NULL}, {"load", (getter)TimeSeries_get_load,(setter)TimeSeries_set_load, - PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Electricity load (year 1) [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -613,11 +613,11 @@ Financials_export(VarGroupObject *self, PyObject *args) static PyMethodDef Financials_methods[] = { {"assign", (PyCFunction)Financials_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Financials_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Financials_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Financials_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Financials_vals = { var: val, ...}``")}, {"export", (PyCFunction)Financials_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -635,7 +635,7 @@ Financials_set_inflation_rate(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef Financials_getset[] = { {"inflation_rate", (getter)Financials_get_inflation_rate,(setter)Financials_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -750,11 +750,11 @@ AnnualOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef AnnualOutput_methods[] = { {"assign", (PyCFunction)AnnualOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)AnnualOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``AnnualOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``AnnualOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)AnnualOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -772,7 +772,7 @@ AnnualOutput_set_degradation(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef AnnualOutput_getset[] = { {"degradation", (getter)AnnualOutput_get_degradation,(setter)AnnualOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -887,11 +887,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2385,12 +2385,11 @@ static PyMethodDef Utilityrate4Module_methods[] = { {"new", Utilityrate4_new, METH_VARARGS, PyDoc_STR("new() -> Utilityrate4")}, {"default", Utilityrate4_default, METH_VARARGS, - PyDoc_STR("default(config) -> Utilityrate4\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Utilityrate4\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Utilityrate4_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Utilityrate4\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Utilityrate4\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Utilityrate4_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Utilityrate4\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Utilityrate4\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Utilityrate5.c b/modules/Utilityrate5.c index 40697c7d..08af2dbd 100644 --- a/modules/Utilityrate5.c +++ b/modules/Utilityrate5.c @@ -69,11 +69,11 @@ ElectricityRates_export(VarGroupObject *self, PyObject *args) static PyMethodDef ElectricityRates_methods[] = { {"assign", (PyCFunction)ElectricityRates_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"replace", (PyCFunction)ElectricityRates_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``ElectricityRates_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``ElectricityRates_vals = { var: val, ...}``")}, {"export", (PyCFunction)ElectricityRates_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -427,82 +427,82 @@ ElectricityRates_set_ur_yearzero_usage_peaks(VarGroupObject *self, PyObject *val static PyGetSetDef ElectricityRates_getset[] = { {"TOU_demand_single_peak", (getter)ElectricityRates_get_TOU_demand_single_peak,(setter)ElectricityRates_set_TOU_demand_single_peak, - PyDoc_STR("*float*: Use single monthly peak for TOU demand charge [0/1]\n\n*Options*: 0=use TOU peak,1=use flat peak\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Use single monthly peak for TOU demand charge [0/1]\n\n**Options:**\n0=use TOU peak,1=use flat peak\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_electricity_rates", (getter)ElectricityRates_get_en_electricity_rates,(setter)ElectricityRates_set_en_electricity_rates, - PyDoc_STR("*float*: Optionally enable/disable electricity_rate [years]\n\n*Constraints*: INTEGER,MIN=0,MAX=1"), + PyDoc_STR("*float*: Optionally enable/disable electricity_rate [years]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1"), NULL}, {"rate_escalation", (getter)ElectricityRates_get_rate_escalation,(setter)ElectricityRates_set_rate_escalation, - PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual electricity rate escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_annual_min_charge", (getter)ElectricityRates_get_ur_annual_min_charge,(setter)ElectricityRates_set_ur_annual_min_charge, - PyDoc_STR("*float*: Annual minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Annual minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_billing_demand_lookback_percentages", (getter)ElectricityRates_get_ur_billing_demand_lookback_percentages,(setter)ElectricityRates_set_ur_billing_demand_lookback_percentages, - PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n*Info*: 12x2\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand lookback percentages by month and consider actual peak demand\n\n**Info:**\n12x2\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_lookback_period", (getter)ElectricityRates_get_ur_billing_demand_lookback_period,(setter)ElectricityRates_set_ur_billing_demand_lookback_period, - PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Billing demand lookback period [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_billing_demand_minimum", (getter)ElectricityRates_get_ur_billing_demand_minimum,(setter)ElectricityRates_set_ur_billing_demand_minimum, - PyDoc_STR("*float*: Minimum billing demand\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*float*: Minimum billing demand\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_billing_demand_periods", (getter)ElectricityRates_get_ur_dc_billing_demand_periods,(setter)ElectricityRates_set_ur_dc_billing_demand_periods, - PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence[sequence]*: Billing demand applicability to a given demand charge time of use period\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {"ur_dc_enable", (getter)ElectricityRates_get_ur_dc_enable,(setter)ElectricityRates_set_ur_dc_enable, - PyDoc_STR("*float*: Enable demand charge [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable demand charge [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_dc_flat_mat", (getter)ElectricityRates_get_ur_dc_flat_mat,(setter)ElectricityRates_set_ur_dc_flat_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (flat) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_dc_sched_weekday", (getter)ElectricityRates_get_ur_dc_sched_weekday,(setter)ElectricityRates_set_ur_dc_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_sched_weekend", (getter)ElectricityRates_get_ur_dc_sched_weekend,(setter)ElectricityRates_set_ur_dc_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Demand charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_dc_tou_mat", (getter)ElectricityRates_get_ur_dc_tou_mat,(setter)ElectricityRates_set_ur_dc_tou_mat, - PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n*Required*: True if ur_dc_enable=1"), + PyDoc_STR("*sequence[sequence]*: Demand rates (TOU) table\n\n**Required:**\nRequired if ur_dc_enable=1"), NULL}, {"ur_ec_sched_weekday", (getter)ElectricityRates_get_ur_ec_sched_weekday,(setter)ElectricityRates_set_ur_ec_sched_weekday, - PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekday schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_sched_weekend", (getter)ElectricityRates_get_ur_ec_sched_weekend,(setter)ElectricityRates_set_ur_ec_sched_weekend, - PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n*Info*: 12x24"), + PyDoc_STR("*sequence[sequence]*: Energy charge weekend schedule\n\n**Info:**\n12x24"), NULL}, {"ur_ec_tou_mat", (getter)ElectricityRates_get_ur_ec_tou_mat,(setter)ElectricityRates_set_ur_ec_tou_mat, PyDoc_STR("*sequence[sequence]*: Energy rates table"), NULL}, {"ur_en_ts_buy_rate", (getter)ElectricityRates_get_ur_en_ts_buy_rate,(setter)ElectricityRates_set_ur_en_ts_buy_rate, - PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step buy rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_en_ts_sell_rate", (getter)ElectricityRates_get_ur_en_ts_sell_rate,(setter)ElectricityRates_set_ur_en_ts_sell_rate, - PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable time step sell rates [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_enable_billing_demand", (getter)ElectricityRates_get_ur_enable_billing_demand,(setter)ElectricityRates_set_ur_enable_billing_demand, - PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n*Options*: 0=disable,1=enable\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable billing demand ratchets [0/1]\n\n**Options:**\n0=disable,1=enable\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_metering_option", (getter)ElectricityRates_get_ur_metering_option,(setter)ElectricityRates_set_ur_metering_option, - PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n*Info*: Net metering monthly excess\n\n*Constraints*: INTEGER,MIN=0,MAX=4\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Metering options [0=net energy metering,1=net energy metering with $ credits,2=net billing,3=net billing with carryover to next month,4=buy all - sell all]\n\n**Info:**\nNet metering monthly excess\n\n**Constraints:**\nINTEGER,MIN=0,MAX=4\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_fixed_charge", (getter)ElectricityRates_get_ur_monthly_fixed_charge,(setter)ElectricityRates_set_ur_monthly_fixed_charge, - PyDoc_STR("*float*: Monthly fixed charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly fixed charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_monthly_min_charge", (getter)ElectricityRates_get_ur_monthly_min_charge,(setter)ElectricityRates_set_ur_monthly_min_charge, - PyDoc_STR("*float*: Monthly minimum charge [$]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Monthly minimum charge [$]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_month", (getter)ElectricityRates_get_ur_nm_credit_month,(setter)ElectricityRates_set_ur_nm_credit_month, - PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n*Constraints*: INTEGER,MIN=0,MAX=11\n\n*Required*: If not provided, assumed to be 11"), + PyDoc_STR("*float*: Month of year end payout (true-up) [mn]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=11\n\n**Required:**\nFalse. Automatically set to 11 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_credit_rollover", (getter)ElectricityRates_get_ur_nm_credit_rollover,(setter)ElectricityRates_set_ur_nm_credit_rollover, - PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Apply net metering true-up credits to future bills [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_nm_yearend_sell_rate", (getter)ElectricityRates_get_ur_nm_yearend_sell_rate,(setter)ElectricityRates_set_ur_nm_yearend_sell_rate, - PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n*Required*: If not provided, assumed to be 0.0"), + PyDoc_STR("*float*: Net metering true-up credit sell rate [$/kWh]\n\n**Required:**\nFalse. Automatically set to 0.0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_sell_eq_buy", (getter)ElectricityRates_get_ur_sell_eq_buy,(setter)ElectricityRates_set_ur_sell_eq_buy, - PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n*Info*: Optional override\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Set sell rate equal to buy rate [0/1]\n\n**Info:**\nOptional override\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ur_ts_buy_rate", (getter)ElectricityRates_get_ur_ts_buy_rate,(setter)ElectricityRates_set_ur_ts_buy_rate, PyDoc_STR("*sequence*: Time step buy rates [0/1]"), @@ -511,7 +511,7 @@ static PyGetSetDef ElectricityRates_getset[] = { PyDoc_STR("*sequence*: Time step sell rates [0/1]"), NULL}, {"ur_yearzero_usage_peaks", (getter)ElectricityRates_get_ur_yearzero_usage_peaks,(setter)ElectricityRates_set_ur_yearzero_usage_peaks, - PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n*Info*: 12\n\n*Required*: True if ur_enable_billing_demand=1"), + PyDoc_STR("*sequence*: Peak usage by month for year zero\n\n**Info:**\n12\n\n**Required:**\nRequired if ur_enable_billing_demand=1"), NULL}, {NULL} /* Sentinel */ }; @@ -626,11 +626,11 @@ Lifetime_export(VarGroupObject *self, PyObject *args) static PyMethodDef Lifetime_methods[] = { {"assign", (PyCFunction)Lifetime_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Lifetime_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Lifetime_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Lifetime_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Lifetime_vals = { var: val, ...}``")}, {"export", (PyCFunction)Lifetime_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -672,13 +672,13 @@ Lifetime_set_system_use_lifetime_output(VarGroupObject *self, PyObject *value, v static PyGetSetDef Lifetime_getset[] = { {"analysis_period", (getter)Lifetime_get_analysis_period,(setter)Lifetime_set_analysis_period, - PyDoc_STR("*float*: Number of years in analysis [years]\n\n*Constraints*: INTEGER,POSITIVE\n\n*Required*: True"), + PyDoc_STR("*float*: Number of years in analysis [years]\n\n**Constraints:**\nINTEGER,POSITIVE\n\n**Required:**\nTrue"), NULL}, {"inflation_rate", (getter)Lifetime_get_inflation_rate,(setter)Lifetime_set_inflation_rate, - PyDoc_STR("*float*: Inflation rate [%]\n\n*Constraints*: MIN=-99\n\n*Required*: True"), + PyDoc_STR("*float*: Inflation rate [%]\n\n**Constraints:**\nMIN=-99\n\n**Required:**\nTrue"), NULL}, {"system_use_lifetime_output", (getter)Lifetime_get_system_use_lifetime_output,(setter)Lifetime_set_system_use_lifetime_output, - PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n*Options*: 0=hourly first year,1=hourly lifetime\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: True"), + PyDoc_STR("*float*: Lifetime hourly system outputs [0/1]\n\n**Options:**\n0=hourly first year,1=hourly lifetime\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -793,11 +793,11 @@ SystemOutput_export(VarGroupObject *self, PyObject *args) static PyMethodDef SystemOutput_methods[] = { {"assign", (PyCFunction)SystemOutput_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"replace", (PyCFunction)SystemOutput_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``SystemOutput_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``SystemOutput_vals = { var: val, ...}``")}, {"export", (PyCFunction)SystemOutput_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -827,10 +827,10 @@ SystemOutput_set_gen(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef SystemOutput_getset[] = { {"degradation", (getter)SystemOutput_get_degradation,(setter)SystemOutput_set_degradation, - PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n*Required*: True"), + PyDoc_STR("*sequence*: Annual energy degradation [%]\n\n**Required:**\nTrue"), NULL}, {"gen", (getter)SystemOutput_get_gen,(setter)SystemOutput_set_gen, - PyDoc_STR("*sequence*: System power generated [kW]\n\n*Required*: True"), + PyDoc_STR("*sequence*: System power generated [kW]\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -945,11 +945,11 @@ Load_export(VarGroupObject *self, PyObject *args) static PyMethodDef Load_methods[] = { {"assign", (PyCFunction)Load_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Load_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Load_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Load_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Load_vals = { var: val, ...}``")}, {"export", (PyCFunction)Load_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -982,7 +982,7 @@ static PyGetSetDef Load_getset[] = { PyDoc_STR("*sequence*: Electricity load (year 1) [kW]"), NULL}, {"load_escalation", (getter)Load_get_load_escalation,(setter)Load_set_load_escalation, - PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*sequence*: Annual load escalation [%/year]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -1097,11 +1097,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2775,12 +2775,11 @@ static PyMethodDef Utilityrate5Module_methods[] = { {"new", Utilityrate5_new, METH_VARARGS, PyDoc_STR("new() -> Utilityrate5")}, {"default", Utilityrate5_default, METH_VARARGS, - PyDoc_STR("default(config) -> Utilityrate5\n\nUse default attributes\n" - "`config` options:\n\n- \"BiopowerAllEquityPartnershipFlip\"\n- \"BiopowerLeveragedPartnershipFlip\"\n- \"BiopowerMerchantPlant\"\n- \"BiopowerSaleLeaseback\"\n- \"BiopowerSingleOwner\"\n- \"DSLFAllEquityPartnershipFlip\"\n- \"DSLFCommercial\"\n- \"DSLFLeveragedPartnershipFlip\"\n- \"DSLFMerchantPlant\"\n- \"DSLFSaleLeaseback\"\n- \"DSLFSingleOwner\"\n- \"EmpiricalTroughAllEquityPartnershipFlip\"\n- \"EmpiricalTroughCommercial\"\n- \"EmpiricalTroughLeveragedPartnershipFlip\"\n- \"EmpiricalTroughMerchantPlant\"\n- \"EmpiricalTroughSaleLeaseback\"\n- \"EmpiricalTroughSingleOwner\"\n- \"FlatPlatePVAllEquityPartnershipFlip\"\n- \"FlatPlatePVCommercial\"\n- \"FlatPlatePVHostDeveloper\"\n- \"FlatPlatePVLeveragedPartnershipFlip\"\n- \"FlatPlatePVMerchantPlant\"\n- \"FlatPlatePVResidential\"\n- \"FlatPlatePVSaleLeaseback\"\n- \"FlatPlatePVSingleOwner\"\n- \"FlatPlatePVThirdParty\"\n- \"FuelCellCommercial\"\n- \"FuelCellSingleOwner\"\n- \"GenericBatteryAllEquityPartnershipFlip\"\n- \"GenericBatteryCommercial\"\n- \"GenericBatteryHostDeveloper\"\n- \"GenericBatteryLeveragedPartnershipFlip\"\n- \"GenericBatteryMerchantPlant\"\n- \"GenericBatteryResidential\"\n- \"GenericBatterySaleLeaseback\"\n- \"GenericBatterySingleOwner\"\n- \"GenericBatteryThirdParty\"\n- \"GenericCSPSystemAllEquityPartnershipFlip\"\n- \"GenericCSPSystemCommercial\"\n- \"GenericCSPSystemLeveragedPartnershipFlip\"\n- \"GenericCSPSystemMerchantPlant\"\n- \"GenericCSPSystemSaleLeaseback\"\n- \"GenericCSPSystemSingleOwner\"\n- \"GenericSystemAllEquityPartnershipFlip\"\n- \"GenericSystemCommercial\"\n- \"GenericSystemHostDeveloper\"\n- \"GenericSystemLeveragedPartnershipFlip\"\n- \"GenericSystemMerchantPlant\"\n- \"GenericSystemResidential\"\n- \"GenericSystemSaleLeaseback\"\n- \"GenericSystemSingleOwner\"\n- \"GenericSystemThirdParty\"\n- \"GeothermalPowerAllEquityPartnershipFlip\"\n- \"GeothermalPowerLeveragedPartnershipFlip\"\n- \"GeothermalPowerMerchantPlant\"\n- \"GeothermalPowerSaleLeaseback\"\n- \"GeothermalPowerSingleOwner\"\n- \"HighXConcentratingPVAllEquityPartnershipFlip\"\n- \"HighXConcentratingPVLeveragedPartnershipFlip\"\n- \"HighXConcentratingPVMerchantPlant\"\n- \"HighXConcentratingPVSaleLeaseback\"\n- \"HighXConcentratingPVSingleOwner\"\n- \"MSLFAllEquityPartnershipFlip\"\n- \"MSLFCommercial\"\n- \"MSLFLeveragedPartnershipFlip\"\n- \"MSLFMerchantPlant\"\n- \"MSLFSaleLeaseback\"\n- \"MSLFSingleOwner\"\n- \"MSPTAllEquityPartnershipFlip\"\n- \"MSPTLeveragedPartnershipFlip\"\n- \"MSPTMerchantPlant\"\n- \"MSPTSaleLeaseback\"\n- \"MSPTSingleOwner\"\n- \"PVBatteryAllEquityPartnershipFlip\"\n- \"PVBatteryCommercial\"\n- \"PVBatteryHostDeveloper\"\n- \"PVBatteryLeveragedPartnershipFlip\"\n- \"PVBatteryMerchantPlant\"\n- \"PVBatteryResidential\"\n- \"PVBatterySaleLeaseback\"\n- \"PVBatterySingleOwner\"\n- \"PVBatteryThirdParty\"\n- \"PVWattsBatteryCommercial\"\n- \"PVWattsBatteryHostDeveloper\"\n- \"PVWattsBatteryResidential\"\n- \"PVWattsBatteryThirdParty\"\n- \"PVWattsAllEquityPartnershipFlip\"\n- \"PVWattsCommercial\"\n- \"PVWattsHostDeveloper\"\n- \"PVWattsLeveragedPartnershipFlip\"\n- \"PVWattsMerchantPlant\"\n- \"PVWattsResidential\"\n- \"PVWattsSaleLeaseback\"\n- \"PVWattsSingleOwner\"\n- \"PVWattsThirdParty\"\n- \"PhysicalTroughAllEquityPartnershipFlip\"\n- \"PhysicalTroughLeveragedPartnershipFlip\"\n- \"PhysicalTroughMerchantPlant\"\n- \"PhysicalTroughSaleLeaseback\"\n- \"PhysicalTroughSingleOwner\"\n- \"SolarWaterHeatingCommercial\"\n- \"SolarWaterHeatingResidential\"\n- \"StandaloneBatteryAllEquityPartnershipFlip\"\n- \"StandaloneBatteryCommercial\"\n- \"StandaloneBatteryHostDeveloper\"\n- \"StandaloneBatteryLeveragedPartnershipFlip\"\n- \"StandaloneBatteryMerchantPlant\"\n- \"StandaloneBatteryResidential\"\n- \"StandaloneBatterySaleLeaseback\"\n- \"StandaloneBatterySingleOwner\"\n- \"StandaloneBatteryThirdParty\"\n- \"WindPowerAllEquityPartnershipFlip\"\n- \"WindPowerCommercial\"\n- \"WindPowerLeveragedPartnershipFlip\"\n- \"WindPowerMerchantPlant\"\n- \"WindPowerResidential\"\n- \"WindPowerSaleLeaseback\"\n- \"WindPowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Utilityrate5\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"BiopowerAllEquityPartnershipFlip\"*\n\n - *\"BiopowerLeveragedPartnershipFlip\"*\n\n - *\"BiopowerMerchantPlant\"*\n\n - *\"BiopowerSaleLeaseback\"*\n\n - *\"BiopowerSingleOwner\"*\n\n - *\"DSLFAllEquityPartnershipFlip\"*\n\n - *\"DSLFCommercial\"*\n\n - *\"DSLFLeveragedPartnershipFlip\"*\n\n - *\"DSLFMerchantPlant\"*\n\n - *\"DSLFSaleLeaseback\"*\n\n - *\"DSLFSingleOwner\"*\n\n - *\"EmpiricalTroughAllEquityPartnershipFlip\"*\n\n - *\"EmpiricalTroughCommercial\"*\n\n - *\"EmpiricalTroughLeveragedPartnershipFlip\"*\n\n - *\"EmpiricalTroughMerchantPlant\"*\n\n - *\"EmpiricalTroughSaleLeaseback\"*\n\n - *\"EmpiricalTroughSingleOwner\"*\n\n - *\"FlatPlatePVAllEquityPartnershipFlip\"*\n\n - *\"FlatPlatePVCommercial\"*\n\n - *\"FlatPlatePVHostDeveloper\"*\n\n - *\"FlatPlatePVLeveragedPartnershipFlip\"*\n\n - *\"FlatPlatePVMerchantPlant\"*\n\n - *\"FlatPlatePVResidential\"*\n\n - *\"FlatPlatePVSaleLeaseback\"*\n\n - *\"FlatPlatePVSingleOwner\"*\n\n - *\"FlatPlatePVThirdParty\"*\n\n - *\"FuelCellCommercial\"*\n\n - *\"FuelCellSingleOwner\"*\n\n - *\"GenericBatteryAllEquityPartnershipFlip\"*\n\n - *\"GenericBatteryCommercial\"*\n\n - *\"GenericBatteryHostDeveloper\"*\n\n - *\"GenericBatteryLeveragedPartnershipFlip\"*\n\n - *\"GenericBatteryMerchantPlant\"*\n\n - *\"GenericBatteryResidential\"*\n\n - *\"GenericBatterySaleLeaseback\"*\n\n - *\"GenericBatterySingleOwner\"*\n\n - *\"GenericBatteryThirdParty\"*\n\n - *\"GenericCSPSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericCSPSystemCommercial\"*\n\n - *\"GenericCSPSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericCSPSystemMerchantPlant\"*\n\n - *\"GenericCSPSystemSaleLeaseback\"*\n\n - *\"GenericCSPSystemSingleOwner\"*\n\n - *\"GenericSystemAllEquityPartnershipFlip\"*\n\n - *\"GenericSystemCommercial\"*\n\n - *\"GenericSystemHostDeveloper\"*\n\n - *\"GenericSystemLeveragedPartnershipFlip\"*\n\n - *\"GenericSystemMerchantPlant\"*\n\n - *\"GenericSystemResidential\"*\n\n - *\"GenericSystemSaleLeaseback\"*\n\n - *\"GenericSystemSingleOwner\"*\n\n - *\"GenericSystemThirdParty\"*\n\n - *\"GeothermalPowerAllEquityPartnershipFlip\"*\n\n - *\"GeothermalPowerLeveragedPartnershipFlip\"*\n\n - *\"GeothermalPowerMerchantPlant\"*\n\n - *\"GeothermalPowerSaleLeaseback\"*\n\n - *\"GeothermalPowerSingleOwner\"*\n\n - *\"HighXConcentratingPVAllEquityPartnershipFlip\"*\n\n - *\"HighXConcentratingPVLeveragedPartnershipFlip\"*\n\n - *\"HighXConcentratingPVMerchantPlant\"*\n\n - *\"HighXConcentratingPVSaleLeaseback\"*\n\n - *\"HighXConcentratingPVSingleOwner\"*\n\n - *\"MSLFAllEquityPartnershipFlip\"*\n\n - *\"MSLFCommercial\"*\n\n - *\"MSLFLeveragedPartnershipFlip\"*\n\n - *\"MSLFMerchantPlant\"*\n\n - *\"MSLFSaleLeaseback\"*\n\n - *\"MSLFSingleOwner\"*\n\n - *\"MSPTAllEquityPartnershipFlip\"*\n\n - *\"MSPTLeveragedPartnershipFlip\"*\n\n - *\"MSPTMerchantPlant\"*\n\n - *\"MSPTSaleLeaseback\"*\n\n - *\"MSPTSingleOwner\"*\n\n - *\"PVBatteryAllEquityPartnershipFlip\"*\n\n - *\"PVBatteryCommercial\"*\n\n - *\"PVBatteryHostDeveloper\"*\n\n - *\"PVBatteryLeveragedPartnershipFlip\"*\n\n - *\"PVBatteryMerchantPlant\"*\n\n - *\"PVBatteryResidential\"*\n\n - *\"PVBatterySaleLeaseback\"*\n\n - *\"PVBatterySingleOwner\"*\n\n - *\"PVBatteryThirdParty\"*\n\n - *\"PVWattsBatteryCommercial\"*\n\n - *\"PVWattsBatteryHostDeveloper\"*\n\n - *\"PVWattsBatteryResidential\"*\n\n - *\"PVWattsBatteryThirdParty\"*\n\n - *\"PVWattsAllEquityPartnershipFlip\"*\n\n - *\"PVWattsCommercial\"*\n\n - *\"PVWattsHostDeveloper\"*\n\n - *\"PVWattsLeveragedPartnershipFlip\"*\n\n - *\"PVWattsMerchantPlant\"*\n\n - *\"PVWattsResidential\"*\n\n - *\"PVWattsSaleLeaseback\"*\n\n - *\"PVWattsSingleOwner\"*\n\n - *\"PVWattsThirdParty\"*\n\n - *\"PhysicalTroughAllEquityPartnershipFlip\"*\n\n - *\"PhysicalTroughLeveragedPartnershipFlip\"*\n\n - *\"PhysicalTroughMerchantPlant\"*\n\n - *\"PhysicalTroughSaleLeaseback\"*\n\n - *\"PhysicalTroughSingleOwner\"*\n\n - *\"SolarWaterHeatingCommercial\"*\n\n - *\"SolarWaterHeatingResidential\"*\n\n - *\"StandaloneBatteryAllEquityPartnershipFlip\"*\n\n - *\"StandaloneBatteryCommercial\"*\n\n - *\"StandaloneBatteryHostDeveloper\"*\n\n - *\"StandaloneBatteryLeveragedPartnershipFlip\"*\n\n - *\"StandaloneBatteryMerchantPlant\"*\n\n - *\"StandaloneBatteryResidential\"*\n\n - *\"StandaloneBatterySaleLeaseback\"*\n\n - *\"StandaloneBatterySingleOwner\"*\n\n - *\"StandaloneBatteryThirdParty\"*\n\n - *\"WindPowerAllEquityPartnershipFlip\"*\n\n - *\"WindPowerCommercial\"*\n\n - *\"WindPowerLeveragedPartnershipFlip\"*\n\n - *\"WindPowerMerchantPlant\"*\n\n - *\"WindPowerResidential\"*\n\n - *\"WindPowerSaleLeaseback\"*\n\n - *\"WindPowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Utilityrate5_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Utilityrate5\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Utilityrate5\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Utilityrate5_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Utilityrate5\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Utilityrate5\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/WaveFileReader.c b/modules/WaveFileReader.c index e32bf32b..ee9ba9a9 100644 --- a/modules/WaveFileReader.c +++ b/modules/WaveFileReader.c @@ -69,11 +69,11 @@ WeatherReader_export(VarGroupObject *self, PyObject *args) static PyMethodDef WeatherReader_methods[] = { {"assign", (PyCFunction)WeatherReader_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WeatherReader_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"export", (PyCFunction)WeatherReader_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ WeatherReader_set_wave_resource_model_choice(VarGroupObject *self, PyObject *val static PyGetSetDef WeatherReader_getset[] = { {"use_specific_wf_wave", (getter)WeatherReader_get_use_specific_wf_wave,(setter)WeatherReader_set_use_specific_wf_wave, - PyDoc_STR("*float*: user specified file [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: user specified file [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"wave_resource_filename", (getter)WeatherReader_get_wave_resource_filename,(setter)WeatherReader_set_wave_resource_filename, - PyDoc_STR("*str*: File path with Wave Height x Period Distribution as 2-D PDF\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True if wave_resource_model_choice=0"), + PyDoc_STR("*str*: File path with Wave Height x Period Distribution as 2-D PDF\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nRequired if wave_resource_model_choice=0"), NULL}, {"wave_resource_filename_ts", (getter)WeatherReader_get_wave_resource_filename_ts,(setter)WeatherReader_set_wave_resource_filename_ts, - PyDoc_STR("*str*: File path with 3-hour Wave Height and Period data as Time Series array\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True if wave_resource_model_choice=1"), + PyDoc_STR("*str*: File path with 3-hour Wave Height and Period data as Time Series array\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nRequired if wave_resource_model_choice=1"), NULL}, {"wave_resource_model_choice", (getter)WeatherReader_get_wave_resource_model_choice,(setter)WeatherReader_set_wave_resource_model_choice, - PyDoc_STR("*float*: Joint PDF or 3-hour wave resource data [0/1]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Joint PDF or 3-hour wave resource data [0/1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -819,12 +819,11 @@ static PyMethodDef WaveFileReaderModule_methods[] = { {"new", WaveFileReader_new, METH_VARARGS, PyDoc_STR("new() -> WaveFileReader")}, {"default", WaveFileReader_default, METH_VARARGS, - PyDoc_STR("default(config) -> WaveFileReader\n\nUse default attributes\n" - "`config` options:\n\n- \"MEwaveLCOECalculator\"\n- \"MEwaveNone\"")}, + PyDoc_STR("default(config) -> WaveFileReader\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"MEwaveLCOECalculator\"*\n\n - *\"MEwaveNone\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", WaveFileReader_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> WaveFileReader\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> WaveFileReader\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", WaveFileReader_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> WaveFileReader\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> WaveFileReader\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Wfcheck.c b/modules/Wfcheck.c index 45736d78..f58517b8 100644 --- a/modules/Wfcheck.c +++ b/modules/Wfcheck.c @@ -69,11 +69,11 @@ WeatherFileChecker_export(VarGroupObject *self, PyObject *args) static PyMethodDef WeatherFileChecker_methods[] = { {"assign", (PyCFunction)WeatherFileChecker_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WeatherFileChecker_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WeatherFileChecker_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WeatherFileChecker_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WeatherFileChecker_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WeatherFileChecker_vals = { var: val, ...}``")}, {"export", (PyCFunction)WeatherFileChecker_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -91,7 +91,7 @@ WeatherFileChecker_set_input_file(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef WeatherFileChecker_getset[] = { {"input_file", (getter)WeatherFileChecker_get_input_file,(setter)WeatherFileChecker_set_input_file, - PyDoc_STR("*str*: Input weather file name\n\n*Info*: wfcsv format\n\n*Required*: True"), + PyDoc_STR("*str*: Input weather file name\n\n**Info:**\nwfcsv format\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -414,12 +414,11 @@ static PyMethodDef WfcheckModule_methods[] = { {"new", Wfcheck_new, METH_VARARGS, PyDoc_STR("new() -> Wfcheck")}, {"default", Wfcheck_default, METH_VARARGS, - PyDoc_STR("default(config) -> Wfcheck\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Wfcheck\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Wfcheck_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Wfcheck\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Wfcheck\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Wfcheck_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Wfcheck\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Wfcheck\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Wfcsvconv.c b/modules/Wfcsvconv.c index b8b22c9e..869d644e 100644 --- a/modules/Wfcsvconv.c +++ b/modules/Wfcsvconv.c @@ -69,11 +69,11 @@ WeatherFileConverter_export(VarGroupObject *self, PyObject *args) static PyMethodDef WeatherFileConverter_methods[] = { {"assign", (PyCFunction)WeatherFileConverter_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WeatherFileConverter_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WeatherFileConverter_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WeatherFileConverter_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WeatherFileConverter_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WeatherFileConverter_vals = { var: val, ...}``")}, {"export", (PyCFunction)WeatherFileConverter_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ WeatherFileConverter_set_output_folder(VarGroupObject *self, PyObject *value, vo static PyGetSetDef WeatherFileConverter_getset[] = { {"input_file", (getter)WeatherFileConverter_get_input_file,(setter)WeatherFileConverter_set_input_file, - PyDoc_STR("*str*: Input weather file name\n\n*Info*: tmy2,tmy3,intl,epw,smw\n\n*Required*: True"), + PyDoc_STR("*str*: Input weather file name\n\n**Info:**\ntmy2,tmy3,intl,epw,smw\n\n**Required:**\nTrue"), NULL}, {"output_file", (getter)WeatherFileConverter_get_output_file,(setter)WeatherFileConverter_set_output_file, - PyDoc_STR("*str*: Output file name\n\n*Required*: False"), + PyDoc_STR("*str*: Output file name\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"output_filename_format", (getter)WeatherFileConverter_get_output_filename_format,(setter)WeatherFileConverter_set_output_filename_format, - PyDoc_STR("*str*: Output file name format\n\n*Info*: recognizes $city $state $country $type $loc\n\n*Required*: False"), + PyDoc_STR("*str*: Output file name format\n\n**Info:**\nrecognizes $city $state $country $type $loc\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"output_folder", (getter)WeatherFileConverter_get_output_folder,(setter)WeatherFileConverter_set_output_folder, - PyDoc_STR("*str*: Output folder\n\n*Required*: False"), + PyDoc_STR("*str*: Output folder\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {NULL} /* Sentinel */ }; @@ -459,12 +459,11 @@ static PyMethodDef WfcsvconvModule_methods[] = { {"new", Wfcsvconv_new, METH_VARARGS, PyDoc_STR("new() -> Wfcsvconv")}, {"default", Wfcsvconv_default, METH_VARARGS, - PyDoc_STR("default(config) -> Wfcsvconv\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Wfcsvconv\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Wfcsvconv_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Wfcsvconv\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Wfcsvconv\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Wfcsvconv_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Wfcsvconv\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Wfcsvconv\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Wfreader.c b/modules/Wfreader.c index e3e11d8c..d21b65e9 100644 --- a/modules/Wfreader.c +++ b/modules/Wfreader.c @@ -69,11 +69,11 @@ WeatherReader_export(VarGroupObject *self, PyObject *args) static PyMethodDef WeatherReader_methods[] = { {"assign", (PyCFunction)WeatherReader_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WeatherReader_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"export", (PyCFunction)WeatherReader_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -103,10 +103,10 @@ WeatherReader_set_header_only(VarGroupObject *self, PyObject *value, void *closu static PyGetSetDef WeatherReader_getset[] = { {"file_name", (getter)WeatherReader_get_file_name,(setter)WeatherReader_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"header_only", (getter)WeatherReader_get_header_only,(setter)WeatherReader_set_header_only, - PyDoc_STR("*float*: read header only [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: read header only [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -221,11 +221,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -915,12 +915,11 @@ static PyMethodDef WfreaderModule_methods[] = { {"new", Wfreader_new, METH_VARARGS, PyDoc_STR("new() -> Wfreader")}, {"default", Wfreader_default, METH_VARARGS, - PyDoc_STR("default(config) -> Wfreader\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Wfreader\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Wfreader_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Wfreader\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Wfreader\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Wfreader_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Wfreader\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Wfreader\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/WindFileReader.c b/modules/WindFileReader.c index fae64e00..0a21d059 100644 --- a/modules/WindFileReader.c +++ b/modules/WindFileReader.c @@ -69,11 +69,11 @@ WeatherReader_export(VarGroupObject *self, PyObject *args) static PyMethodDef WeatherReader_methods[] = { {"assign", (PyCFunction)WeatherReader_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WeatherReader_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WeatherReader_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WeatherReader_vals = { var: val, ...}``")}, {"export", (PyCFunction)WeatherReader_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -127,16 +127,16 @@ WeatherReader_set_scan_header_only(VarGroupObject *self, PyObject *value, void * static PyGetSetDef WeatherReader_getset[] = { {"file_name", (getter)WeatherReader_get_file_name,(setter)WeatherReader_set_file_name, - PyDoc_STR("*str*: local weather file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: True"), + PyDoc_STR("*str*: local weather file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nTrue"), NULL}, {"interpolate", (getter)WeatherReader_get_interpolate,(setter)WeatherReader_set_interpolate, - PyDoc_STR("*float*: interpolate to closest height measured? [m]\n\n*Constraints*: BOOLEAN\n\n*Required*: True if scan_header_only=0"), + PyDoc_STR("*float*: interpolate to closest height measured? [m]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nRequired if scan_header_only=0"), NULL}, {"requested_ht", (getter)WeatherReader_get_requested_ht,(setter)WeatherReader_set_requested_ht, - PyDoc_STR("*float*: requested measurement height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: requested measurement height [m]\n\n**Required:**\nTrue"), NULL}, {"scan_header_only", (getter)WeatherReader_get_scan_header_only,(setter)WeatherReader_set_scan_header_only, - PyDoc_STR("*float*: only reader headers [0/1]\n\n*Constraints*: BOOLEAN\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: only reader headers [0/1]\n\n**Constraints:**\nBOOLEAN\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -251,11 +251,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -720,12 +720,11 @@ static PyMethodDef WindFileReaderModule_methods[] = { {"new", WindFileReader_new, METH_VARARGS, PyDoc_STR("new() -> WindFileReader")}, {"default", WindFileReader_default, METH_VARARGS, - PyDoc_STR("default(config) -> WindFileReader\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> WindFileReader\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", WindFileReader_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> WindFileReader\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> WindFileReader\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", WindFileReader_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> WindFileReader\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> WindFileReader\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/WindObos.c b/modules/WindObos.c index b897c0a0..ae985ff8 100644 --- a/modules/WindObos.c +++ b/modules/WindObos.c @@ -69,11 +69,11 @@ Wobos_export(VarGroupObject *self, PyObject *args) static PyMethodDef Wobos_methods[] = { {"assign", (PyCFunction)Wobos_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Wobos_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Wobos_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Wobos_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Wobos_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Wobos_vals = { var: val, ...}``")}, {"export", (PyCFunction)Wobos_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -2659,649 +2659,649 @@ Wobos_set_workSpace(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Wobos_getset[] = { {"addLocPerm", (getter)Wobos_get_addLocPerm,(setter)Wobos_set_addLocPerm, - PyDoc_STR("*float*: Additional State and Local Permitting Cost [$]\n\n*Required*: If not provided, assumed to be 200000"), + PyDoc_STR("*float*: Additional State and Local Permitting Cost [$]\n\n**Required:**\nFalse. Automatically set to 200000 if not assigned explicitly or loaded from defaults."), NULL}, {"anchor", (getter)Wobos_get_anchor,(setter)Wobos_set_anchor, - PyDoc_STR("*float*: Anchor Type\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be DRAGEMBEDMENT"), + PyDoc_STR("*float*: Anchor Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to DRAGEMBEDMENT if not assigned explicitly or loaded from defaults."), NULL}, {"arrCab1Mass", (getter)Wobos_get_arrCab1Mass,(setter)Wobos_set_arrCab1Mass, - PyDoc_STR("*float*: Array cable 1 mass [kg/m]\n\n*Required*: If not provided, assumed to be 20.384"), + PyDoc_STR("*float*: Array cable 1 mass [kg/m]\n\n**Required:**\nFalse. Automatically set to 20.384 if not assigned explicitly or loaded from defaults."), NULL}, {"arrCab2Mass", (getter)Wobos_get_arrCab2Mass,(setter)Wobos_set_arrCab2Mass, - PyDoc_STR("*float*: Array cable 2 mass [kg/m]\n\n*Required*: If not provided, assumed to be 21.854"), + PyDoc_STR("*float*: Array cable 2 mass [kg/m]\n\n**Required:**\nFalse. Automatically set to 21.854 if not assigned explicitly or loaded from defaults."), NULL}, {"arrVoltage", (getter)Wobos_get_arrVoltage,(setter)Wobos_set_arrVoltage, - PyDoc_STR("*float*: Array cable voltage [kV]\n\n*Required*: If not provided, assumed to be 33"), + PyDoc_STR("*float*: Array cable voltage [kV]\n\n**Required:**\nFalse. Automatically set to 33 if not assigned explicitly or loaded from defaults."), NULL}, {"arrayCables", (getter)Wobos_get_arrayCables,(setter)Wobos_set_arrayCables, - PyDoc_STR("*str*: Inter-array cables to consider by voltage [kV]\n\n*Required*: If not provided, assumed to be 33 66"), + PyDoc_STR("*str*: Inter-array cables to consider by voltage [kV]\n\n**Required:**\nFalse. Automatically set to 33 66 if not assigned explicitly or loaded from defaults."), NULL}, {"arrayX", (getter)Wobos_get_arrayX,(setter)Wobos_set_arrayX, - PyDoc_STR("*float*: Spacing Between Turbine Rows [rotor diameters]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 9"), + PyDoc_STR("*float*: Spacing Between Turbine Rows [rotor diameters]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 9 if not assigned explicitly or loaded from defaults."), NULL}, {"arrayY", (getter)Wobos_get_arrayY,(setter)Wobos_set_arrayY, - PyDoc_STR("*float*: Spacing Between Turbines in Rows [rotor diameters]\n\n*Constraints*: MIN=1\n\n*Required*: If not provided, assumed to be 9"), + PyDoc_STR("*float*: Spacing Between Turbines in Rows [rotor diameters]\n\n**Constraints:**\nMIN=1\n\n**Required:**\nFalse. Automatically set to 9 if not assigned explicitly or loaded from defaults."), NULL}, {"backUpGen", (getter)Wobos_get_backUpGen,(setter)Wobos_set_backUpGen, - PyDoc_STR("*float*: Back up Diesel Generator Cost [$]\n\n*Required*: If not provided, assumed to be 1000000"), + PyDoc_STR("*float*: Back up Diesel Generator Cost [$]\n\n**Required:**\nFalse. Automatically set to 1000000 if not assigned explicitly or loaded from defaults."), NULL}, {"ballCR", (getter)Wobos_get_ballCR,(setter)Wobos_set_ballCR, - PyDoc_STR("*float*: Floating Ballast Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 100"), + PyDoc_STR("*float*: Floating Ballast Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 100 if not assigned explicitly or loaded from defaults."), NULL}, {"bioResStudyMet", (getter)Wobos_get_bioResStudyMet,(setter)Wobos_set_bioResStudyMet, - PyDoc_STR("*float*: Biological Resource Study Met Tower Cost [$]\n\n*Required*: If not provided, assumed to be 1500000"), + PyDoc_STR("*float*: Biological Resource Study Met Tower Cost [$]\n\n**Required:**\nFalse. Automatically set to 1500000 if not assigned explicitly or loaded from defaults."), NULL}, {"bioResStudyProj", (getter)Wobos_get_bioResStudyProj,(setter)Wobos_set_bioResStudyProj, - PyDoc_STR("*float*: Biological Resource Study Porject Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Biological Resource Study Porject Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"bladeL", (getter)Wobos_get_bladeL,(setter)Wobos_set_bladeL, - PyDoc_STR("*float*: Blade Length [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Blade Length [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"boltBlade1", (getter)Wobos_get_boltBlade1,(setter)Wobos_set_boltBlade1, - PyDoc_STR("*float*: Lift and Bolt Blade Individual Components Method [hours]\n\n*Required*: If not provided, assumed to be 3.5"), + PyDoc_STR("*float*: Lift and Bolt Blade Individual Components Method [hours]\n\n**Required:**\nFalse. Automatically set to 3.5 if not assigned explicitly or loaded from defaults."), NULL}, {"boltBlade2", (getter)Wobos_get_boltBlade2,(setter)Wobos_set_boltBlade2, - PyDoc_STR("*float*: Lift and Bolt Blade Bunny Ears Method [hours]\n\n*Required*: If not provided, assumed to be 3.5"), + PyDoc_STR("*float*: Lift and Bolt Blade Bunny Ears Method [hours]\n\n**Required:**\nFalse. Automatically set to 3.5 if not assigned explicitly or loaded from defaults."), NULL}, {"boltNacelle1", (getter)Wobos_get_boltNacelle1,(setter)Wobos_set_boltNacelle1, - PyDoc_STR("*float*: Lift and Bolt Nacelle Individual Components Method [hours]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Lift and Bolt Nacelle Individual Components Method [hours]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"boltNacelle2", (getter)Wobos_get_boltNacelle2,(setter)Wobos_set_boltNacelle2, - PyDoc_STR("*float*: Lift and Bolt Nacelle Bunny Ears Method [hours]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Lift and Bolt Nacelle Bunny Ears Method [hours]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"boltNacelle3", (getter)Wobos_get_boltNacelle3,(setter)Wobos_set_boltNacelle3, - PyDoc_STR("*float*: Lift and Bolt Nacelle Fully Assembled Rotor Method [hours]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Lift and Bolt Nacelle Fully Assembled Rotor Method [hours]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"boltRotor", (getter)Wobos_get_boltRotor,(setter)Wobos_set_boltRotor, - PyDoc_STR("*float*: Lift and Bolt Rotor Fully Assembled Rotor Method [hours]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Lift and Bolt Rotor Fully Assembled Rotor Method [hours]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"boltTower", (getter)Wobos_get_boltTower,(setter)Wobos_set_boltTower, - PyDoc_STR("*float*: Lift and Bolt Tower Section [hours]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Lift and Bolt Tower Section [hours]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"buryDepth", (getter)Wobos_get_buryDepth,(setter)Wobos_set_buryDepth, - PyDoc_STR("*float*: Electrical Cable Burial Depth [m]\n\n*Constraints*: MIN=0,MAX=15\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Electrical Cable Burial Depth [m]\n\n**Constraints:**\nMIN=0,MAX=15\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"buryFac", (getter)Wobos_get_buryFac,(setter)Wobos_set_buryFac, - PyDoc_STR("*float*: Cable Burial Depth Factor [1/m]\n\n*Required*: If not provided, assumed to be 0.1"), + PyDoc_STR("*float*: Cable Burial Depth Factor [1/m]\n\n**Required:**\nFalse. Automatically set to 0.1 if not assigned explicitly or loaded from defaults."), NULL}, {"buryRate", (getter)Wobos_get_buryRate,(setter)Wobos_set_buryRate, - PyDoc_STR("*float*: Cable Burial Rate [m/hour]\n\n*Required*: If not provided, assumed to be 125"), + PyDoc_STR("*float*: Cable Burial Rate [m/hour]\n\n**Required:**\nFalse. Automatically set to 125 if not assigned explicitly or loaded from defaults."), NULL}, {"cab1CR", (getter)Wobos_get_cab1CR,(setter)Wobos_set_cab1CR, - PyDoc_STR("*float*: Array cable 1 Cost Rate [$/m]\n\n*Required*: If not provided, assumed to be 185.889"), + PyDoc_STR("*float*: Array cable 1 Cost Rate [$/m]\n\n**Required:**\nFalse. Automatically set to 185.889 if not assigned explicitly or loaded from defaults."), NULL}, {"cab1CurrRating", (getter)Wobos_get_cab1CurrRating,(setter)Wobos_set_cab1CurrRating, - PyDoc_STR("*float*: Array cable 1 current rating [A]\n\n*Required*: If not provided, assumed to be 300"), + PyDoc_STR("*float*: Array cable 1 current rating [A]\n\n**Required:**\nFalse. Automatically set to 300 if not assigned explicitly or loaded from defaults."), NULL}, {"cab1TurbInterCR", (getter)Wobos_get_cab1TurbInterCR,(setter)Wobos_set_cab1TurbInterCR, - PyDoc_STR("*float*: Cable 1 turbine interface cost [$/interface]\n\n*Required*: If not provided, assumed to be 8410"), + PyDoc_STR("*float*: Cable 1 turbine interface cost [$/interface]\n\n**Required:**\nFalse. Automatically set to 8410 if not assigned explicitly or loaded from defaults."), NULL}, {"cab2CR", (getter)Wobos_get_cab2CR,(setter)Wobos_set_cab2CR, - PyDoc_STR("*float*: Array cable 2 Cost Rate [$/m]\n\n*Required*: If not provided, assumed to be 202.788"), + PyDoc_STR("*float*: Array cable 2 Cost Rate [$/m]\n\n**Required:**\nFalse. Automatically set to 202.788 if not assigned explicitly or loaded from defaults."), NULL}, {"cab2CurrRating", (getter)Wobos_get_cab2CurrRating,(setter)Wobos_set_cab2CurrRating, - PyDoc_STR("*float*: Array cable 2 current rating [A]\n\n*Required*: If not provided, assumed to be 340"), + PyDoc_STR("*float*: Array cable 2 current rating [A]\n\n**Required:**\nFalse. Automatically set to 340 if not assigned explicitly or loaded from defaults."), NULL}, {"cab2SubsInterCR", (getter)Wobos_get_cab2SubsInterCR,(setter)Wobos_set_cab2SubsInterCR, - PyDoc_STR("*float*: Cable 2 substation interface cost [$/interface]\n\n*Required*: If not provided, assumed to be 19815"), + PyDoc_STR("*float*: Cable 2 substation interface cost [$/interface]\n\n**Required:**\nFalse. Automatically set to 19815 if not assigned explicitly or loaded from defaults."), NULL}, {"cab2TurbInterCR", (getter)Wobos_get_cab2TurbInterCR,(setter)Wobos_set_cab2TurbInterCR, - PyDoc_STR("*float*: Cable 2 turbine interface cost [$/interface]\n\n*Required*: If not provided, assumed to be 8615"), + PyDoc_STR("*float*: Cable 2 turbine interface cost [$/interface]\n\n**Required:**\nFalse. Automatically set to 8615 if not assigned explicitly or loaded from defaults."), NULL}, {"cabDrillCR", (getter)Wobos_get_cabDrillCR,(setter)Wobos_set_cabDrillCR, - PyDoc_STR("*float*: Cost Rate for Horizontal Drilling [$/m]\n\n*Required*: If not provided, assumed to be 3200"), + PyDoc_STR("*float*: Cost Rate for Horizontal Drilling [$/m]\n\n**Required:**\nFalse. Automatically set to 3200 if not assigned explicitly or loaded from defaults."), NULL}, {"cabDrillDist", (getter)Wobos_get_cabDrillDist,(setter)Wobos_set_cabDrillDist, - PyDoc_STR("*float*: Horizontal Drilling distance for Cable Landfall [m]\n\n*Required*: If not provided, assumed to be 500"), + PyDoc_STR("*float*: Horizontal Drilling distance for Cable Landfall [m]\n\n**Required:**\nFalse. Automatically set to 500 if not assigned explicitly or loaded from defaults."), NULL}, {"cabLoadout", (getter)Wobos_get_cabLoadout,(setter)Wobos_set_cabLoadout, - PyDoc_STR("*float*: Array Cable Loadout for Installation [hours]\n\n*Required*: If not provided, assumed to be 14"), + PyDoc_STR("*float*: Array Cable Loadout for Installation [hours]\n\n**Required:**\nFalse. Automatically set to 14 if not assigned explicitly or loaded from defaults."), NULL}, {"cabPullIn", (getter)Wobos_get_cabPullIn,(setter)Wobos_set_cabPullIn, - PyDoc_STR("*float*: Array Cable Pull in to Interfaces [hours]\n\n*Required*: If not provided, assumed to be 5.5"), + PyDoc_STR("*float*: Array Cable Pull in to Interfaces [hours]\n\n**Required:**\nFalse. Automatically set to 5.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cabSurveyCR", (getter)Wobos_get_cabSurveyCR,(setter)Wobos_set_cabSurveyCR, - PyDoc_STR("*float*: Cable Route Survey Cost [$/m]\n\n*Required*: If not provided, assumed to be 240"), + PyDoc_STR("*float*: Cable Route Survey Cost [$/m]\n\n**Required:**\nFalse. Automatically set to 240 if not assigned explicitly or loaded from defaults."), NULL}, {"cabTerm", (getter)Wobos_get_cabTerm,(setter)Wobos_set_cabTerm, - PyDoc_STR("*float*: Cable Termination and Testing [hours]\n\n*Required*: If not provided, assumed to be 5.5"), + PyDoc_STR("*float*: Cable Termination and Testing [hours]\n\n**Required:**\nFalse. Automatically set to 5.5 if not assigned explicitly or loaded from defaults."), NULL}, {"cableOptimizer", (getter)Wobos_get_cableOptimizer,(setter)Wobos_set_cableOptimizer, - PyDoc_STR("*float*: Electrical Cable Cost Optimization\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be FALSE"), + PyDoc_STR("*float*: Electrical Cable Cost Optimization\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to FALSE if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_0", (getter)Wobos_get_capital_cost_year_0,(setter)Wobos_set_capital_cost_year_0, - PyDoc_STR("*float*: Capital cost spent in year 0\n\n*Required*: If not provided, assumed to be 0.2"), + PyDoc_STR("*float*: Capital cost spent in year 0\n\n**Required:**\nFalse. Automatically set to 0.2 if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_1", (getter)Wobos_get_capital_cost_year_1,(setter)Wobos_set_capital_cost_year_1, - PyDoc_STR("*float*: Capital cost spent in year 1\n\n*Required*: If not provided, assumed to be 0.6"), + PyDoc_STR("*float*: Capital cost spent in year 1\n\n**Required:**\nFalse. Automatically set to 0.6 if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_2", (getter)Wobos_get_capital_cost_year_2,(setter)Wobos_set_capital_cost_year_2, - PyDoc_STR("*float*: Capital cost spent in year 2\n\n*Required*: If not provided, assumed to be 0.1"), + PyDoc_STR("*float*: Capital cost spent in year 2\n\n**Required:**\nFalse. Automatically set to 0.1 if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_3", (getter)Wobos_get_capital_cost_year_3,(setter)Wobos_set_capital_cost_year_3, - PyDoc_STR("*float*: Capital cost spent in year 3\n\n*Required*: If not provided, assumed to be 0.1"), + PyDoc_STR("*float*: Capital cost spent in year 3\n\n**Required:**\nFalse. Automatically set to 0.1 if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_4", (getter)Wobos_get_capital_cost_year_4,(setter)Wobos_set_capital_cost_year_4, - PyDoc_STR("*float*: Capital cost spent in year 4\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Capital cost spent in year 4\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"capital_cost_year_5", (getter)Wobos_get_capital_cost_year_5,(setter)Wobos_set_capital_cost_year_5, - PyDoc_STR("*float*: Capital cost spent in year 5\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Capital cost spent in year 5\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"catLengFac", (getter)Wobos_get_catLengFac,(setter)Wobos_set_catLengFac, - PyDoc_STR("*float*: Catenary Cable Length Factor\n\n*Required*: If not provided, assumed to be 0.04"), + PyDoc_STR("*float*: Catenary Cable Length Factor\n\n**Required:**\nFalse. Automatically set to 0.04 if not assigned explicitly or loaded from defaults."), NULL}, {"chord", (getter)Wobos_get_chord,(setter)Wobos_set_chord, - PyDoc_STR("*float*: Blade Max Chord [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Blade Max Chord [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"civilWork", (getter)Wobos_get_civilWork,(setter)Wobos_set_civilWork, - PyDoc_STR("*float*: Onshore Infrastructure Civil Work Cost [$]\n\n*Required*: If not provided, assumed to be 40000"), + PyDoc_STR("*float*: Onshore Infrastructure Civil Work Cost [$]\n\n**Required:**\nFalse. Automatically set to 40000 if not assigned explicitly or loaded from defaults."), NULL}, {"cleanWatAct402", (getter)Wobos_get_cleanWatAct402,(setter)Wobos_set_cleanWatAct402, - PyDoc_STR("*float*: Clean Water Act Section 402 Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Clean Water Act Section 402 Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"cleanWatAct404", (getter)Wobos_get_cleanWatAct404,(setter)Wobos_set_cleanWatAct404, - PyDoc_STR("*float*: Clean Water Act Section 404 Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Clean Water Act Section 404 Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"coastZoneManAct", (getter)Wobos_get_coastZoneManAct,(setter)Wobos_set_coastZoneManAct, - PyDoc_STR("*float*: Coastal Zone Management Act Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Coastal Zone Management Act Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"compRacks", (getter)Wobos_get_compRacks,(setter)Wobos_set_compRacks, - PyDoc_STR("*float*: Component Racks Cost [$]\n\n*Required*: If not provided, assumed to be 1000000"), + PyDoc_STR("*float*: Component Racks Cost [$]\n\n**Required:**\nFalse. Automatically set to 1000000 if not assigned explicitly or loaded from defaults."), NULL}, {"conOpPlan", (getter)Wobos_get_conOpPlan,(setter)Wobos_set_conOpPlan, - PyDoc_STR("*float*: Construction Operations Plan Cost [$]\n\n*Required*: If not provided, assumed to be 1000000"), + PyDoc_STR("*float*: Construction Operations Plan Cost [$]\n\n**Required:**\nFalse. Automatically set to 1000000 if not assigned explicitly or loaded from defaults."), NULL}, {"construction_insurance", (getter)Wobos_get_construction_insurance,(setter)Wobos_set_construction_insurance, - PyDoc_STR("*float*: Insurance During Construction (% of ICC)\n\n*Required*: If not provided, assumed to be 0.01"), + PyDoc_STR("*float*: Insurance During Construction (% of ICC)\n\n**Required:**\nFalse. Automatically set to 0.01 if not assigned explicitly or loaded from defaults."), NULL}, {"crane1000DR", (getter)Wobos_get_crane1000DR,(setter)Wobos_set_crane1000DR, - PyDoc_STR("*float*: 1000 t Crawler Crane Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 8000"), + PyDoc_STR("*float*: 1000 t Crawler Crane Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 8000 if not assigned explicitly or loaded from defaults."), NULL}, {"crane600DR", (getter)Wobos_get_crane600DR,(setter)Wobos_set_crane600DR, - PyDoc_STR("*float*: 600 t Crawler Crane Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 5000"), + PyDoc_STR("*float*: 600 t Crawler Crane Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 5000 if not assigned explicitly or loaded from defaults."), NULL}, {"craneMobDemob", (getter)Wobos_get_craneMobDemob,(setter)Wobos_set_craneMobDemob, - PyDoc_STR("*float*: Port Crane Mobilization/Demobilization Cost [$]\n\n*Required*: If not provided, assumed to be 150000"), + PyDoc_STR("*float*: Port Crane Mobilization/Demobilization Cost [$]\n\n**Required:**\nFalse. Automatically set to 150000 if not assigned explicitly or loaded from defaults."), NULL}, {"deaFixLeng", (getter)Wobos_get_deaFixLeng,(setter)Wobos_set_deaFixLeng, - PyDoc_STR("*float*: Fixed Mooring Length for Drag Embedment Anchors [m]\n\n*Required*: If not provided, assumed to be 500"), + PyDoc_STR("*float*: Fixed Mooring Length for Drag Embedment Anchors [m]\n\n**Required:**\nFalse. Automatically set to 500 if not assigned explicitly or loaded from defaults."), NULL}, {"decomDiscRate", (getter)Wobos_get_decomDiscRate,(setter)Wobos_set_decomDiscRate, - PyDoc_STR("*float*: Decommissioning Cost Discount Rate\n\n*Required*: If not provided, assumed to be 0.03"), + PyDoc_STR("*float*: Decommissioning Cost Discount Rate\n\n**Required:**\nFalse. Automatically set to 0.03 if not assigned explicitly or loaded from defaults."), NULL}, {"distAtoS", (getter)Wobos_get_distAtoS,(setter)Wobos_set_distAtoS, - PyDoc_STR("*float*: Distance form Inshore Assembly Area to Site [km]\n\n*Constraints*: MIN=5,MAX=1000\n\n*Required*: If not provided, assumed to be 90"), + PyDoc_STR("*float*: Distance form Inshore Assembly Area to Site [km]\n\n**Constraints:**\nMIN=5,MAX=1000\n\n**Required:**\nFalse. Automatically set to 90 if not assigned explicitly or loaded from defaults."), NULL}, {"distInterCon", (getter)Wobos_get_distInterCon,(setter)Wobos_set_distInterCon, - PyDoc_STR("*float*: Distance Over Land to Grid Interconnect [miles]\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Distance Over Land to Grid Interconnect [miles]\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"distPort", (getter)Wobos_get_distPort,(setter)Wobos_set_distPort, - PyDoc_STR("*float*: Distance from Installation Port to Site [km]\n\n*Constraints*: MIN=5,MAX=1000\n\n*Required*: If not provided, assumed to be 90"), + PyDoc_STR("*float*: Distance from Installation Port to Site [km]\n\n**Constraints:**\nMIN=5,MAX=1000\n\n**Required:**\nFalse. Automatically set to 90 if not assigned explicitly or loaded from defaults."), NULL}, {"distPtoA", (getter)Wobos_get_distPtoA,(setter)Wobos_set_distPtoA, - PyDoc_STR("*float*: Distance from Installation Port to Inshore Assembly Area [km]\n\n*Constraints*: MIN=5,MAX=1000\n\n*Required*: If not provided, assumed to be 90"), + PyDoc_STR("*float*: Distance from Installation Port to Inshore Assembly Area [km]\n\n**Constraints:**\nMIN=5,MAX=1000\n\n**Required:**\nFalse. Automatically set to 90 if not assigned explicitly or loaded from defaults."), NULL}, {"distShore", (getter)Wobos_get_distShore,(setter)Wobos_set_distShore, - PyDoc_STR("*float*: Distance to Landfall [km]\n\n*Constraints*: MIN=5,MAX=1000\n\n*Required*: If not provided, assumed to be 90"), + PyDoc_STR("*float*: Distance to Landfall [km]\n\n**Constraints:**\nMIN=5,MAX=1000\n\n**Required:**\nFalse. Automatically set to 90 if not assigned explicitly or loaded from defaults."), NULL}, {"diveTeamDR", (getter)Wobos_get_diveTeamDR,(setter)Wobos_set_diveTeamDR, - PyDoc_STR("*float*: Cable Landfall Dive Team Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 3200"), + PyDoc_STR("*float*: Cable Landfall Dive Team Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 3200 if not assigned explicitly or loaded from defaults."), NULL}, {"dockRate", (getter)Wobos_get_dockRate,(setter)Wobos_set_dockRate, - PyDoc_STR("*float*: Quayside Docking Cost Rate [$/day]\n\n*Required*: If not provided, assumed to be 3000"), + PyDoc_STR("*float*: Quayside Docking Cost Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 3000 if not assigned explicitly or loaded from defaults."), NULL}, {"dynCabFac", (getter)Wobos_get_dynCabFac,(setter)Wobos_set_dynCabFac, - PyDoc_STR("*float*: Dynamic Cable Cost Premium Factor\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Dynamic Cable Cost Premium Factor\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"elecCont", (getter)Wobos_get_elecCont,(setter)Wobos_set_elecCont, - PyDoc_STR("*float*: Electrical Install Weather Contingency [%]\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Electrical Install Weather Contingency [%]\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"elecWork", (getter)Wobos_get_elecWork,(setter)Wobos_set_elecWork, - PyDoc_STR("*float*: Onshore Infrastructure Electrical Work Cost [$]\n\n*Required*: If not provided, assumed to be 25000"), + PyDoc_STR("*float*: Onshore Infrastructure Electrical Work Cost [$]\n\n**Required:**\nFalse. Automatically set to 25000 if not assigned explicitly or loaded from defaults."), NULL}, {"endSpecAct", (getter)Wobos_get_endSpecAct,(setter)Wobos_set_endSpecAct, - PyDoc_STR("*float*: Endangered Species Act Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Endangered Species Act Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"entranceExitRate", (getter)Wobos_get_entranceExitRate,(setter)Wobos_set_entranceExitRate, - PyDoc_STR("*float*: Port Entrance and Exit Cost Rate [$/occurrence]\n\n*Required*: If not provided, assumed to be 0.525"), + PyDoc_STR("*float*: Port Entrance and Exit Cost Rate [$/occurrence]\n\n**Required:**\nFalse. Automatically set to 0.525 if not assigned explicitly or loaded from defaults."), NULL}, {"estEnMFac", (getter)Wobos_get_estEnMFac,(setter)Wobos_set_estEnMFac, - PyDoc_STR("*float*: Estimated Engineering & Management Cost Factor\n\n*Required*: If not provided, assumed to be 0.04"), + PyDoc_STR("*float*: Estimated Engineering & Management Cost Factor\n\n**Required:**\nFalse. Automatically set to 0.04 if not assigned explicitly or loaded from defaults."), NULL}, {"exCabFac", (getter)Wobos_get_exCabFac,(setter)Wobos_set_exCabFac, - PyDoc_STR("*float*: Excess Cable Factor\n\n*Required*: If not provided, assumed to be 0.1"), + PyDoc_STR("*float*: Excess Cable Factor\n\n**Required:**\nFalse. Automatically set to 0.1 if not assigned explicitly or loaded from defaults."), NULL}, {"expCabCR", (getter)Wobos_get_expCabCR,(setter)Wobos_set_expCabCR, - PyDoc_STR("*float*: Export cable cost rate [$/m]\n\n*Required*: If not provided, assumed to be 495.411"), + PyDoc_STR("*float*: Export cable cost rate [$/m]\n\n**Required:**\nFalse. Automatically set to 495.411 if not assigned explicitly or loaded from defaults."), NULL}, {"expCabLoad", (getter)Wobos_get_expCabLoad,(setter)Wobos_set_expCabLoad, - PyDoc_STR("*float*: Export Cable Loadout for Installation [hours]\n\n*Required*: If not provided, assumed to be 24"), + PyDoc_STR("*float*: Export Cable Loadout for Installation [hours]\n\n**Required:**\nFalse. Automatically set to 24 if not assigned explicitly or loaded from defaults."), NULL}, {"expCabMass", (getter)Wobos_get_expCabMass,(setter)Wobos_set_expCabMass, - PyDoc_STR("*float*: Export cable mass [kg/m]\n\n*Required*: If not provided, assumed to be 71.9"), + PyDoc_STR("*float*: Export cable mass [kg/m]\n\n**Required:**\nFalse. Automatically set to 71.9 if not assigned explicitly or loaded from defaults."), NULL}, {"expCurrRating", (getter)Wobos_get_expCurrRating,(setter)Wobos_set_expCurrRating, - PyDoc_STR("*float*: Export cable current rating [A]\n\n*Required*: If not provided, assumed to be 530"), + PyDoc_STR("*float*: Export cable current rating [A]\n\n**Required:**\nFalse. Automatically set to 530 if not assigned explicitly or loaded from defaults."), NULL}, {"expSubsInterCR", (getter)Wobos_get_expSubsInterCR,(setter)Wobos_set_expSubsInterCR, - PyDoc_STR("*float*: Export cable substation interface cost [$/interface]\n\n*Required*: If not provided, assumed to be 57500"), + PyDoc_STR("*float*: Export cable substation interface cost [$/interface]\n\n**Required:**\nFalse. Automatically set to 57500 if not assigned explicitly or loaded from defaults."), NULL}, {"expVoltage", (getter)Wobos_get_expVoltage,(setter)Wobos_set_expVoltage, - PyDoc_STR("*float*: Export cable voltage [kV]\n\n*Required*: If not provided, assumed to be 220"), + PyDoc_STR("*float*: Export cable voltage [kV]\n\n**Required:**\nFalse. Automatically set to 220 if not assigned explicitly or loaded from defaults."), NULL}, {"exportCables", (getter)Wobos_get_exportCables,(setter)Wobos_set_exportCables, - PyDoc_STR("*str*: Export cables to consider by voltage [kV]\n\n*Required*: If not provided, assumed to be 132 220"), + PyDoc_STR("*str*: Export cables to consider by voltage [kV]\n\n**Required:**\nFalse. Automatically set to 132 220 if not assigned explicitly or loaded from defaults."), NULL}, {"faaPlan", (getter)Wobos_get_faaPlan,(setter)Wobos_set_faaPlan, - PyDoc_STR("*float*: Federal Aviation Administration Plans & Mitigation Cost [$]\n\n*Required*: If not provided, assumed to be 10000"), + PyDoc_STR("*float*: Federal Aviation Administration Plans & Mitigation Cost [$]\n\n**Required:**\nFalse. Automatically set to 10000 if not assigned explicitly or loaded from defaults."), NULL}, {"feedStudy", (getter)Wobos_get_feedStudy,(setter)Wobos_set_feedStudy, - PyDoc_STR("*float*: FEED Study Cost [$]\n\n*Required*: If not provided, assumed to be 10000000"), + PyDoc_STR("*float*: FEED Study Cost [$]\n\n**Required:**\nFalse. Automatically set to 10000000 if not assigned explicitly or loaded from defaults."), NULL}, {"groutSpreadDR", (getter)Wobos_get_groutSpreadDR,(setter)Wobos_set_groutSpreadDR, - PyDoc_STR("*float*: Grouting Spread Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 3000"), + PyDoc_STR("*float*: Grouting Spread Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 3000 if not assigned explicitly or loaded from defaults."), NULL}, {"groutSpreadMob", (getter)Wobos_get_groutSpreadMob,(setter)Wobos_set_groutSpreadMob, - PyDoc_STR("*float*: Grouting Spread Mobilization Cost [$]\n\n*Required*: If not provided, assumed to be 1000000"), + PyDoc_STR("*float*: Grouting Spread Mobilization Cost [$]\n\n**Required:**\nFalse. Automatically set to 1000000 if not assigned explicitly or loaded from defaults."), NULL}, {"groutTP", (getter)Wobos_get_groutTP,(setter)Wobos_set_groutTP, - PyDoc_STR("*float*: Grout Transition Piece/Monopile Interface [hours]\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: Grout Transition Piece/Monopile Interface [hours]\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"hamRate", (getter)Wobos_get_hamRate,(setter)Wobos_set_hamRate, - PyDoc_STR("*float*: Pile Hammer Rate [m/hour]\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Pile Hammer Rate [m/hour]\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"highVoltSG", (getter)Wobos_get_highVoltSG,(setter)Wobos_set_highVoltSG, - PyDoc_STR("*float*: High Voltage Switchgear Cost [$]\n\n*Required*: If not provided, assumed to be 950000"), + PyDoc_STR("*float*: High Voltage Switchgear Cost [$]\n\n**Required:**\nFalse. Automatically set to 950000 if not assigned explicitly or loaded from defaults."), NULL}, {"hubD", (getter)Wobos_get_hubD,(setter)Wobos_set_hubD, - PyDoc_STR("*float*: Hub Diameter [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Hub Diameter [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"hubH", (getter)Wobos_get_hubH,(setter)Wobos_set_hubH, - PyDoc_STR("*float*: Hub Height [m]\n\n*Required*: If not provided, assumed to be 90"), + PyDoc_STR("*float*: Hub Height [m]\n\n**Required:**\nFalse. Automatically set to 90 if not assigned explicitly or loaded from defaults."), NULL}, {"inspectClear", (getter)Wobos_get_inspectClear,(setter)Wobos_set_inspectClear, - PyDoc_STR("*float*: Inspection Clearance [m]\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Inspection Clearance [m]\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"instScour", (getter)Wobos_get_instScour,(setter)Wobos_set_instScour, - PyDoc_STR("*float*: Install Scour Protection Around Monopile Base [hours]\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Install Scour Protection Around Monopile Base [hours]\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"installStrategy", (getter)Wobos_get_installStrategy,(setter)Wobos_set_installStrategy, - PyDoc_STR("*float*: Installation Vessel Strategy\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be PRIMARYVESSEL"), + PyDoc_STR("*float*: Installation Vessel Strategy\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to PRIMARYVESSEL if not assigned explicitly or loaded from defaults."), NULL}, {"install_contingency", (getter)Wobos_get_install_contingency,(setter)Wobos_set_install_contingency, - PyDoc_STR("*float*: Installation Contingency\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Installation Contingency\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"interConVolt", (getter)Wobos_get_interConVolt,(setter)Wobos_set_interConVolt, - PyDoc_STR("*float*: Grid Interconnect Voltage [kV]\n\n*Required*: If not provided, assumed to be 345"), + PyDoc_STR("*float*: Grid Interconnect Voltage [kV]\n\n**Required:**\nFalse. Automatically set to 345 if not assigned explicitly or loaded from defaults."), NULL}, {"interest_during_construction", (getter)Wobos_get_interest_during_construction,(setter)Wobos_set_interest_during_construction, - PyDoc_STR("*float*: Interest During Construction\n\n*Required*: If not provided, assumed to be 0.08"), + PyDoc_STR("*float*: Interest During Construction\n\n**Required:**\nFalse. Automatically set to 0.08 if not assigned explicitly or loaded from defaults."), NULL}, {"jackFasten", (getter)Wobos_get_jackFasten,(setter)Wobos_set_jackFasten, - PyDoc_STR("*float*: Prepare and Fasten Jacket for Transport [hours/unit]\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Prepare and Fasten Jacket for Transport [hours/unit]\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"jlatticeA", (getter)Wobos_get_jlatticeA,(setter)Wobos_set_jlatticeA, - PyDoc_STR("*float*: Jacket Main Lattice Footprint Area [m^2]\n\n*Required*: If not provided, assumed to be 26"), + PyDoc_STR("*float*: Jacket Main Lattice Footprint Area [m^2]\n\n**Required:**\nFalse. Automatically set to 26 if not assigned explicitly or loaded from defaults."), NULL}, {"jlatticeCR", (getter)Wobos_get_jlatticeCR,(setter)Wobos_set_jlatticeCR, - PyDoc_STR("*float*: Jacket Main Lattice Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 4680"), + PyDoc_STR("*float*: Jacket Main Lattice Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 4680 if not assigned explicitly or loaded from defaults."), NULL}, {"jpileCR", (getter)Wobos_get_jpileCR,(setter)Wobos_set_jpileCR, - PyDoc_STR("*float*: Jacket Pile Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 2250"), + PyDoc_STR("*float*: Jacket Pile Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 2250 if not assigned explicitly or loaded from defaults."), NULL}, {"jpileD", (getter)Wobos_get_jpileD,(setter)Wobos_set_jpileD, - PyDoc_STR("*float*: Jacket Pile Diameter [m]\n\n*Required*: If not provided, assumed to be 1.6"), + PyDoc_STR("*float*: Jacket Pile Diameter [m]\n\n**Required:**\nFalse. Automatically set to 1.6 if not assigned explicitly or loaded from defaults."), NULL}, {"jpileL", (getter)Wobos_get_jpileL,(setter)Wobos_set_jpileL, - PyDoc_STR("*float*: Jacket Pile Length [m]\n\n*Required*: If not provided, assumed to be 47.5"), + PyDoc_STR("*float*: Jacket Pile Length [m]\n\n**Required:**\nFalse. Automatically set to 47.5 if not assigned explicitly or loaded from defaults."), NULL}, {"jtransCR", (getter)Wobos_get_jtransCR,(setter)Wobos_set_jtransCR, - PyDoc_STR("*float*: Jacket Transition Piece Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 4500"), + PyDoc_STR("*float*: Jacket Transition Piece Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 4500 if not assigned explicitly or loaded from defaults."), NULL}, {"landConstruct", (getter)Wobos_get_landConstruct,(setter)Wobos_set_landConstruct, - PyDoc_STR("*float*: Onshore Infrastructure Construction [days]\n\n*Required*: If not provided, assumed to be 7"), + PyDoc_STR("*float*: Onshore Infrastructure Construction [days]\n\n**Required:**\nFalse. Automatically set to 7 if not assigned explicitly or loaded from defaults."), NULL}, {"laydownCR", (getter)Wobos_get_laydownCR,(setter)Wobos_set_laydownCR, - PyDoc_STR("*float*: Laydown and Storage Cost Rate [$/m^2/day]\n\n*Required*: If not provided, assumed to be 0.25"), + PyDoc_STR("*float*: Laydown and Storage Cost Rate [$/m^2/day]\n\n**Required:**\nFalse. Automatically set to 0.25 if not assigned explicitly or loaded from defaults."), NULL}, {"levJack", (getter)Wobos_get_levJack,(setter)Wobos_set_levJack, - PyDoc_STR("*float*: Level Jacket Main Lattice [hours]\n\n*Required*: If not provided, assumed to be 24"), + PyDoc_STR("*float*: Level Jacket Main Lattice [hours]\n\n**Required:**\nFalse. Automatically set to 24 if not assigned explicitly or loaded from defaults."), NULL}, {"marMamProtAct", (getter)Wobos_get_marMamProtAct,(setter)Wobos_set_marMamProtAct, - PyDoc_STR("*float*: Marine Mammal Protection Act Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Marine Mammal Protection Act Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"medVoltSG", (getter)Wobos_get_medVoltSG,(setter)Wobos_set_medVoltSG, - PyDoc_STR("*float*: Medium Voltage Switchgear Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Medium Voltage Switchgear Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"metTowCR", (getter)Wobos_get_metTowCR,(setter)Wobos_set_metTowCR, - PyDoc_STR("*float*: Meteorological (Met Tower Fabrication & Install Cost [$/MW]\n\n*Required*: If not provided, assumed to be 11518"), + PyDoc_STR("*float*: Meteorological (Met Tower Fabrication & Install Cost [$/MW]\n\n**Required:**\nFalse. Automatically set to 11518 if not assigned explicitly or loaded from defaults."), NULL}, {"migBirdAct", (getter)Wobos_get_migBirdAct,(setter)Wobos_set_migBirdAct, - PyDoc_STR("*float*: Migratory Bird Treaty Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Migratory Bird Treaty Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"monoFasten", (getter)Wobos_get_monoFasten,(setter)Wobos_set_monoFasten, - PyDoc_STR("*float*: Prepare and Fasten Monopile for Transport [hours/unit]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Prepare and Fasten Monopile for Transport [hours/unit]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"moorCR", (getter)Wobos_get_moorCR,(setter)Wobos_set_moorCR, - PyDoc_STR("*float*: Mooring Line Cost Rate [$/m]\n\n*Constraints*: MIN=399\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Mooring Line Cost Rate [$/m]\n\n**Constraints:**\nMIN=399\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"moorCost", (getter)Wobos_get_moorCost,(setter)Wobos_set_moorCost, - PyDoc_STR("*float*: Capital cost of mooring lines and anchors [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Capital cost of mooring lines and anchors [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"moorDia", (getter)Wobos_get_moorDia,(setter)Wobos_set_moorDia, - PyDoc_STR("*float*: Mooring Line Diameter [m]\n\n*Constraints*: MIN=0.09\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Mooring Line Diameter [m]\n\n**Constraints:**\nMIN=0.09\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"moorLines", (getter)Wobos_get_moorLines,(setter)Wobos_set_moorLines, - PyDoc_STR("*float*: Number Of Mooring Lines\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Number Of Mooring Lines\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"moorLoadout", (getter)Wobos_get_moorLoadout,(setter)Wobos_set_moorLoadout, - PyDoc_STR("*float*: Anchor & Mooring Loadout Time [hours]\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Anchor & Mooring Loadout Time [hours]\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"moorSurvey", (getter)Wobos_get_moorSurvey,(setter)Wobos_set_moorSurvey, - PyDoc_STR("*float*: Survey Mooring Lines & Anchor Positions Time [hours]\n\n*Required*: If not provided, assumed to be 4"), + PyDoc_STR("*float*: Survey Mooring Lines & Anchor Positions Time [hours]\n\n**Required:**\nFalse. Automatically set to 4 if not assigned explicitly or loaded from defaults."), NULL}, {"moorTimeFac", (getter)Wobos_get_moorTimeFac,(setter)Wobos_set_moorTimeFac, - PyDoc_STR("*float*: Anchor & Mooring Water Depth Time Factor\n\n*Required*: If not provided, assumed to be 0.005"), + PyDoc_STR("*float*: Anchor & Mooring Water Depth Time Factor\n\n**Required:**\nFalse. Automatically set to 0.005 if not assigned explicitly or loaded from defaults."), NULL}, {"mpEmbedL", (getter)Wobos_get_mpEmbedL,(setter)Wobos_set_mpEmbedL, - PyDoc_STR("*float*: Monopile Embedment Length [m]\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Monopile Embedment Length [m]\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"mpileCR", (getter)Wobos_get_mpileCR,(setter)Wobos_set_mpileCR, - PyDoc_STR("*float*: Monopile Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 2250"), + PyDoc_STR("*float*: Monopile Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 2250 if not assigned explicitly or loaded from defaults."), NULL}, {"mpileD", (getter)Wobos_get_mpileD,(setter)Wobos_set_mpileD, - PyDoc_STR("*float*: Monopile Diameter [m]\n\n*Constraints*: MIN=0.01\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Monopile Diameter [m]\n\n**Constraints:**\nMIN=0.01\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mpileL", (getter)Wobos_get_mpileL,(setter)Wobos_set_mpileL, - PyDoc_STR("*float*: Monopile Length [m]\n\n*Constraints*: MIN=0.01\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Monopile Length [m]\n\n**Constraints:**\nMIN=0.01\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"mptCR", (getter)Wobos_get_mptCR,(setter)Wobos_set_mptCR, - PyDoc_STR("*float*: Main Power Transformer Cost Rate [$/MVA]\n\n*Required*: If not provided, assumed to be 12500"), + PyDoc_STR("*float*: Main Power Transformer Cost Rate [$/MVA]\n\n**Required:**\nFalse. Automatically set to 12500 if not assigned explicitly or loaded from defaults."), NULL}, {"mpvRentalDR", (getter)Wobos_get_mpvRentalDR,(setter)Wobos_set_mpvRentalDR, - PyDoc_STR("*float*: MPV Rental Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 72000"), + PyDoc_STR("*float*: MPV Rental Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 72000 if not assigned explicitly or loaded from defaults."), NULL}, {"mtransCR", (getter)Wobos_get_mtransCR,(setter)Wobos_set_mtransCR, - PyDoc_STR("*float*: Monopile Transition Piece Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 3230"), + PyDoc_STR("*float*: Monopile Transition Piece Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 3230 if not assigned explicitly or loaded from defaults."), NULL}, {"nCrane1000", (getter)Wobos_get_nCrane1000,(setter)Wobos_set_nCrane1000, - PyDoc_STR("*float*: Number of 1000 t Crawler Cranes\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of 1000 t Crawler Cranes\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"nCrane600", (getter)Wobos_get_nCrane600,(setter)Wobos_set_nCrane600, - PyDoc_STR("*float*: Number of 600 t Crawler Cranes\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Number of 600 t Crawler Cranes\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"nTurb", (getter)Wobos_get_nTurb,(setter)Wobos_set_nTurb, - PyDoc_STR("*float*: Number of Turbines\n\n*Constraints*: MIN=2,MAX=200\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Number of Turbines\n\n**Constraints:**\nMIN=2,MAX=200\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"nacelleL", (getter)Wobos_get_nacelleL,(setter)Wobos_set_nacelleL, - PyDoc_STR("*float*: Nacelle Length [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Nacelle Length [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"nacelleW", (getter)Wobos_get_nacelleW,(setter)Wobos_set_nacelleW, - PyDoc_STR("*float*: Nacelle Width [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Nacelle Width [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"natHisPresAct", (getter)Wobos_get_natHisPresAct,(setter)Wobos_set_natHisPresAct, - PyDoc_STR("*float*: National Historic Preservation Act Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: National Historic Preservation Act Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"navStudyMet", (getter)Wobos_get_navStudyMet,(setter)Wobos_set_navStudyMet, - PyDoc_STR("*float*: Navigation and Transport Study Met Tower Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Navigation and Transport Study Met Tower Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"navStudyProj", (getter)Wobos_get_navStudyProj,(setter)Wobos_set_navStudyProj, - PyDoc_STR("*float*: Navigation and Transport Study Project Cost [$]\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Navigation and Transport Study Project Cost [$]\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"nepaEisMet", (getter)Wobos_get_nepaEisMet,(setter)Wobos_set_nepaEisMet, - PyDoc_STR("*float*: NEPA Environmental Impact Statement Met Tower Cost [$]\n\n*Required*: If not provided, assumed to be 2000000"), + PyDoc_STR("*float*: NEPA Environmental Impact Statement Met Tower Cost [$]\n\n**Required:**\nFalse. Automatically set to 2000000 if not assigned explicitly or loaded from defaults."), NULL}, {"nepaEisProj", (getter)Wobos_get_nepaEisProj,(setter)Wobos_set_nepaEisProj, - PyDoc_STR("*float*: NEPA Environmental Impact Study Project Cost [$]\n\n*Required*: If not provided, assumed to be 5000000"), + PyDoc_STR("*float*: NEPA Environmental Impact Study Project Cost [$]\n\n**Required:**\nFalse. Automatically set to 5000000 if not assigned explicitly or loaded from defaults."), NULL}, {"number_install_seasons", (getter)Wobos_get_number_install_seasons,(setter)Wobos_set_number_install_seasons, - PyDoc_STR("*float*: Number of Installation Seasons\n\n*Required*: If not provided, assumed to be 1"), + PyDoc_STR("*float*: Number of Installation Seasons\n\n**Required:**\nFalse. Automatically set to 1 if not assigned explicitly or loaded from defaults."), NULL}, {"otherAncillary", (getter)Wobos_get_otherAncillary,(setter)Wobos_set_otherAncillary, - PyDoc_STR("*float*: Other Ancillary Systems Costs [$]\n\n*Required*: If not provided, assumed to be 3000000"), + PyDoc_STR("*float*: Other Ancillary Systems Costs [$]\n\n**Required:**\nFalse. Automatically set to 3000000 if not assigned explicitly or loaded from defaults."), NULL}, {"outConShelfLease", (getter)Wobos_get_outConShelfLease,(setter)Wobos_set_outConShelfLease, - PyDoc_STR("*float*: Outer Continental Shelf Lease Cost [$]\n\n*Required*: If not provided, assumed to be 1000000"), + PyDoc_STR("*float*: Outer Continental Shelf Lease Cost [$]\n\n**Required:**\nFalse. Automatically set to 1000000 if not assigned explicitly or loaded from defaults."), NULL}, {"physResStudyMet", (getter)Wobos_get_physResStudyMet,(setter)Wobos_set_physResStudyMet, - PyDoc_STR("*float*: Physical Resource Study Met Tower Cost [$]\n\n*Required*: If not provided, assumed to be 1500000"), + PyDoc_STR("*float*: Physical Resource Study Met Tower Cost [$]\n\n**Required:**\nFalse. Automatically set to 1500000 if not assigned explicitly or loaded from defaults."), NULL}, {"physResStudyProj", (getter)Wobos_get_physResStudyProj,(setter)Wobos_set_physResStudyProj, - PyDoc_STR("*float*: Physical Resource Study Project Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Physical Resource Study Project Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"pileSpreadDR", (getter)Wobos_get_pileSpreadDR,(setter)Wobos_set_pileSpreadDR, - PyDoc_STR("*float*: Piling Spread Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 2500"), + PyDoc_STR("*float*: Piling Spread Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 2500 if not assigned explicitly or loaded from defaults."), NULL}, {"pileSpreadMob", (getter)Wobos_get_pileSpreadMob,(setter)Wobos_set_pileSpreadMob, - PyDoc_STR("*float*: Piling Spread Mobilization Cost [$]\n\n*Required*: If not provided, assumed to be 750000"), + PyDoc_STR("*float*: Piling Spread Mobilization Cost [$]\n\n**Required:**\nFalse. Automatically set to 750000 if not assigned explicitly or loaded from defaults."), NULL}, {"placeJack", (getter)Wobos_get_placeJack,(setter)Wobos_set_placeJack, - PyDoc_STR("*float*: Place Jacket Main Lattice onto Piles [hours]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Place Jacket Main Lattice onto Piles [hours]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"placeMP", (getter)Wobos_get_placeMP,(setter)Wobos_set_placeMP, - PyDoc_STR("*float*: Lift and Place Monopile for Hammering [hours]\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Lift and Place Monopile for Hammering [hours]\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"placePiles", (getter)Wobos_get_placePiles,(setter)Wobos_set_placePiles, - PyDoc_STR("*float*: Place Jacket Piles [hours]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Place Jacket Piles [hours]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"placeTP", (getter)Wobos_get_placeTP,(setter)Wobos_set_placeTP, - PyDoc_STR("*float*: Place Transition Piece onto Monopile [hours]\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Place Transition Piece onto Monopile [hours]\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"placeTemplate", (getter)Wobos_get_placeTemplate,(setter)Wobos_set_placeTemplate, - PyDoc_STR("*float*: Place Jacket Pile Template on Seabed [hours]\n\n*Required*: If not provided, assumed to be 4"), + PyDoc_STR("*float*: Place Jacket Pile Template on Seabed [hours]\n\n**Required:**\nFalse. Automatically set to 4 if not assigned explicitly or loaded from defaults."), NULL}, {"placeTop", (getter)Wobos_get_placeTop,(setter)Wobos_set_placeTop, - PyDoc_STR("*float*: Lift and Place Offshore Substation Topside [hours]\n\n*Required*: If not provided, assumed to be 24"), + PyDoc_STR("*float*: Lift and Place Offshore Substation Topside [hours]\n\n**Required:**\nFalse. Automatically set to 24 if not assigned explicitly or loaded from defaults."), NULL}, {"plantComm", (getter)Wobos_get_plantComm,(setter)Wobos_set_plantComm, - PyDoc_STR("*float*: Plant Commissioning Cost Factor\n\n*Required*: If not provided, assumed to be 0.01"), + PyDoc_STR("*float*: Plant Commissioning Cost Factor\n\n**Required:**\nFalse. Automatically set to 0.01 if not assigned explicitly or loaded from defaults."), NULL}, {"preFEEDStudy", (getter)Wobos_get_preFEEDStudy,(setter)Wobos_set_preFEEDStudy, - PyDoc_STR("*float*: Pre-FEED study Cost [$]\n\n*Required*: If not provided, assumed to be 5000000"), + PyDoc_STR("*float*: Pre-FEED study Cost [$]\n\n**Required:**\nFalse. Automatically set to 5000000 if not assigned explicitly or loaded from defaults."), NULL}, {"prepAA", (getter)Wobos_get_prepAA,(setter)Wobos_set_prepAA, - PyDoc_STR("*float*: Prepare Inshore Assembly Area For Turbine Installation [hours]\n\n*Required*: If not provided, assumed to be 168"), + PyDoc_STR("*float*: Prepare Inshore Assembly Area For Turbine Installation [hours]\n\n**Required:**\nFalse. Automatically set to 168 if not assigned explicitly or loaded from defaults."), NULL}, {"prepGripperJack", (getter)Wobos_get_prepGripperJack,(setter)Wobos_set_prepGripperJack, - PyDoc_STR("*float*: Prepare Jacket Gripper and Upender [hours]\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: Prepare Jacket Gripper and Upender [hours]\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"prepGripperMono", (getter)Wobos_get_prepGripperMono,(setter)Wobos_set_prepGripperMono, - PyDoc_STR("*float*: Prepare Monopile Gripper and Upender [hours]\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Prepare Monopile Gripper and Upender [hours]\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"prepHamJack", (getter)Wobos_get_prepHamJack,(setter)Wobos_set_prepHamJack, - PyDoc_STR("*float*: Prepare Hammer for jacket Piles Installation [hours]\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Prepare Hammer for jacket Piles Installation [hours]\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"prepHamMono", (getter)Wobos_get_prepHamMono,(setter)Wobos_set_prepHamMono, - PyDoc_STR("*float*: Prepare Hammer for Monopile Installation [hours]\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Prepare Hammer for Monopile Installation [hours]\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"prepSemi", (getter)Wobos_get_prepSemi,(setter)Wobos_set_prepSemi, - PyDoc_STR("*float*: Prepare Semi-submersible for Turbine Installation [hours]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Prepare Semi-submersible for Turbine Installation [hours]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"prepSpar", (getter)Wobos_get_prepSpar,(setter)Wobos_set_prepSpar, - PyDoc_STR("*float*: Prepare Spar for Tow to Inshore Assembly Area [hours]\n\n*Required*: If not provided, assumed to be 18"), + PyDoc_STR("*float*: Prepare Spar for Tow to Inshore Assembly Area [hours]\n\n**Required:**\nFalse. Automatically set to 18 if not assigned explicitly or loaded from defaults."), NULL}, {"prepTow", (getter)Wobos_get_prepTow,(setter)Wobos_set_prepTow, - PyDoc_STR("*float*: Prepare Floating Substructure for Tow to Site [hours]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Prepare Floating Substructure for Tow to Site [hours]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"procurement_contingency", (getter)Wobos_get_procurement_contingency,(setter)Wobos_set_procurement_contingency, - PyDoc_STR("*float*: Procurement Contingency\n\n*Required*: If not provided, assumed to be 0.05"), + PyDoc_STR("*float*: Procurement Contingency\n\n**Required:**\nFalse. Automatically set to 0.05 if not assigned explicitly or loaded from defaults."), NULL}, {"projLife", (getter)Wobos_get_projLife,(setter)Wobos_set_projLife, - PyDoc_STR("*float*: Project Economic Life [years]\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Project Economic Life [years]\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"pwrFac", (getter)Wobos_get_pwrFac,(setter)Wobos_set_pwrFac, - PyDoc_STR("*float*: Power Transfer Efficiency Factor\n\n*Required*: If not provided, assumed to be 0.95"), + PyDoc_STR("*float*: Power Transfer Efficiency Factor\n\n**Required:**\nFalse. Automatically set to 0.95 if not assigned explicitly or loaded from defaults."), NULL}, {"removeHamJack", (getter)Wobos_get_removeHamJack,(setter)Wobos_set_removeHamJack, - PyDoc_STR("*float*: Remove Hammer for Jacket Piles Installation [hours]\n\n*Required*: If not provided, assumed to be 4"), + PyDoc_STR("*float*: Remove Hammer for Jacket Piles Installation [hours]\n\n**Required:**\nFalse. Automatically set to 4 if not assigned explicitly or loaded from defaults."), NULL}, {"removeHamMono", (getter)Wobos_get_removeHamMono,(setter)Wobos_set_removeHamMono, - PyDoc_STR("*float*: Remove Hammer for Monopile Installation [hours]\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Remove Hammer for Monopile Installation [hours]\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"rivsnHarbsAct", (getter)Wobos_get_rivsnHarbsAct,(setter)Wobos_set_rivsnHarbsAct, - PyDoc_STR("*float*: Rivers & Harbors Act Section 10 Compliance Cost [$]\n\n*Required*: If not provided, assumed to be 100000"), + PyDoc_STR("*float*: Rivers & Harbors Act Section 10 Compliance Cost [$]\n\n**Required:**\nFalse. Automatically set to 100000 if not assigned explicitly or loaded from defaults."), NULL}, {"rnaM", (getter)Wobos_get_rnaM,(setter)Wobos_set_rnaM, - PyDoc_STR("*float*: Rotor-Nacelle Assembly Mass [tonne]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Rotor-Nacelle Assembly Mass [tonne]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rotorD", (getter)Wobos_get_rotorD,(setter)Wobos_set_rotorD, - PyDoc_STR("*float*: Rotor Diameter [m]\n\n*Required*: If not provided, assumed to be 120"), + PyDoc_STR("*float*: Rotor Diameter [m]\n\n**Required:**\nFalse. Automatically set to 120 if not assigned explicitly or loaded from defaults."), NULL}, {"sSteelCR", (getter)Wobos_get_sSteelCR,(setter)Wobos_set_sSteelCR, - PyDoc_STR("*float*: Secondary/Outfitting Steel Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 7250"), + PyDoc_STR("*float*: Secondary/Outfitting Steel Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 7250 if not assigned explicitly or loaded from defaults."), NULL}, {"saPlan", (getter)Wobos_get_saPlan,(setter)Wobos_set_saPlan, - PyDoc_STR("*float*: Site Assessment Plan Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Site Assessment Plan Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"scourMat", (getter)Wobos_get_scourMat,(setter)Wobos_set_scourMat, - PyDoc_STR("*float*: Scour Protection Material Cost [$/location]\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: Scour Protection Material Cost [$/location]\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"scrapVal", (getter)Wobos_get_scrapVal,(setter)Wobos_set_scrapVal, - PyDoc_STR("*float*: Total Scrap Value of Decommissioned Components [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total Scrap Value of Decommissioned Components [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"seaSpreadDR", (getter)Wobos_get_seaSpreadDR,(setter)Wobos_set_seaSpreadDR, - PyDoc_STR("*float*: Suction Pile Anchor Spread Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 165000"), + PyDoc_STR("*float*: Suction Pile Anchor Spread Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 165000 if not assigned explicitly or loaded from defaults."), NULL}, {"seaSpreadMob", (getter)Wobos_get_seaSpreadMob,(setter)Wobos_set_seaSpreadMob, - PyDoc_STR("*float*: Suction Pile Anchor Spread Mobilization Cost [$]\n\n*Required*: If not provided, assumed to be 4500000"), + PyDoc_STR("*float*: Suction Pile Anchor Spread Mobilization Cost [$]\n\n**Required:**\nFalse. Automatically set to 4500000 if not assigned explicitly or loaded from defaults."), NULL}, {"shorePullIn", (getter)Wobos_get_shorePullIn,(setter)Wobos_set_shorePullIn, - PyDoc_STR("*float*: Cable Pull in to Onshore Infrastructure [hours]\n\n*Required*: If not provided, assumed to be 96"), + PyDoc_STR("*float*: Cable Pull in to Onshore Infrastructure [hours]\n\n**Required:**\nFalse. Automatically set to 96 if not assigned explicitly or loaded from defaults."), NULL}, {"shuntCR", (getter)Wobos_get_shuntCR,(setter)Wobos_set_shuntCR, - PyDoc_STR("*float*: Shunt Reactor Cost Rate [$/MVA]\n\n*Required*: If not provided, assumed to be 35000"), + PyDoc_STR("*float*: Shunt Reactor Cost Rate [$/MVA]\n\n**Required:**\nFalse. Automatically set to 35000 if not assigned explicitly or loaded from defaults."), NULL}, {"socEconStudyMet", (getter)Wobos_get_socEconStudyMet,(setter)Wobos_set_socEconStudyMet, - PyDoc_STR("*float*: Socioeconomic and Land use Study Met Tower Cost [$]\n\n*Required*: If not provided, assumed to be 500000"), + PyDoc_STR("*float*: Socioeconomic and Land use Study Met Tower Cost [$]\n\n**Required:**\nFalse. Automatically set to 500000 if not assigned explicitly or loaded from defaults."), NULL}, {"socEconStudyProj", (getter)Wobos_get_socEconStudyProj,(setter)Wobos_set_socEconStudyProj, - PyDoc_STR("*float*: Socioeconomic and Land use Study Project Cost [$]\n\n*Required*: If not provided, assumed to be 200000"), + PyDoc_STR("*float*: Socioeconomic and Land use Study Project Cost [$]\n\n**Required:**\nFalse. Automatically set to 200000 if not assigned explicitly or loaded from defaults."), NULL}, {"spMoorCheck", (getter)Wobos_get_spMoorCheck,(setter)Wobos_set_spMoorCheck, - PyDoc_STR("*float*: Survey Spar Mooring Lines and Connections [hours]\n\n*Required*: If not provided, assumed to be 16"), + PyDoc_STR("*float*: Survey Spar Mooring Lines and Connections [hours]\n\n**Required:**\nFalse. Automatically set to 16 if not assigned explicitly or loaded from defaults."), NULL}, {"spMoorCon", (getter)Wobos_get_spMoorCon,(setter)Wobos_set_spMoorCon, - PyDoc_STR("*float*: Connect Mooring Lines to Spar [hours]\n\n*Required*: If not provided, assumed to be 20"), + PyDoc_STR("*float*: Connect Mooring Lines to Spar [hours]\n\n**Required:**\nFalse. Automatically set to 20 if not assigned explicitly or loaded from defaults."), NULL}, {"spStifColCR", (getter)Wobos_get_spStifColCR,(setter)Wobos_set_spStifColCR, - PyDoc_STR("*float*: Spar Stiffened Column Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 3120"), + PyDoc_STR("*float*: Spar Stiffened Column Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 3120 if not assigned explicitly or loaded from defaults."), NULL}, {"spTapColCR", (getter)Wobos_get_spTapColCR,(setter)Wobos_set_spTapColCR, - PyDoc_STR("*float*: Spar Tapered Column Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 4220"), + PyDoc_STR("*float*: Spar Tapered Column Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 4220 if not assigned explicitly or loaded from defaults."), NULL}, {"ssBall", (getter)Wobos_get_ssBall,(setter)Wobos_set_ssBall, - PyDoc_STR("*float*: Ballast Semi-submersible [hours]\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Ballast Semi-submersible [hours]\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"ssHeaveCR", (getter)Wobos_get_ssHeaveCR,(setter)Wobos_set_ssHeaveCR, - PyDoc_STR("*float*: Semi-submersible Heave Plate Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 6250"), + PyDoc_STR("*float*: Semi-submersible Heave Plate Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 6250 if not assigned explicitly or loaded from defaults."), NULL}, {"ssMoorCheck", (getter)Wobos_get_ssMoorCheck,(setter)Wobos_set_ssMoorCheck, - PyDoc_STR("*float*: Survey Semi-submersible Mooing Lines and Connections [hours]\n\n*Required*: If not provided, assumed to be 12"), + PyDoc_STR("*float*: Survey Semi-submersible Mooing Lines and Connections [hours]\n\n**Required:**\nFalse. Automatically set to 12 if not assigned explicitly or loaded from defaults."), NULL}, {"ssMoorCon", (getter)Wobos_get_ssMoorCon,(setter)Wobos_set_ssMoorCon, - PyDoc_STR("*float*: Connect Mooring Lines to Semi-Submersible [hours]\n\n*Required*: If not provided, assumed to be 22"), + PyDoc_STR("*float*: Connect Mooring Lines to Semi-Submersible [hours]\n\n**Required:**\nFalse. Automatically set to 22 if not assigned explicitly or loaded from defaults."), NULL}, {"ssStifColCR", (getter)Wobos_get_ssStifColCR,(setter)Wobos_set_ssStifColCR, - PyDoc_STR("*float*: Semi-submersible Stiffened Column Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 3120"), + PyDoc_STR("*float*: Semi-submersible Stiffened Column Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 3120 if not assigned explicitly or loaded from defaults."), NULL}, {"ssTrussCR", (getter)Wobos_get_ssTrussCR,(setter)Wobos_set_ssTrussCR, - PyDoc_STR("*float*: Semi-submersible Truss Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 6250"), + PyDoc_STR("*float*: Semi-submersible Truss Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 6250 if not assigned explicitly or loaded from defaults."), NULL}, {"stateLease", (getter)Wobos_get_stateLease,(setter)Wobos_set_stateLease, - PyDoc_STR("*float*: State Leasing and Permitting Cost [$]\n\n*Required*: If not provided, assumed to be 250000"), + PyDoc_STR("*float*: State Leasing and Permitting Cost [$]\n\n**Required:**\nFalse. Automatically set to 250000 if not assigned explicitly or loaded from defaults."), NULL}, {"subTotCost", (getter)Wobos_get_subTotCost,(setter)Wobos_set_subTotCost, - PyDoc_STR("*float*: Substructure & Foundation Total Cost [$]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Substructure & Foundation Total Cost [$]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subTotM", (getter)Wobos_get_subTotM,(setter)Wobos_set_subTotM, - PyDoc_STR("*float*: Total Substructure Mass per Turbine [tonne]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Total Substructure Mass per Turbine [tonne]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"subsJackCR", (getter)Wobos_get_subsJackCR,(setter)Wobos_set_subsJackCR, - PyDoc_STR("*float*: Offshore Substation Jacket Lattice Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 6250"), + PyDoc_STR("*float*: Offshore Substation Jacket Lattice Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 6250 if not assigned explicitly or loaded from defaults."), NULL}, {"subsLoad", (getter)Wobos_get_subsLoad,(setter)Wobos_set_subsLoad, - PyDoc_STR("*float*: Offshore Substation Loadout for Installation [hours]\n\n*Required*: If not provided, assumed to be 60"), + PyDoc_STR("*float*: Offshore Substation Loadout for Installation [hours]\n\n**Required:**\nFalse. Automatically set to 60 if not assigned explicitly or loaded from defaults."), NULL}, {"subsPileCR", (getter)Wobos_get_subsPileCR,(setter)Wobos_set_subsPileCR, - PyDoc_STR("*float*: Offshore Substation Jacket Pile Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 2250"), + PyDoc_STR("*float*: Offshore Substation Jacket Pile Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 2250 if not assigned explicitly or loaded from defaults."), NULL}, {"subsPullIn", (getter)Wobos_get_subsPullIn,(setter)Wobos_set_subsPullIn, - PyDoc_STR("*float*: Cable Pull in to Offshore Substation [hours]\n\n*Required*: If not provided, assumed to be 48"), + PyDoc_STR("*float*: Cable Pull in to Offshore Substation [hours]\n\n**Required:**\nFalse. Automatically set to 48 if not assigned explicitly or loaded from defaults."), NULL}, {"subsTopDes", (getter)Wobos_get_subsTopDes,(setter)Wobos_set_subsTopDes, - PyDoc_STR("*float*: Offshore Substation Design Cost [$]\n\n*Required*: If not provided, assumed to be 4500000"), + PyDoc_STR("*float*: Offshore Substation Design Cost [$]\n\n**Required:**\nFalse. Automatically set to 4500000 if not assigned explicitly or loaded from defaults."), NULL}, {"subsTopFab", (getter)Wobos_get_subsTopFab,(setter)Wobos_set_subsTopFab, - PyDoc_STR("*float*: Offshore Substation Fabrication Cost [$/tonne]\n\n*Required*: If not provided, assumed to be 14500"), + PyDoc_STR("*float*: Offshore Substation Fabrication Cost [$/tonne]\n\n**Required:**\nFalse. Automatically set to 14500 if not assigned explicitly or loaded from defaults."), NULL}, {"subsVessPos", (getter)Wobos_get_subsVessPos,(setter)Wobos_set_subsVessPos, - PyDoc_STR("*float*: Vessel Positioning Time Offshore Substation Installation [hours]\n\n*Required*: If not provided, assumed to be 6"), + PyDoc_STR("*float*: Vessel Positioning Time Offshore Substation Installation [hours]\n\n**Required:**\nFalse. Automatically set to 6 if not assigned explicitly or loaded from defaults."), NULL}, {"substructCont", (getter)Wobos_get_substructCont,(setter)Wobos_set_substructCont, - PyDoc_STR("*float*: Substructure Install Weather Contingency [%]\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Substructure Install Weather Contingency [%]\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"substructure", (getter)Wobos_get_substructure,(setter)Wobos_set_substructure, - PyDoc_STR("*float*: Substructure Type\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be MONOPILE"), + PyDoc_STR("*float*: Substructure Type\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to MONOPILE if not assigned explicitly or loaded from defaults."), NULL}, {"surfLayRate", (getter)Wobos_get_surfLayRate,(setter)Wobos_set_surfLayRate, - PyDoc_STR("*float*: Cable Surface Lay Rate [m/hour]\n\n*Required*: If not provided, assumed to be 375"), + PyDoc_STR("*float*: Cable Surface Lay Rate [m/hour]\n\n**Required:**\nFalse. Automatically set to 375 if not assigned explicitly or loaded from defaults."), NULL}, {"tax_rate", (getter)Wobos_get_tax_rate,(setter)Wobos_set_tax_rate, - PyDoc_STR("*float*: Effective Tax Rate\n\n*Required*: If not provided, assumed to be 0.4"), + PyDoc_STR("*float*: Effective Tax Rate\n\n**Required:**\nFalse. Automatically set to 0.4 if not assigned explicitly or loaded from defaults."), NULL}, {"topAssemblyFac", (getter)Wobos_get_topAssemblyFac,(setter)Wobos_set_topAssemblyFac, - PyDoc_STR("*float*: Offshore Substation Land-based Assembly Factor\n\n*Required*: If not provided, assumed to be 0.075"), + PyDoc_STR("*float*: Offshore Substation Land-based Assembly Factor\n\n**Required:**\nFalse. Automatically set to 0.075 if not assigned explicitly or loaded from defaults."), NULL}, {"towerD", (getter)Wobos_get_towerD,(setter)Wobos_set_towerD, - PyDoc_STR("*float*: Tower Base Diameter [m]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tower Base Diameter [m]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"towerInstallMethod", (getter)Wobos_get_towerInstallMethod,(setter)Wobos_set_towerInstallMethod, - PyDoc_STR("*float*: Tower Installation Method\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be ONEPIECE"), + PyDoc_STR("*float*: Tower Installation Method\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to ONEPIECE if not assigned explicitly or loaded from defaults."), NULL}, {"towerM", (getter)Wobos_get_towerM,(setter)Wobos_set_towerM, - PyDoc_STR("*float*: Tower Mass [tonne]\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Tower Mass [tonne]\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"tpCover", (getter)Wobos_get_tpCover,(setter)Wobos_set_tpCover, - PyDoc_STR("*float*: Install Transition Piece Cover [hours]\n\n*Required*: If not provided, assumed to be 1.5"), + PyDoc_STR("*float*: Install Transition Piece Cover [hours]\n\n**Required:**\nFalse. Automatically set to 1.5 if not assigned explicitly or loaded from defaults."), NULL}, {"turbCapEx", (getter)Wobos_get_turbCapEx,(setter)Wobos_set_turbCapEx, - PyDoc_STR("*float*: Turbine Capital Cost [$/kW]\n\n*Required*: If not provided, assumed to be 1605"), + PyDoc_STR("*float*: Turbine Capital Cost [$/kW]\n\n**Required:**\nFalse. Automatically set to 1605 if not assigned explicitly or loaded from defaults."), NULL}, {"turbCont", (getter)Wobos_get_turbCont,(setter)Wobos_set_turbCont, - PyDoc_STR("*float*: Turbine Install Weather Contingency [%]\n\n*Required*: If not provided, assumed to be 0.3"), + PyDoc_STR("*float*: Turbine Install Weather Contingency [%]\n\n**Required:**\nFalse. Automatically set to 0.3 if not assigned explicitly or loaded from defaults."), NULL}, {"turbFasten", (getter)Wobos_get_turbFasten,(setter)Wobos_set_turbFasten, - PyDoc_STR("*float*: Prepare and Fasten Turbine for Transport [hours/turbine]\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: Prepare and Fasten Turbine for Transport [hours/turbine]\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"turbInstallMethod", (getter)Wobos_get_turbInstallMethod,(setter)Wobos_set_turbInstallMethod, - PyDoc_STR("*float*: Turbine Installation Method\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be INDIVIDUAL"), + PyDoc_STR("*float*: Turbine Installation Method\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to INDIVIDUAL if not assigned explicitly or loaded from defaults."), NULL}, {"turbR", (getter)Wobos_get_turbR,(setter)Wobos_set_turbR, - PyDoc_STR("*float*: Turbine Rating [MW]\n\n*Constraints*: MIN=1,MAX=15\n\n*Required*: If not provided, assumed to be 5"), + PyDoc_STR("*float*: Turbine Rating [MW]\n\n**Constraints:**\nMIN=1,MAX=15\n\n**Required:**\nFalse. Automatically set to 5 if not assigned explicitly or loaded from defaults."), NULL}, {"upendSpar", (getter)Wobos_get_upendSpar,(setter)Wobos_set_upendSpar, - PyDoc_STR("*float*: Upend and Ballast Spar [hours]\n\n*Required*: If not provided, assumed to be 36"), + PyDoc_STR("*float*: Upend and Ballast Spar [hours]\n\n**Required:**\nFalse. Automatically set to 36 if not assigned explicitly or loaded from defaults."), NULL}, {"vesselPosJack", (getter)Wobos_get_vesselPosJack,(setter)Wobos_set_vesselPosJack, - PyDoc_STR("*float*: Vessel Positioning Time Jacket Installation [hours]\n\n*Required*: If not provided, assumed to be 8"), + PyDoc_STR("*float*: Vessel Positioning Time Jacket Installation [hours]\n\n**Required:**\nFalse. Automatically set to 8 if not assigned explicitly or loaded from defaults."), NULL}, {"vesselPosMono", (getter)Wobos_get_vesselPosMono,(setter)Wobos_set_vesselPosMono, - PyDoc_STR("*float*: Vessel Positioning Time Monopile Installation [hours]\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Vessel Positioning Time Monopile Installation [hours]\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"vesselPosTurb", (getter)Wobos_get_vesselPosTurb,(setter)Wobos_set_vesselPosTurb, - PyDoc_STR("*float*: Vessel Positioning Time Turbine Installation [hours]\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Vessel Positioning Time Turbine Installation [hours]\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"waterD", (getter)Wobos_get_waterD,(setter)Wobos_set_waterD, - PyDoc_STR("*float*: Max Water Depth [m]\n\n*Constraints*: MIN=3,MAX=1000\n\n*Required*: If not provided, assumed to be 30"), + PyDoc_STR("*float*: Max Water Depth [m]\n\n**Constraints:**\nMIN=3,MAX=1000\n\n**Required:**\nFalse. Automatically set to 30 if not assigned explicitly or loaded from defaults."), NULL}, {"wharfRate", (getter)Wobos_get_wharfRate,(setter)Wobos_set_wharfRate, - PyDoc_STR("*float*: Wharf Loading and Unloading Cost Rate [$/tonne]\n\n*Required*: If not provided, assumed to be 2.75"), + PyDoc_STR("*float*: Wharf Loading and Unloading Cost Rate [$/tonne]\n\n**Required:**\nFalse. Automatically set to 2.75 if not assigned explicitly or loaded from defaults."), NULL}, {"winchDR", (getter)Wobos_get_winchDR,(setter)Wobos_set_winchDR, - PyDoc_STR("*float*: Cable Landfall Winch Day Rate [$/day]\n\n*Required*: If not provided, assumed to be 1000"), + PyDoc_STR("*float*: Cable Landfall Winch Day Rate [$/day]\n\n**Required:**\nFalse. Automatically set to 1000 if not assigned explicitly or loaded from defaults."), NULL}, {"workSpace", (getter)Wobos_get_workSpace,(setter)Wobos_set_workSpace, - PyDoc_STR("*float*: Offshore Substation Workspace & Accommodations Cost [$]\n\n*Required*: If not provided, assumed to be 2000000"), + PyDoc_STR("*float*: Offshore Substation Workspace & Accommodations Cost [$]\n\n**Required:**\nFalse. Automatically set to 2000000 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -3416,11 +3416,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -4173,12 +4173,11 @@ static PyMethodDef WindObosModule_methods[] = { {"new", WindObos_new, METH_VARARGS, PyDoc_STR("new() -> WindObos")}, {"default", WindObos_default, METH_VARARGS, - PyDoc_STR("default(config) -> WindObos\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> WindObos\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", WindObos_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> WindObos\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> WindObos\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", WindObos_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> WindObos\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> WindObos\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Windbos.c b/modules/Windbos.c index 660056b1..4c729bc4 100644 --- a/modules/Windbos.c +++ b/modules/Windbos.c @@ -69,11 +69,11 @@ WindBos_export(VarGroupObject *self, PyObject *args) static PyMethodDef WindBos_methods[] = { {"assign", (PyCFunction)WindBos_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WindBos_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WindBos_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WindBos_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WindBos_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WindBos_vals = { var: val, ...}``")}, {"export", (PyCFunction)WindBos_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -463,100 +463,100 @@ WindBos_set_weather_delay_days(VarGroupObject *self, PyObject *value, void *clos static PyGetSetDef WindBos_getset[] = { {"access_road_entrances", (getter)WindBos_get_access_road_entrances,(setter)WindBos_set_access_road_entrances, - PyDoc_STR("*float*: Access road entrances\n\n*Required*: True"), + PyDoc_STR("*float*: Access road entrances\n\n**Required:**\nTrue"), NULL}, {"construction_time", (getter)WindBos_get_construction_time,(setter)WindBos_set_construction_time, - PyDoc_STR("*float*: Construction Time [months]\n\n*Required*: True"), + PyDoc_STR("*float*: Construction Time [months]\n\n**Required:**\nTrue"), NULL}, {"contingency", (getter)WindBos_get_contingency,(setter)WindBos_set_contingency, - PyDoc_STR("*float*: Contingency [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Contingency [%]\n\n**Required:**\nTrue"), NULL}, {"crane_breakdowns", (getter)WindBos_get_crane_breakdowns,(setter)WindBos_set_crane_breakdowns, - PyDoc_STR("*float*: Crane breakdowns\n\n*Required*: True"), + PyDoc_STR("*float*: Crane breakdowns\n\n**Required:**\nTrue"), NULL}, {"delivery_assist_required", (getter)WindBos_get_delivery_assist_required,(setter)WindBos_set_delivery_assist_required, - PyDoc_STR("*float*: Delivery Assist Required [y/n]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Delivery Assist Required [y/n]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"development_fee", (getter)WindBos_get_development_fee,(setter)WindBos_set_development_fee, - PyDoc_STR("*float*: Development Fee [$M]\n\n*Required*: True"), + PyDoc_STR("*float*: Development Fee [$M]\n\n**Required:**\nTrue"), NULL}, {"distance_to_interconnect", (getter)WindBos_get_distance_to_interconnect,(setter)WindBos_set_distance_to_interconnect, - PyDoc_STR("*float*: Distance to Interconnect [miles]\n\n*Required*: True"), + PyDoc_STR("*float*: Distance to Interconnect [miles]\n\n**Required:**\nTrue"), NULL}, {"hub_height", (getter)WindBos_get_hub_height,(setter)WindBos_set_hub_height, - PyDoc_STR("*float*: Hub Height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Hub Height [m]\n\n**Required:**\nTrue"), NULL}, {"interconnect_voltage", (getter)WindBos_get_interconnect_voltage,(setter)WindBos_set_interconnect_voltage, - PyDoc_STR("*float*: Interconnect Voltage [kV]\n\n*Required*: True"), + PyDoc_STR("*float*: Interconnect Voltage [kV]\n\n**Required:**\nTrue"), NULL}, {"machine_rating", (getter)WindBos_get_machine_rating,(setter)WindBos_set_machine_rating, - PyDoc_STR("*float*: Machine Rating [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Machine Rating [kW]\n\n**Required:**\nTrue"), NULL}, {"mv_overhead_collector", (getter)WindBos_get_mv_overhead_collector,(setter)WindBos_set_mv_overhead_collector, - PyDoc_STR("*float*: MV overhead collector [mi]\n\n*Required*: True"), + PyDoc_STR("*float*: MV overhead collector [mi]\n\n**Required:**\nTrue"), NULL}, {"mv_thermal_backfill", (getter)WindBos_get_mv_thermal_backfill,(setter)WindBos_set_mv_thermal_backfill, - PyDoc_STR("*float*: MV thermal backfill [mi]\n\n*Required*: True"), + PyDoc_STR("*float*: MV thermal backfill [mi]\n\n**Required:**\nTrue"), NULL}, {"new_switchyard_required", (getter)WindBos_get_new_switchyard_required,(setter)WindBos_set_new_switchyard_required, - PyDoc_STR("*float*: New Switchyard Required [y/n]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: New Switchyard Required [y/n]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"number_of_turbines", (getter)WindBos_get_number_of_turbines,(setter)WindBos_set_number_of_turbines, - PyDoc_STR("*float*: Number of Turbines\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Number of Turbines\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"om_building_size", (getter)WindBos_get_om_building_size,(setter)WindBos_set_om_building_size, - PyDoc_STR("*float*: O&M Building Size [ft^2]\n\n*Required*: True"), + PyDoc_STR("*float*: O&M Building Size [ft^2]\n\n**Required:**\nTrue"), NULL}, {"overhead", (getter)WindBos_get_overhead,(setter)WindBos_set_overhead, - PyDoc_STR("*float*: Overhead [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Overhead [%]\n\n**Required:**\nTrue"), NULL}, {"pad_mount_transformer_required", (getter)WindBos_get_pad_mount_transformer_required,(setter)WindBos_set_pad_mount_transformer_required, - PyDoc_STR("*float*: Pad mount Transformer required [y/n]\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Pad mount Transformer required [y/n]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"performance_bond", (getter)WindBos_get_performance_bond,(setter)WindBos_set_performance_bond, - PyDoc_STR("*float*: Performance bond [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Performance bond [%]\n\n**Required:**\nTrue"), NULL}, {"profit_margin", (getter)WindBos_get_profit_margin,(setter)WindBos_set_profit_margin, - PyDoc_STR("*float*: Profit Margin [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Profit Margin [%]\n\n**Required:**\nTrue"), NULL}, {"quantity_permanent_met_towers", (getter)WindBos_get_quantity_permanent_met_towers,(setter)WindBos_set_quantity_permanent_met_towers, - PyDoc_STR("*float*: Quantity of Permanent Meteorological Towers for Testing\n\n*Required*: True"), + PyDoc_STR("*float*: Quantity of Permanent Meteorological Towers for Testing\n\n**Required:**\nTrue"), NULL}, {"quantity_test_met_towers", (getter)WindBos_get_quantity_test_met_towers,(setter)WindBos_set_quantity_test_met_towers, - PyDoc_STR("*float*: Quantity of Temporary Meteorological Towers for Testing\n\n*Required*: True"), + PyDoc_STR("*float*: Quantity of Temporary Meteorological Towers for Testing\n\n**Required:**\nTrue"), NULL}, {"rock_trenching_required", (getter)WindBos_get_rock_trenching_required,(setter)WindBos_set_rock_trenching_required, - PyDoc_STR("*float*: Rock trenching required [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Rock trenching required [%]\n\n**Required:**\nTrue"), NULL}, {"rotor_diameter", (getter)WindBos_get_rotor_diameter,(setter)WindBos_set_rotor_diameter, - PyDoc_STR("*float*: Rotor Diameter [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Rotor Diameter [m]\n\n**Required:**\nTrue"), NULL}, {"sales_and_use_tax", (getter)WindBos_get_sales_and_use_tax,(setter)WindBos_set_sales_and_use_tax, - PyDoc_STR("*float*: Sales and Use Tax [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Sales and Use Tax [%]\n\n**Required:**\nTrue"), NULL}, {"site_terrain", (getter)WindBos_get_site_terrain,(setter)WindBos_set_site_terrain, - PyDoc_STR("*float*: Site Terrain\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Site Terrain\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"soil_condition", (getter)WindBos_get_soil_condition,(setter)WindBos_set_soil_condition, - PyDoc_STR("*float*: Soil Condition\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Soil Condition\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"tower_top_mass", (getter)WindBos_get_tower_top_mass,(setter)WindBos_set_tower_top_mass, - PyDoc_STR("*float*: Tower Top Mass [Tonnes]\n\n*Required*: True"), + PyDoc_STR("*float*: Tower Top Mass [Tonnes]\n\n**Required:**\nTrue"), NULL}, {"turbine_capital_cost", (getter)WindBos_get_turbine_capital_cost,(setter)WindBos_set_turbine_capital_cost, - PyDoc_STR("*float*: Turbine Capital Cost [$/kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Turbine Capital Cost [$/kW]\n\n**Required:**\nTrue"), NULL}, {"turbine_layout", (getter)WindBos_get_turbine_layout,(setter)WindBos_set_turbine_layout, - PyDoc_STR("*float*: Turbine Layout\n\n*Constraints*: INTEGER\n\n*Required*: True"), + PyDoc_STR("*float*: Turbine Layout\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue"), NULL}, {"turbine_transportation", (getter)WindBos_get_turbine_transportation,(setter)WindBos_set_turbine_transportation, - PyDoc_STR("*float*: Turbine Transportation [mi]\n\n*Required*: True"), + PyDoc_STR("*float*: Turbine Transportation [mi]\n\n**Required:**\nTrue"), NULL}, {"warranty_management", (getter)WindBos_get_warranty_management,(setter)WindBos_set_warranty_management, - PyDoc_STR("*float*: Warranty management [%]\n\n*Required*: True"), + PyDoc_STR("*float*: Warranty management [%]\n\n**Required:**\nTrue"), NULL}, {"weather_delay_days", (getter)WindBos_get_weather_delay_days,(setter)WindBos_set_weather_delay_days, - PyDoc_STR("*float*: Wind / Weather delay days\n\n*Required*: True"), + PyDoc_STR("*float*: Wind / Weather delay days\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -671,11 +671,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1158,12 +1158,11 @@ static PyMethodDef WindbosModule_methods[] = { {"new", Windbos_new, METH_VARARGS, PyDoc_STR("new() -> Windbos")}, {"default", Windbos_default, METH_VARARGS, - PyDoc_STR("default(config) -> Windbos\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Windbos\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Windbos_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Windbos\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Windbos\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Windbos_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Windbos\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Windbos\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Windcsm.c b/modules/Windcsm.c index 0deb4e78..d5349b3a 100644 --- a/modules/Windcsm.c +++ b/modules/Windcsm.c @@ -69,11 +69,11 @@ WindCsm_export(VarGroupObject *self, PyObject *args) static PyMethodDef WindCsm_methods[] = { {"assign", (PyCFunction)WindCsm_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``WindCsm_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``WindCsm_vals = { var: val, ...}``")}, {"replace", (PyCFunction)WindCsm_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``WindCsm_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``WindCsm_vals = { var: val, ...}``")}, {"export", (PyCFunction)WindCsm_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -199,34 +199,34 @@ WindCsm_set_turbine_user_exponent(VarGroupObject *self, PyObject *value, void *c static PyGetSetDef WindCsm_getset[] = { {"hub_height", (getter)WindCsm_get_hub_height,(setter)WindCsm_set_hub_height, - PyDoc_STR("*float*: Hub height [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Hub height [m]\n\n**Required:**\nTrue"), NULL}, {"machine_rating", (getter)WindCsm_get_machine_rating,(setter)WindCsm_set_machine_rating, - PyDoc_STR("*float*: Machine rating [kW]\n\n*Required*: True"), + PyDoc_STR("*float*: Machine rating [kW]\n\n**Required:**\nTrue"), NULL}, {"num_bearings", (getter)WindCsm_get_num_bearings,(setter)WindCsm_set_num_bearings, - PyDoc_STR("*float*: Number of main bearings\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 2"), + PyDoc_STR("*float*: Number of main bearings\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 2 if not assigned explicitly or loaded from defaults."), NULL}, {"num_blades", (getter)WindCsm_get_num_blades,(setter)WindCsm_set_num_blades, - PyDoc_STR("*float*: Number of blades\n\n*Constraints*: INTEGER,MIN=1\n\n*Required*: If not provided, assumed to be 3"), + PyDoc_STR("*float*: Number of blades\n\n**Constraints:**\nINTEGER,MIN=1\n\n**Required:**\nFalse. Automatically set to 3 if not assigned explicitly or loaded from defaults."), NULL}, {"onboard_crane", (getter)WindCsm_get_onboard_crane,(setter)WindCsm_set_onboard_crane, - PyDoc_STR("*float*: Onboard crane [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Onboard crane [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"rotor_torque", (getter)WindCsm_get_rotor_torque,(setter)WindCsm_set_rotor_torque, - PyDoc_STR("*float*: Rotor torque [Nm]\n\n*Required*: True"), + PyDoc_STR("*float*: Rotor torque [Nm]\n\n**Required:**\nTrue"), NULL}, {"turbine_carbon_blades", (getter)WindCsm_get_turbine_carbon_blades,(setter)WindCsm_set_turbine_carbon_blades, - PyDoc_STR("*float*: Turbine carbon blades [0/1]\n\n*Constraints*: INTEGER,MIN=0,MAX=1\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine carbon blades [0/1]\n\n**Constraints:**\nINTEGER,MIN=0,MAX=1\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turbine_class", (getter)WindCsm_get_turbine_class,(setter)WindCsm_set_turbine_class, - PyDoc_STR("*float*: Turbine class\n\n*Constraints*: INTEGER,MIN=0,MAX=3\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine class\n\n**Constraints:**\nINTEGER,MIN=0,MAX=3\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turbine_rotor_diameter", (getter)WindCsm_get_turbine_rotor_diameter,(setter)WindCsm_set_turbine_rotor_diameter, - PyDoc_STR("*float*: Turbine rotor diameter [m]\n\n*Required*: True"), + PyDoc_STR("*float*: Turbine rotor diameter [m]\n\n**Required:**\nTrue"), NULL}, {"turbine_user_exponent", (getter)WindCsm_get_turbine_user_exponent,(setter)WindCsm_set_turbine_user_exponent, - PyDoc_STR("*float*: Turbine user exponent\n\n*Required*: If not provided, assumed to be 2.5"), + PyDoc_STR("*float*: Turbine user exponent\n\n**Required:**\nFalse. Automatically set to 2.5 if not assigned explicitly or loaded from defaults."), NULL}, {NULL} /* Sentinel */ }; @@ -341,11 +341,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -891,12 +891,11 @@ static PyMethodDef WindcsmModule_methods[] = { {"new", Windcsm_new, METH_VARARGS, PyDoc_STR("new() -> Windcsm")}, {"default", Windcsm_default, METH_VARARGS, - PyDoc_STR("default(config) -> Windcsm\n\nUse default attributes\n" - "None")}, + PyDoc_STR("default(config) -> Windcsm\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n- None\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Windcsm_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Windcsm\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Windcsm\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Windcsm_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Windcsm\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Windcsm\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/modules/Windpower.c b/modules/Windpower.c index 961637a7..3c4316c3 100644 --- a/modules/Windpower.c +++ b/modules/Windpower.c @@ -71,11 +71,11 @@ Resource_export(VarGroupObject *self, PyObject *args) static PyMethodDef Resource_methods[] = { {"assign", (PyCFunction)Resource_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Resource_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Resource_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Resource_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Resource_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Resource_vals = { var: val, ...}``")}, {"export", (PyCFunction)Resource_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -165,25 +165,25 @@ Resource_set_wind_resource_model_choice(VarGroupObject *self, PyObject *value, v static PyGetSetDef Resource_getset[] = { {"weibull_k_factor", (getter)Resource_get_weibull_k_factor,(setter)Resource_set_weibull_k_factor, - PyDoc_STR("*float*: Weibull K factor for wind resource\n\n*Required*: True if wind_resource_model_choice=1"), + PyDoc_STR("*float*: Weibull K factor for wind resource\n\n**Required:**\nRequired if wind_resource_model_choice=1"), NULL}, {"weibull_reference_height", (getter)Resource_get_weibull_reference_height,(setter)Resource_set_weibull_reference_height, - PyDoc_STR("*float*: Reference height for Weibull wind speed [m]\n\n*Constraints*: MIN=0\n\n*Required*: If not provided, assumed to be 50"), + PyDoc_STR("*float*: Reference height for Weibull wind speed [m]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nFalse. Automatically set to 50 if not assigned explicitly or loaded from defaults."), NULL}, {"weibull_wind_speed", (getter)Resource_get_weibull_wind_speed,(setter)Resource_set_weibull_wind_speed, - PyDoc_STR("*float*: Average wind speed for Weibull model\n\n*Constraints*: MIN=0\n\n*Required*: True if wind_resource_model_choice=1"), + PyDoc_STR("*float*: Average wind speed for Weibull model\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if wind_resource_model_choice=1"), NULL}, {"wind_resource_data", (getter)Resource_get_wind_resource_data,(setter)Resource_set_wind_resource_data, - PyDoc_STR("*dict*: Wind resouce data in memory\n\n*Required*: False"), + PyDoc_STR("*dict*: Wind resouce data in memory\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"wind_resource_distribution", (getter)Resource_get_wind_resource_distribution,(setter)Resource_set_wind_resource_distribution, - PyDoc_STR("*sequence[sequence]*: Wind Speed x Dir Distribution as 2-D PDF [m/s,deg]\n\n*Required*: True if wind_resource_model_choice=2"), + PyDoc_STR("*sequence[sequence]*: Wind Speed x Dir Distribution as 2-D PDF [m/s,deg]\n\n**Required:**\nRequired if wind_resource_model_choice=2"), NULL}, {"wind_resource_filename", (getter)Resource_get_wind_resource_filename,(setter)Resource_set_wind_resource_filename, - PyDoc_STR("*str*: Local wind data file path\n\n*Constraints*: LOCAL_FILE\n\n*Required*: False"), + PyDoc_STR("*str*: Local wind data file path\n\n**Constraints:**\nLOCAL_FILE\n\n**Required:**\nFalse for configuration with default inputs. May be required if a variable dependent on its value changes. Example: For the Detailed PV - Single Owner configuration, only Subarray 1 is enabled in the configuration defaults, so Subarray 2 inputs would not be required; if Subarray 2 is enabled, then Subarray 2 inputs is required."), NULL}, {"wind_resource_model_choice", (getter)Resource_get_wind_resource_model_choice,(setter)Resource_set_wind_resource_model_choice, - PyDoc_STR("*float*: Hourly, Weibull or Distribution model [0/1/2]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), + PyDoc_STR("*float*: Hourly, Weibull or Distribution model [0/1/2]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wind_resource_model_choice``:\n\n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), NULL}, {NULL} /* Sentinel */ }; @@ -298,11 +298,11 @@ Turbine_export(VarGroupObject *self, PyObject *args) static PyMethodDef Turbine_methods[] = { {"assign", (PyCFunction)Turbine_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Turbine_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Turbine_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Turbine_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Turbine_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Turbine_vals = { var: val, ...}``")}, {"export", (PyCFunction)Turbine_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {"calculate_powercurve", (PyCFunction)Turbine_calculate_powercurve, METH_VARARGS | METH_KEYWORDS, Turbine_calculate_powercurve_doc}, {NULL, NULL} /* sentinel */ @@ -382,22 +382,22 @@ Turbine_set_wind_turbine_rotor_diameter(VarGroupObject *self, PyObject *value, v static PyGetSetDef Turbine_getset[] = { {"wind_resource_shear", (getter)Turbine_get_wind_resource_shear,(setter)Turbine_set_wind_resource_shear, - PyDoc_STR("*float*: Shear exponent\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Shear exponent\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {"wind_turbine_hub_ht", (getter)Turbine_get_wind_turbine_hub_ht,(setter)Turbine_set_wind_turbine_hub_ht, - PyDoc_STR("*float*: Hub height [m]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), + PyDoc_STR("*float*: Hub height [m]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wind_turbine_hub_ht``:\n\n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), NULL}, {"wind_turbine_max_cp", (getter)Turbine_get_wind_turbine_max_cp,(setter)Turbine_set_wind_turbine_max_cp, - PyDoc_STR("*float*: Max Coefficient of Power\n\n*Constraints*: MIN=0\n\n*Required*: True if wind_resource_model_choice=1\n\n*Changes to this variable may require updating the values of the following*: \n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), + PyDoc_STR("*float*: Max Coefficient of Power\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if wind_resource_model_choice=1\n\nThe value of the following variables depends on ``wind_turbine_max_cp``:\n\n\t - wind_turbine_powercurve_powerout\n\t - wind_turbine_powercurve_windspeeds\n"), NULL}, {"wind_turbine_powercurve_powerout", (getter)Turbine_get_wind_turbine_powercurve_powerout,(setter)Turbine_set_wind_turbine_powercurve_powerout, - PyDoc_STR("*sequence*: Power curve turbine output array [kW]\n\n*Constraints*: LENGTH_EQUAL=wind_turbine_powercurve_windspeeds\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_resource_model_choice\n\t - wind_turbine_hub_ht\n\t - wind_turbine_max_cp\n"), + PyDoc_STR("*sequence*: Power curve turbine output array [kW]\n\n**Constraints:**\nLENGTH_EQUAL=wind_turbine_powercurve_windspeeds\n\n**Required:**\nTrue\n\nThe value of ``wind_turbine_powercurve_powerout`` depends on the following variables:\n\n\t - wind_resource_model_choice\n\t - wind_turbine_hub_ht\n\t - wind_turbine_max_cp\n"), NULL}, {"wind_turbine_powercurve_windspeeds", (getter)Turbine_get_wind_turbine_powercurve_windspeeds,(setter)Turbine_set_wind_turbine_powercurve_windspeeds, - PyDoc_STR("*sequence*: Power curve wind speed array [m/s]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_resource_model_choice\n\t - wind_turbine_hub_ht\n\t - wind_turbine_max_cp\n"), + PyDoc_STR("*sequence*: Power curve wind speed array [m/s]\n\n**Required:**\nTrue\n\nThe value of ``wind_turbine_powercurve_windspeeds`` depends on the following variables:\n\n\t - wind_resource_model_choice\n\t - wind_turbine_hub_ht\n\t - wind_turbine_max_cp\n"), NULL}, {"wind_turbine_rotor_diameter", (getter)Turbine_get_wind_turbine_rotor_diameter,(setter)Turbine_set_wind_turbine_rotor_diameter, - PyDoc_STR("*float*: Rotor diameter [m]\n\n*Constraints*: POSITIVE\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - system_capacity\n\t - wind_farm_xCoordinates\n\t - wind_farm_yCoordinates\n"), + PyDoc_STR("*float*: Rotor diameter [m]\n\n**Constraints:**\nPOSITIVE\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wind_turbine_rotor_diameter``:\n\n\t - system_capacity\n\t - wind_farm_xCoordinates\n\t - wind_farm_yCoordinates\n"), NULL}, {NULL} /* Sentinel */ }; @@ -512,11 +512,11 @@ Farm_export(VarGroupObject *self, PyObject *args) static PyMethodDef Farm_methods[] = { {"assign", (PyCFunction)Farm_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Farm_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Farm_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Farm_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Farm_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Farm_vals = { var: val, ...}``")}, {"export", (PyCFunction)Farm_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -594,22 +594,22 @@ Farm_set_wind_resource_turbulence_coeff(VarGroupObject *self, PyObject *value, v static PyGetSetDef Farm_getset[] = { {"max_turbine_override", (getter)Farm_get_max_turbine_override,(setter)Farm_set_max_turbine_override, - PyDoc_STR("*float*: Override the max number of turbines for wake modeling [numTurbines]\n\n*Info*: set new max num turbines"), + PyDoc_STR("*float*: Override the max number of turbines for wake modeling [numTurbines]\n\n**Info:**\nset new max num turbines"), NULL}, {"system_capacity", (getter)Farm_get_system_capacity,(setter)Farm_set_system_capacity, - PyDoc_STR("*float*: Nameplate capacity [kW]\n\n*Constraints*: MIN=0\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_turbine_rotor_diameter\n"), + PyDoc_STR("*float*: Nameplate capacity [kW]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue\n\nThe value of ``system_capacity`` depends on the following variables:\n\n\t - wind_turbine_rotor_diameter\n"), NULL}, {"wind_farm_wake_model", (getter)Farm_get_wind_farm_wake_model,(setter)Farm_set_wind_farm_wake_model, - PyDoc_STR("*float*: Wake Model [Simple, Park, EV, Constant] [0/1/2/3]\n\n*Constraints*: INTEGER\n\n*Required*: True\n\n*Changes to this variable may require updating the values of the following*: \n\t - wake_int_loss\n"), + PyDoc_STR("*float*: Wake Model [Simple, Park, EV, Constant] [0/1/2/3]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nTrue\n\nThe value of the following variables depends on ``wind_farm_wake_model``:\n\n\t - wake_int_loss\n"), NULL}, {"wind_farm_xCoordinates", (getter)Farm_get_wind_farm_xCoordinates,(setter)Farm_set_wind_farm_xCoordinates, - PyDoc_STR("*sequence*: Turbine X coordinates [m]\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_turbine_rotor_diameter\n"), + PyDoc_STR("*sequence*: Turbine X coordinates [m]\n\n**Required:**\nTrue\n\nThe value of ``wind_farm_xCoordinates`` depends on the following variables:\n\n\t - wind_turbine_rotor_diameter\n"), NULL}, {"wind_farm_yCoordinates", (getter)Farm_get_wind_farm_yCoordinates,(setter)Farm_set_wind_farm_yCoordinates, - PyDoc_STR("*sequence*: Turbine Y coordinates [m]\n\n*Constraints*: LENGTH_EQUAL=wind_farm_xCoordinates\n\n*Required*: True\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_turbine_rotor_diameter\n"), + PyDoc_STR("*sequence*: Turbine Y coordinates [m]\n\n**Constraints:**\nLENGTH_EQUAL=wind_farm_xCoordinates\n\n**Required:**\nTrue\n\nThe value of ``wind_farm_yCoordinates`` depends on the following variables:\n\n\t - wind_turbine_rotor_diameter\n"), NULL}, {"wind_resource_turbulence_coeff", (getter)Farm_get_wind_resource_turbulence_coeff,(setter)Farm_set_wind_resource_turbulence_coeff, - PyDoc_STR("*float*: Turbulence coefficient [%]\n\n*Constraints*: MIN=0\n\n*Required*: True"), + PyDoc_STR("*float*: Turbulence coefficient [%]\n\n**Constraints:**\nMIN=0\n\n**Required:**\nTrue"), NULL}, {NULL} /* Sentinel */ }; @@ -724,11 +724,11 @@ Losses_export(VarGroupObject *self, PyObject *args) static PyMethodDef Losses_methods[] = { {"assign", (PyCFunction)Losses_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Losses_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Losses_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Losses_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Losses_vals = { var: val, ...}``")}, {"export", (PyCFunction)Losses_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1034,79 +1034,79 @@ Losses_set_wake_int_loss(VarGroupObject *self, PyObject *value, void *closure) static PyGetSetDef Losses_getset[] = { {"avail_bop_loss", (getter)Losses_get_avail_bop_loss,(setter)Losses_set_avail_bop_loss, - PyDoc_STR("*float*: Balance-of-plant availability loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Balance-of-plant availability loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"avail_grid_loss", (getter)Losses_get_avail_grid_loss,(setter)Losses_set_avail_grid_loss, - PyDoc_STR("*float*: Grid availability loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Grid availability loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"avail_turb_loss", (getter)Losses_get_avail_turb_loss,(setter)Losses_set_avail_turb_loss, - PyDoc_STR("*float*: Turbine availabaility loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine availabaility loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"elec_eff_loss", (getter)Losses_get_elec_eff_loss,(setter)Losses_set_elec_eff_loss, - PyDoc_STR("*float*: Electrical efficiency loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Electrical efficiency loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"elec_parasitic_loss", (getter)Losses_get_elec_parasitic_loss,(setter)Losses_set_elec_parasitic_loss, - PyDoc_STR("*float*: Electrical parasitic consumption loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Electrical parasitic consumption loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_icing_cutoff", (getter)Losses_get_en_icing_cutoff,(setter)Losses_set_en_icing_cutoff, - PyDoc_STR("*float*: Enable Icing Cutoff [0/1]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Icing Cutoff [0/1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"en_low_temp_cutoff", (getter)Losses_get_en_low_temp_cutoff,(setter)Losses_set_en_low_temp_cutoff, - PyDoc_STR("*float*: Enable Low Temperature Cutoff [0/1]\n\n*Constraints*: INTEGER\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Enable Low Temperature Cutoff [0/1]\n\n**Constraints:**\nINTEGER\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"env_degrad_loss", (getter)Losses_get_env_degrad_loss,(setter)Losses_set_env_degrad_loss, - PyDoc_STR("*float*: Environmental Degradation loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Environmental Degradation loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"env_env_loss", (getter)Losses_get_env_env_loss,(setter)Losses_set_env_env_loss, - PyDoc_STR("*float*: Environmental External Conditions loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Environmental External Conditions loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"env_exposure_loss", (getter)Losses_get_env_exposure_loss,(setter)Losses_set_env_exposure_loss, - PyDoc_STR("*float*: Environmental Exposure loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Environmental Exposure loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"env_icing_loss", (getter)Losses_get_env_icing_loss,(setter)Losses_set_env_icing_loss, - PyDoc_STR("*float*: Environmental Icing loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Environmental Icing loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"icing_cutoff_rh", (getter)Losses_get_icing_cutoff_rh,(setter)Losses_set_icing_cutoff_rh, - PyDoc_STR("*float*: Icing Cutoff Relative Humidity [%]\n\n*Info*: 'rh' required in wind_resource_data\n\n*Constraints*: MIN=0\n\n*Required*: True if en_icing_cutoff=1"), + PyDoc_STR("*float*: Icing Cutoff Relative Humidity [%]\n\n**Info:**\n'rh' required in wind_resource_data\n\n**Constraints:**\nMIN=0\n\n**Required:**\nRequired if en_icing_cutoff=1"), NULL}, {"icing_cutoff_temp", (getter)Losses_get_icing_cutoff_temp,(setter)Losses_set_icing_cutoff_temp, - PyDoc_STR("*float*: Icing Cutoff Temperature [C]\n\n*Required*: True if en_icing_cutoff=1"), + PyDoc_STR("*float*: Icing Cutoff Temperature [C]\n\n**Required:**\nRequired if en_icing_cutoff=1"), NULL}, {"low_temp_cutoff", (getter)Losses_get_low_temp_cutoff,(setter)Losses_set_low_temp_cutoff, - PyDoc_STR("*float*: Low Temperature Cutoff [C]\n\n*Required*: True if en_low_temp_cutoff=1"), + PyDoc_STR("*float*: Low Temperature Cutoff [C]\n\n**Required:**\nRequired if en_low_temp_cutoff=1"), NULL}, {"ops_env_loss", (getter)Losses_get_ops_env_loss,(setter)Losses_set_ops_env_loss, - PyDoc_STR("*float*: Environmental/Permit Curtailment loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Environmental/Permit Curtailment loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ops_grid_loss", (getter)Losses_get_ops_grid_loss,(setter)Losses_set_ops_grid_loss, - PyDoc_STR("*float*: Grid curtailment loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Grid curtailment loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ops_load_loss", (getter)Losses_get_ops_load_loss,(setter)Losses_set_ops_load_loss, - PyDoc_STR("*float*: Load curtailment loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Load curtailment loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"ops_strategies_loss", (getter)Losses_get_ops_strategies_loss,(setter)Losses_set_ops_strategies_loss, - PyDoc_STR("*float*: Operational strategies loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Operational strategies loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turb_generic_loss", (getter)Losses_get_turb_generic_loss,(setter)Losses_set_turb_generic_loss, - PyDoc_STR("*float*: Turbine Generic Powercurve loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine Generic Powercurve loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turb_hysteresis_loss", (getter)Losses_get_turb_hysteresis_loss,(setter)Losses_set_turb_hysteresis_loss, - PyDoc_STR("*float*: Turbine High Wind Hysteresis loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine High Wind Hysteresis loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turb_perf_loss", (getter)Losses_get_turb_perf_loss,(setter)Losses_set_turb_perf_loss, - PyDoc_STR("*float*: Turbine Sub-optimal performance loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine Sub-optimal performance loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"turb_specific_loss", (getter)Losses_get_turb_specific_loss,(setter)Losses_set_turb_specific_loss, - PyDoc_STR("*float*: Turbine Site-specific Powercurve loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Turbine Site-specific Powercurve loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"wake_ext_loss", (getter)Losses_get_wake_ext_loss,(setter)Losses_set_wake_ext_loss, - PyDoc_STR("*float*: External Wake loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: External Wake loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"wake_future_loss", (getter)Losses_get_wake_future_loss,(setter)Losses_set_wake_future_loss, - PyDoc_STR("*float*: Future Wake loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: If not provided, assumed to be 0"), + PyDoc_STR("*float*: Future Wake loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nFalse. Automatically set to 0 if not assigned explicitly or loaded from defaults."), NULL}, {"wake_int_loss", (getter)Losses_get_wake_int_loss,(setter)Losses_set_wake_int_loss, - PyDoc_STR("*float*: Constant Wake Model, internal wake loss [%]\n\n*Constraints*: MIN=0,MAX=100\n\n*Required*: True if wind_farm_wake_model=3\n\n*This variable may need to be updated if the values of the following have changed*: \n\t - wind_farm_wake_model\n"), + PyDoc_STR("*float*: Constant Wake Model, internal wake loss [%]\n\n**Constraints:**\nMIN=0,MAX=100\n\n**Required:**\nRequired if wind_farm_wake_model=3\n\nThe value of ``wake_int_loss`` depends on the following variables:\n\n\t - wind_farm_wake_model\n"), NULL}, {NULL} /* Sentinel */ }; @@ -1221,11 +1221,11 @@ Uncertainty_export(VarGroupObject *self, PyObject *args) static PyMethodDef Uncertainty_methods[] = { {"assign", (PyCFunction)Uncertainty_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Uncertainty_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Uncertainty_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Uncertainty_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Uncertainty_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Uncertainty_vals = { var: val, ...}``")}, {"export", (PyCFunction)Uncertainty_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1243,7 +1243,7 @@ Uncertainty_set_total_uncert(VarGroupObject *self, PyObject *value, void *closur static PyGetSetDef Uncertainty_getset[] = { {"total_uncert", (getter)Uncertainty_get_total_uncert,(setter)Uncertainty_set_total_uncert, - PyDoc_STR("*float*: Total uncertainty in energy production as percent of annual energy [%]\n\n*Constraints*: MIN=0,MAX=100"), + PyDoc_STR("*float*: Total uncertainty in energy production as percent of annual energy [%]\n\n**Constraints:**\nMIN=0,MAX=100"), NULL}, {NULL} /* Sentinel */ }; @@ -1358,11 +1358,11 @@ Outputs_export(VarGroupObject *self, PyObject *args) static PyMethodDef Outputs_methods[] = { {"assign", (PyCFunction)Outputs_assign, METH_VARARGS, - PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("assign(dict) -> None\n Assign attributes from dictionary, overwriting but not removing values.\n\n``Outputs_vals = { var: val, ...}``")}, {"replace", (PyCFunction)Outputs_replace, METH_VARARGS, - PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input dict\n\n``Outputs_vals = { var: val, ...}``")}, + PyDoc_STR("replace(dict) -> None\n Replace attributes from dictionary, unassigning values not present in input ``dict``.\n\n``Outputs_vals = { var: val, ...}``")}, {"export", (PyCFunction)Outputs_export, METH_VARARGS, - PyDoc_STR("export() -> dict\n Export attributes into dictionary")}, + PyDoc_STR("export() -> dict\n Export attributes into dictionary.")}, {NULL, NULL} /* sentinel */ }; @@ -1930,12 +1930,11 @@ static PyMethodDef WindpowerModule_methods[] = { {"new", Windpower_new, METH_VARARGS, PyDoc_STR("new() -> Windpower")}, {"default", Windpower_default, METH_VARARGS, - PyDoc_STR("default(config) -> Windpower\n\nUse default attributes\n" - "`config` options:\n\n- \"WindPowerAllEquityPartnershipFlip\"\n- \"WindPowerCommercial\"\n- \"WindPowerLCOECalculator\"\n- \"WindPowerLeveragedPartnershipFlip\"\n- \"WindPowerMerchantPlant\"\n- \"WindPowerNone\"\n- \"WindPowerResidential\"\n- \"WindPowerSaleLeaseback\"\n- \"WindPowerSingleOwner\"")}, + PyDoc_STR("default(config) -> Windpower\n\nLoad defaults for the configuration ``config``. Available configurations are:\n\n - *\"WindPowerAllEquityPartnershipFlip\"*\n\n - *\"WindPowerCommercial\"*\n\n - *\"WindPowerLCOECalculator\"*\n\n - *\"WindPowerLeveragedPartnershipFlip\"*\n\n - *\"WindPowerMerchantPlant\"*\n\n - *\"WindPowerNone\"*\n\n - *\"WindPowerResidential\"*\n\n - *\"WindPowerSaleLeaseback\"*\n\n - *\"WindPowerSingleOwner\"*\n\n.. note::\n\n Some inputs do not have default values and may be assigned a value from the variable's **Required** attribute. See variable attribute descriptions below.")}, {"wrap", Windpower_wrap, METH_VARARGS, - PyDoc_STR("wrap(ssc_data_t) -> Windpower\n\nUse existing PySSC data\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap``")}, + PyDoc_STR("wrap(ssc_data_t) -> Windpower\n\nLoad data from a PySSC object.\n\n.. warning::\n\n Do not call PySSC.data_free on the ssc_data_t provided to ``wrap()``")}, {"from_existing", Windpower_from_existing, METH_VARARGS, - PyDoc_STR("from_existing(data, optional config) -> Windpower\n\nShare underlying data with an existing PySAM class. If config provided, default attributes are loaded otherwise.")}, + PyDoc_STR("from_existing(data, optional config) -> Windpower\n\nShare data with an existing PySAM class. If ``optional config`` is a valid configuration name, load the module's defaults for that configuration.")}, {NULL, NULL} /* sentinel */ }; diff --git a/setup.py b/setup.py index 4caae66b..f64ceb0a 100644 --- a/setup.py +++ b/setup.py @@ -3,6 +3,7 @@ import sys from distutils.core import Command from files.version import __version__ +from pathlib import Path ################################################################################################### # @@ -177,6 +178,9 @@ def run(self): # ################################################################################################### +def read_lines(filename): + with open(filename) as f_in: + return f_in.readlines() setup( name='NREL-PySAM', @@ -195,6 +199,7 @@ def run(self): '': libfiles}, setup_requires=["pytest-runner"], tests_require=["pytest"], + install_requires=read_lines(Path(__file__).parent / "requirements.txt"), cmdclass={ 'post': PostProcess }, diff --git a/stubs/stubs/Battery.pyi b/stubs/stubs/Battery.pyi index 5f84defd..3a17f731 100644 --- a/stubs/stubs/Battery.pyi +++ b/stubs/stubs/Battery.pyi @@ -326,10 +326,34 @@ class Battery(object): mp_enable_ancserv4 = float mp_enable_energy_market_revenue = float mp_energy_market_revenue = tuple + ppa_escalation = float ppa_multiplier_model = float ppa_price_input = tuple + class Revenue(object): + def assign(self): + pass + + def export(self) -> dict: + pass + + def __init__(self, *args, **kwargs): + pass + + + mp_ancserv1_revenue_single = tuple + mp_ancserv2_revenue_single = tuple + mp_ancserv3_revenue_single = tuple + mp_ancserv4_revenue_single = tuple + mp_enable_ancserv1_percent_gen = float + mp_enable_ancserv2_percent_gen = float + mp_enable_ancserv3_percent_gen = float + mp_enable_ancserv4_percent_gen = float + mp_enable_market_percent_gen = float + mp_energy_market_revenue_single = tuple + + class ElectricityRates(object): def assign(self): pass @@ -458,6 +482,7 @@ class Battery(object): batt_to_system_load = tuple batt_voltage = tuple batt_voltage_cell = tuple + capacity_factor_sales = float cdf_of_surviving = tuple crit_load = tuple crit_load_unmet = tuple diff --git a/stubs/stubs/Communitysolar.pyi b/stubs/stubs/Communitysolar.pyi index 76c39c3d..41104daa 100644 --- a/stubs/stubs/Communitysolar.pyi +++ b/stubs/stubs/Communitysolar.pyi @@ -1091,7 +1091,6 @@ class Communitysolar(object): npv_sta_pbi_income = float npv_thermal_value = float npv_uti_pbi_income = float - ppa_price = float present_value_fuel = float present_value_insandproptax = float present_value_oandm = float diff --git a/stubs/stubs/CspDsgLfUi.pyi b/stubs/stubs/CspDsgLfUi.pyi new file mode 100644 index 00000000..d0fe33c0 --- /dev/null +++ b/stubs/stubs/CspDsgLfUi.pyi @@ -0,0 +1,70 @@ +class CspDsgLfUi(object): + def assign(self, dict): + pass + + def value(self, name, value=None): + pass + + def unassign(self, name): + pass + + def execute(self, int_verbosity): + pass + + def export(self): + pass + + def __getattribute__(self, *args, **kwargs): + pass + + def __init__(self, *args, **kwargs): + pass + + class Common(object): + def assign(self): + pass + + def export(self) -> dict: + pass + + def __init__(self, *args, **kwargs): + pass + + + P_boil = float + deltaT_subcooled = float + use_quality_or_subcooled = float + + + class Outputs(object): + def assign(self): + pass + + def export(self) -> dict: + pass + + def __init__(self, *args, **kwargs): + pass + + + T_hot_out_target = float + T_saturation = float + + + + +def default(config) -> CspDsgLfUi: + pass + +def new() -> CspDsgLfUi: + pass + +def wrap(ssc_data_t) -> CspDsgLfUi: + pass + +def from_existing(model, config="") -> CspDsgLfUi: + pass + +__loader__ = None + +__spec__ = None diff --git a/stubs/stubs/LinearFresnelDsgIph.pyi b/stubs/stubs/LinearFresnelDsgIph.pyi index 9bc27e69..fe8be86e 100644 --- a/stubs/stubs/LinearFresnelDsgIph.pyi +++ b/stubs/stubs/LinearFresnelDsgIph.pyi @@ -88,6 +88,7 @@ class LinearFresnelDsgIph(object): b_eps_HCE2 = tuple b_eps_HCE3 = tuple b_eps_HCE4 = tuple + deltaT_subcooled = float dirt_mirror = tuple e_startup = float error = tuple @@ -106,6 +107,7 @@ class LinearFresnelDsgIph(object): sh_eps_HCE4 = tuple theta_dep = float theta_stow = float + use_quality_or_subcooled = float x_b_des = float @@ -121,7 +123,6 @@ class LinearFresnelDsgIph(object): T_cold_ref = float - T_hot = float class Heliostat(object): diff --git a/stubs/stubs/Merchantplant.pyi b/stubs/stubs/Merchantplant.pyi index 7e140771..eda043e1 100644 --- a/stubs/stubs/Merchantplant.pyi +++ b/stubs/stubs/Merchantplant.pyi @@ -418,6 +418,7 @@ class Merchantplant(object): degradation = tuple gen = tuple gen_purchases = tuple + gen_without_battery = tuple system_capacity = float system_pre_curtailment_kwac = tuple @@ -601,6 +602,7 @@ class Merchantplant(object): cf_energy_net = tuple cf_energy_purchases = tuple cf_energy_sales = tuple + cf_energy_without_battery = tuple cf_feddepr_custom = tuple cf_feddepr_macrs_15 = tuple cf_feddepr_macrs_5 = tuple @@ -998,18 +1000,23 @@ class Merchantplant(object): lcos_real = float min_dscr = float mp_ancillary_services1_cleared_capacity = tuple + mp_ancillary_services1_consumed_cost = tuple mp_ancillary_services1_generated_revenue = tuple mp_ancillary_services1_price = tuple mp_ancillary_services2_cleared_capacity = tuple + mp_ancillary_services2_consumed_cost = tuple mp_ancillary_services2_generated_revenue = tuple mp_ancillary_services2_price = tuple mp_ancillary_services3_cleared_capacity = tuple + mp_ancillary_services3_consumed_cost = tuple mp_ancillary_services3_generated_revenue = tuple mp_ancillary_services3_price = tuple mp_ancillary_services4_cleared_capacity = tuple + mp_ancillary_services4_consumed_cost = tuple mp_ancillary_services4_generated_revenue = tuple mp_ancillary_services4_price = tuple mp_energy_market_cleared_capacity = tuple + mp_energy_market_consumed_cost = tuple mp_energy_market_generated_revenue = tuple mp_energy_market_price = tuple mp_total_cleared_capacity = tuple diff --git a/stubs/stubs/Pvsamv1.pyi b/stubs/stubs/Pvsamv1.pyi index 7456353a..9325f9ae 100644 --- a/stubs/stubs/Pvsamv1.pyi +++ b/stubs/stubs/Pvsamv1.pyi @@ -922,10 +922,34 @@ class Pvsamv1(object): mp_enable_ancserv4 = float mp_enable_energy_market_revenue = float mp_energy_market_revenue = tuple + ppa_escalation = float ppa_multiplier_model = float ppa_price_input = tuple + class Revenue(object): + def assign(self): + pass + + def export(self) -> dict: + pass + + def __init__(self, *args, **kwargs): + pass + + + mp_ancserv1_revenue_single = tuple + mp_ancserv2_revenue_single = tuple + mp_ancserv3_revenue_single = tuple + mp_ancserv4_revenue_single = tuple + mp_enable_ancserv1_percent_gen = float + mp_enable_ancserv2_percent_gen = float + mp_enable_ancserv3_percent_gen = float + mp_enable_ancserv4_percent_gen = float + mp_enable_market_percent_gen = float + mp_energy_market_revenue_single = tuple + + class ElectricityRates(object): def assign(self): pass @@ -1013,8 +1037,8 @@ class Pvsamv1(object): pass + ac_gross = tuple ac_lifetime_loss = tuple - ac_loss = float ac_perf_adj_loss = tuple ac_transmission_loss = tuple ac_wiring_loss = tuple @@ -1171,6 +1195,7 @@ class Pvsamv1(object): crit_load_unmet = tuple dc_degrade_factor = tuple dc_invmppt_loss = tuple + dc_lifetime_loss = tuple dc_net = tuple dc_snow_loss = tuple df = tuple diff --git a/stubs/stubs/Pvwattsv8.pyi b/stubs/stubs/Pvwattsv8.pyi index c045daf3..eb6a91a3 100644 --- a/stubs/stubs/Pvwattsv8.pyi +++ b/stubs/stubs/Pvwattsv8.pyi @@ -125,7 +125,9 @@ class Pvwattsv8(object): ac = tuple ac_annual = float + ac_annual_pre_adjust = float ac_monthly = tuple + ac_pre_adjust = tuple annual_energy = float annual_energy_distribution_time = tuple aoi = tuple diff --git a/stubs/stubs/__init__.py b/stubs/stubs/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/test_Reopt_sizing.py b/tests/test_Reopt_sizing.py index c7e76452..268d2ffd 100644 --- a/tests/test_Reopt_sizing.py +++ b/tests/test_Reopt_sizing.py @@ -42,6 +42,7 @@ def test_reopt_sizing_pvsam(solar_resource): bt = stbt.from_existing(sys, "GenericBatteryCommercial") sys.SolarResource.solar_resource_file = solar_resource + sys.SolarResource.use_wf_albedo = 0 bt.Load.crit_load = [0] * 8760 post = sys.Reopt_size_battery_post() diff --git a/tests/test_pysam_all.py b/tests/test_pysam_all.py index 6a7cab29..2374dcc5 100644 --- a/tests/test_pysam_all.py +++ b/tests/test_pysam_all.py @@ -274,7 +274,11 @@ def assign_values(mod, i): for default in defaults: default = os.path.basename(default).split('.')[0].split('_')[1] m = i.default(default) - if mod == "Pvsamv1" or mod == "Pvwattsv7" or mod == "TcsmoltenSalt" or mod == "Pvwattsv5" or mod == "Swh": + if mod == "Pvsamv1" or mod == "Pvwattsv7" or mod == "Pvwattsv5" or mod =="Pvwattsv8": + m.SolarResource.solar_resource_file = sf + m.SolarResource.use_wf_albedo = 0 + m.SolarResource.albedo = (0.1,) * 12 + elif mod == "TcsmoltenSalt" or mod == "Swh": m.SolarResource.solar_resource_file = sf elif mod == "Biomass": m.Biopower.file_name = sf @@ -328,7 +332,7 @@ def test_run_all(): return techs = ( "Battery", "Battwatts", "Biomass", "Geothermal", "LinearFresnelDsgIph", "MhkTidal", "MhkWave", "Windpower", - "Pvsamv1", "Pvwattsv7", "Pvwattsv5", "TcsmoltenSalt", "Hcpv", "Swh", "GenericSystem", "Grid", + "Pvsamv1", "Pvwattsv8", "Pvwattsv7", "Pvwattsv5", "TcsmoltenSalt", "Hcpv", "Swh", "GenericSystem", "Grid", "TroughPhysicalProcessHeat", "TcsMSLF", "TcsgenericSolar", "TcslinearFresnel", "TcstroughEmpirical", "TroughPhysical", "EtesElectricResistance", ) for mod in techs: