From 07cb56520b70b0e67070c685116f846027e78bcd Mon Sep 17 00:00:00 2001 From: samaid Date: Sun, 8 Dec 2019 20:09:55 -0600 Subject: [PATCH 1/2] hpat_pandas_series_getitem() docstring example --- sdc/datatypes/hpat_pandas_series_functions.py | 202 ++++++++---------- 1 file changed, 92 insertions(+), 110 deletions(-) diff --git a/sdc/datatypes/hpat_pandas_series_functions.py b/sdc/datatypes/hpat_pandas_series_functions.py index 43fc93d9a..d18602bad 100644 --- a/sdc/datatypes/hpat_pandas_series_functions.py +++ b/sdc/datatypes/hpat_pandas_series_functions.py @@ -40,16 +40,92 @@ import sdc import sdc.datatypes.common_functions as common_functions -from sdc.datatypes.common_functions import TypeChecker from sdc.datatypes.hpat_pandas_stringmethods_types import StringMethodsType from sdc.hiframes.pd_series_ext import SeriesType from sdc.str_arr_ext import (StringArrayType, cp_str_list_to_array, num_total_chars) from sdc.utils import to_array +class TypeChecker: + """ + Validate object type and raise TypingError if the type is invalid, e.g.: + Method nsmallest(). The object n + given: bool + expected: int + """ + msg_template = '{} The object {}\n given: {}\n expected: {}' + + def __init__(self, func_name): + """ + Parameters + ---------- + func_name: :obj:`str` + name of the function where types checking + """ + self.func_name = func_name + + def raise_exc(self, data, expected_types, name=''): + """ + Raise exception with unified message + Parameters + ---------- + data: :obj:`any` + real type of the data + expected_types: :obj:`str` + expected types inserting directly to the exception + name: :obj:`str` + name of the parameter + """ + msg = self.msg_template.format(self.func_name, name, data, expected_types) + raise TypingError(msg) + + def check(self, data, accepted_type, name=''): + """ + Check data type belongs to specified type + Parameters + ---------- + data: :obj:`any` + real type of the data + accepted_type: :obj:`type` + accepted type + name: :obj:`str` + name of the parameter + """ + if not isinstance(data, accepted_type): + self.raise_exc(data, accepted_type.__name__, name=name) + @overload(operator.getitem) def hpat_pandas_series_getitem(self, idx): """ + Intel Scalable Dataframe Compiler User Guide + ******************************************** + Pandas API: pandas.Series.get + + Limitations + ----------- + Supported ``key`` can be one of the following: + - Integer scalar, e.g. :obj:`series[0]` + - A slice, e.g. :obj:`series[2:5]` + - Another series + + Examples + -------- + .. literalinclude:: ../../../examples/series_getitem.py + :language: python + :lines: 27- + :caption: Getting Pandas Series elements + :name: ex_series_getitem + + .. code-block:: console + + > python ./series_getitem.py + 55 + + .. todo:: Fix SDC behavior and add the expected output of the > python ./series_getitem.py to the docstring + + Intel Scalable Dataframe Compiler Developer Guide + ************************************************* + Pandas Series operator :attr:`pandas.Series.get` implementation **Algorithm**: result = series[idx] @@ -1131,7 +1207,7 @@ def hpat_pandas_series_corr(self, other, method='pearson', min_periods=None): if not isinstance(other.data.dtype, types.Number): ty_checker.raise_exc(other.data, 'number', 'other.data') - if not isinstance(min_periods, (int, types.Integer, types.Omitted, types.NoneType)) and min_periods is not None: + if not isinstance(min_periods, (types.Integer, types.Omitted, types.NoneType)): ty_checker.raise_exc(min_periods, 'int64', 'min_periods') def hpat_pandas_series_corr_impl(self, other, method='pearson', min_periods=None): @@ -1153,20 +1229,7 @@ def hpat_pandas_series_corr_impl(self, other, method='pearson', min_periods=None if len(self_arr) < min_periods: return numpy.nan - new_self = pandas.Series(self_arr) - new_other = pandas.Series(other_arr) - - n = new_self.count() - ma = new_self.sum() - mb = new_other.sum() - a = n * (self_arr * other_arr).sum() - ma * mb - b1 = n * (self_arr * self_arr).sum() - ma * ma - b2 = n * (other_arr * other_arr).sum() - mb * mb - - if b1 == 0 or b2 == 0: - return numpy.nan - - return a / numpy.sqrt(b1 * b2) + return numpy.corrcoef(self_arr, other_arr)[0, 1] return hpat_pandas_series_corr_impl @@ -2100,77 +2163,6 @@ def hpat_pandas_series_quantile_impl(self, q=0.5, interpolation='linear'): return hpat_pandas_series_quantile_impl -@overload_method(SeriesType, 'rename') -def hpat_pandas_series_rename(self, index=None, copy=True, inplace=False, level=None): - """ - Pandas Series method :meth:`pandas.Series.rename` implementation. - Alter Series index labels or name. - .. only:: developer - Test: python -m sdc.runtests -k sdc.tests.test_series.TestSeries.test_series_rename - - Parameters - ----------- - index : :obj:`scalar` or `hashable sequence` or `dict` or `function` - Dict-like or functions are transformations to apply to the index. - Scalar or hashable sequence-like will alter the Series.name attribute. - Only scalar value is supported. - copy : :obj:`bool`, default :obj:`True` - Whether to copy underlying data. - inplace : :obj:`bool`, default :obj:`False` - Whether to return a new Series. If True then value of copy is ignored. - level : :obj:`int` or `str` - In case of a MultiIndex, only rename labels in the specified level. - *Not supported* - Returns - ------- - :obj:`pandas.Series` - returns :obj:`pandas.Series` with index labels or name altered. - """ - - ty_checker = TypeChecker('Method rename().') - ty_checker.check(self, SeriesType) - - if not isinstance(index, (types.Omitted, types.UnicodeType, - types.StringLiteral, str, - types.Integer, types.Boolean, - types.Hashable, types.Float, - types.NPDatetime, types.NPTimedelta, - types.Number)) and index is not None: - ty_checker.raise_exc(index, 'string', 'index') - - if not isinstance(copy, (types.Omitted, types.Boolean, bool)): - ty_checker.raise_exc(copy, 'boolean', 'copy') - - if not isinstance(inplace, (types.Omitted, types.Boolean, bool)): - ty_checker.raise_exc(inplace, 'boolean', 'inplace') - - if not isinstance(level, (types.Omitted, types.UnicodeType, - types.StringLiteral, types.Integer)) and level is not None: - ty_checker.raise_exc(level, 'Integer or srting', 'level') - - def hpat_pandas_series_rename_idx_impl(self, index=None, copy=True, inplace=False, level=None): - if copy is True: - series_data = self._data.copy() - series_index = self._index.copy() - else: - series_data = self._data - series_index = self._index - - return pandas.Series(data=series_data, index=series_index, name=index) - - def hpat_pandas_series_rename_noidx_impl(self, index=None, copy=True, inplace=False, level=None): - if copy is True: - series_data = self._data.copy() - else: - series_data = self._data - - return pandas.Series(data=series_data, index=self._index, name=index) - - if isinstance(self.index, types.NoneType): - return hpat_pandas_series_rename_noidx_impl - return hpat_pandas_series_rename_idx_impl - - @overload_method(SeriesType, 'min') def hpat_pandas_series_min(self, axis=None, skipna=True, level=None, numeric_only=None): """ @@ -2933,12 +2925,11 @@ def hpat_pandas_series_nunique_str_impl(self, dropna=True): It is better to merge with Numeric branch """ - data = self._data - if dropna: - nan_mask = self.isna() - data = self._data[~nan_mask._data] - unique_values = set(data) - return len(unique_values) + str_set = set(self._data) + if dropna == False: + return len(str_set) - 1 + else: + return len(str_set) return hpat_pandas_series_nunique_str_impl @@ -2992,8 +2983,7 @@ def hpat_pandas_series_count(self, level=None): if isinstance(self.data, StringArrayType): def hpat_pandas_series_count_str_impl(self, level=None): - nan_mask = self.isna() - return numpy.sum(nan_mask._data == 0) + return len(self._data) return hpat_pandas_series_count_str_impl @@ -3143,10 +3133,10 @@ def hpat_pandas_series_argsort_idx_impl(self, axis=0, kind='quicksort', order=No sort_nona = numpy.argsort(self._data[~na_data_arr]) q = 0 for id, i in enumerate(sort): - if id in set(sort[len(self._data) - na:]): - q += 1 + if id not in list(sort[len(self._data) - na:]): + result[id] = sort_nona[id-q] else: - result[id] = sort_nona[id - q] + q += 1 for i in sort[len(self._data) - na:]: result[i] = -1 @@ -3170,10 +3160,10 @@ def hpat_pandas_series_argsort_noidx_impl(self, axis=0, kind='quicksort', order= sort_nona = numpy.argsort(self._data[~na_data_arr]) q = 0 for id, i in enumerate(sort): - if id in set(sort[len(self._data) - na:]): - q += 1 - else: + if id not in list(sort[len(self._data) - na:]): result[id] = sort_nona[id - q] + else: + q += 1 for i in sort[len(self._data) - na:]: result[i] = -1 @@ -3580,15 +3570,7 @@ def hpat_pandas_series_cov_impl(self, other, min_periods=None): if len(self_arr) < min_periods: return numpy.nan - new_self = pandas.Series(self_arr) - - ma = new_self.mean() - mb = other.mean() - - if numpy.isinf(mb): - return numpy.nan - - return ((self_arr - ma) * (other_arr - mb)).sum() / (new_self.count() - 1.0) + return numpy.cov(self_arr, other_arr)[0, 1] return hpat_pandas_series_cov_impl From 776652472d83994ddc532566b919394fed8b2a44 Mon Sep 17 00:00:00 2001 From: samaid Date: Sun, 8 Dec 2019 20:22:31 -0600 Subject: [PATCH 2/2] apiref_generator.py coding style fixes --- .../__pycache__/__init__.cpython-37.pyc | Bin 154 -> 0 bytes .../__pycache__/apiref_generator.cpython-37.pyc | Bin 14939 -> 0 bytes .../__pycache__/sdc_doc_utils.cpython-37.pyc | Bin 10356 -> 0 bytes .../__pycache__/sdc_object_utils.cpython-37.pyc | Bin 11351 -> 0 bytes docs/source/buildscripts/apiref_generator.py | 11 +++++------ 5 files changed, 5 insertions(+), 6 deletions(-) delete mode 100644 docs/source/buildscripts/__pycache__/__init__.cpython-37.pyc delete mode 100644 docs/source/buildscripts/__pycache__/apiref_generator.cpython-37.pyc delete mode 100644 docs/source/buildscripts/__pycache__/sdc_doc_utils.cpython-37.pyc delete mode 100644 docs/source/buildscripts/__pycache__/sdc_object_utils.cpython-37.pyc diff --git a/docs/source/buildscripts/__pycache__/__init__.cpython-37.pyc b/docs/source/buildscripts/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index a2db886b39093431f3bb6f0b8ba6cae2dc365cb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 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 Owb|NtYJY%|>;DU4yjlbR diff --git a/docs/source/buildscripts/__pycache__/sdc_object_utils.cpython-37.pyc b/docs/source/buildscripts/__pycache__/sdc_object_utils.cpython-37.pyc deleted file mode 100644 index 3e3909df5b0ec5b4db63c17c9747c65f9b972e64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11351 zcmeHN&2t>bb)T>O#0S4X5~L_<#8@I%g4T+y$T33Glt{v2OhJqQmXa;1b_d(Dz!1AT zi|$#9*et4&Kyg$$q>@8!I*{d)t8z%?;Hn&Q&MkkyTyjV*I^>?xAxhC`=((CLzrEoXEw~9 z)v$VY!|pi^$E1F%TWA#cUThTkUTTzZx4Y$DrBUfs8`a)iW3D&fn8$cW6hu*!L|Ifs zRm_Qbu^<+==Nb#*gg7ZqiPPeYSQ2N&IdNVriwokScurgr&x_0A1>uSp#TD^;;ydCc z@v^uou8Ep>MZ79jwl6mp{S$|Vcaqyv+@2P%iTcMzhH3a0qmzdw?w6CdQ~b8XZ*Fv&-h{Pb)b4&xbgnsZb=!}6 zes9Z{DlP}A7m8umk4u4ScRi)zYM?s9eme@n{yIi42db$=yE#<8Y;F$&;Wu}DPxvxk z0Gy@>+bWVle>`?bczxliX5Z`i&5jIvqXpelZ->2s7menU z*I^WNM`x24ZxGZ0!0#&{p+<{IcjT)GD~(Ph?}Kg_aYqW%mok)UbaDbrv_J6G=zP)> zg!N7+dtRjKD%$V*88)7j-u}c&*ld7#7m|7HQ2KSju#($o0Ys^{cY=<@*3@X8U$Lj4 z>&sD9zx6x8wtmLKgCHC&Qonv~Vw0nj6Yt&dBh0K&4-q2)xdZApL5tC4`XIc>(^!Cf zy|CX*Ii*I|roZoixGC{z7Ndy{g-!BEAA9m5A{V1B0x*l#;eG97uP1nLKs??WM!p!G znd#ttoT5%JysrkKjGD^d8=ajUH?co}SJ7yBc7)gWy89|nBL=qvwEZZ6+z?ufWJc|j zj&1drzm^Ep4hXDgCQPY63WNUWG<_qQdvb3Gi6uVpuF{V7V4&xzonfcb^_!afJcg(b z+2BRy2vEunegSq0`)$Kq@gLnST(@wkWi(?WGIopdWQ3;+#s*B9zG~JeuDbYp-;ai} zuUs%g`XF9kK)~I*{mAdS8@F${;npL+9k~!%*K@an$9~_v&l;6}(E{4UxO$Z#u3}qW z&&~T+XJ$m9yXCvkf%c9s+>e52=g4{*kYwCek9?g$7Vz@Lc;Un|i`r*U-`|TZ1_U_A&c8(9C{g8~z!>wV^6{;obqNo`6xPSafe{#<5t)%S zhC4a5$$h|d7Q7#00`Ki^KZpXa8;pGAZg;~iuj|tGV5dB}??yXb#KyIOOWj68+Hq*gn~_QP1ERipXg;(KtOGl;$JW^HSp3}?+xYH8 zg|UNs0oqj@7p}8b)vWckT1gfFPL`-CQ$tJ13Yxe?!U2hq6n@l-F%e*{hZn&)2i)QLV`tZrYoc&q-#7NwJ}}0%{5UF!qW*f`5T)~27x(gc@cysNapAz) zyNGca^e5-W1a%R7FGCibL&(M6XBa_2O~w27R5M{p;jvl62=(m* z&>IR$XfSg+Rlgk{Qhdxf6?qaW!uB%4prA*t4p6irX<&~76>N2VQY5vn>WPlQe0RzF z3G}lnsNq)niHrci^<56WfIM|{0(e583NYO5dQswk70*v>e2V(2yEcPyLIK_&^bTs4w*r@1de2XhUw#l@M z9r_mA=$+9;c>=5aB`)QnF{)K_(LQHZO~*V9yWp5b%P}umWvhz5MTYQ^>1ZC_=gxfR0a z6Y^Txyi{XS7qpgy|8B6|N8qdATHs(Hl5PUfWo01O#_G^&HCwIe@T1*TtL`Qc(ujaY za0b&dc<*>reXqUa29e)$;qhoo(Qp8bYPGKE#aUTb5=;_TUu(4(c1A^FGnu_JM8)r+ z*@lt%@D&&~IQLIrTn@>c!I(X@gz?N&cuM;_*56xuMy)u~mOPcF1F5w2eLIPU4H|b>anOIXC{1upmoYG%R!U5_uvfOEV#7?hW!e1W*JL z#{N}IWVq=w`=C=tp!}Rxp^Y0ASx1`@vW?Hy~I!@D=x~Wh)z% zh*$ouMfcZ}Fp{gUlQ8)*_yli%6*m?yd5tGTKFie7ae)4b)=I?cyLdh#R<~#Xg+4lrBU|;?2pq^pjs9ZFKppE>VXR2Y zSs}i)4cTDdwsNe;=A}QUF!1yL{qoB%p-_(W2U8lAt82VWduIfjS%AQ@@UOHz-hWAc zAJ1)4WcnkLk&WT~{|_FL6v7dZ@c%GmmIHOs=92a=>FUMtknd2`d{<1md5o&W>Nx$rEBFKWR6y@uH zgnI?|GVWE}E4a@g^u``)^PUf)Fum`lNeH~gPT)&VqC^4<3dK(H2v~CPJIP9B-G=ts zWYt&QceyT=1|?fQxtlZ~7CNO!;-DPfs(U+6##*gEznTNQx|&341bxN5ngt{ZU-Fj~ z-Uc#r_bQ8|PoI+~%t});>dl@Hunl&0NVu}duGLB%SmKj2!1)+RKJvvazZ=rtLXalM zmtfu@UziPdci^c>R}{sqIYH4oOH;z1{x&hX)k@Gmf>FA!Ux7x3I6=!cJ+r%s50je$ zV&MeciQj}*!ngqSBE$v0Sammij$6F0L~#-MZj$+A;k7oyis+2EKw&g)ecu;|s zJ2QC-dD;LYpS#W!eV9~>k%o6BmxF+Sg21@S)IAo@#cU}a^B*~yC_%jTP0{4JQ&?ss zCM?GWk(fz~Dgk4ekX62c&uQ@T5u8KKU{ zz_}3JpIk<-eZfGqar(eQuQRqDnN*H3jXn1R8du216_ar`kF&FJ?@-A`{tUe(9(xfm z%RH6}Hz?as&INeU2ZpFXbgJG9K$Gp-`+j>U6;}$~0csVfvP}Ck7yu-o{ix2RXih|_ zL?1-^xm~8Zfbh45+uIZ;42E(LqCPQI63;pKyD*{ar>+<__qR4oVAUHzNN(MGYh&Zi z#wsh+$Z_4*+|j)2u02@4wR!iwb$lQt8!fo*#)G%teed>zdo-9-5XIEEz*5CFDqd*v zOQOoPf+Xc=oYkF~R;p&F>utvs5*fBBsKw%utV&$TM$PK(9e^q!h32}AQ6;ThG*2h3 z1HD}|C5>s5Ri!^FRFjgjg8nTY#;Aakf+AF3M(EAY9n?9WxOhfV1r=R7urUgCaCrqI zP#NDa_O5)OM`$HpI)JiKg(#<3wJEEK9=(7_KocPk&Lvl(W!lv$Mx#;BNJIVHvXpSmX zplj~*rxU>6DeSZz)FIGsg~B2noJm$#N|LxfWBl=vaM<^8WJu@cbZ#{b2k|H3*};&E zeUw$FTP+HT5r+p8;k=ee#D|kXF+x-dbEg9HG?~b~uGViLuYbY4_y4Hq95rqiTnsIBO;%? z@q)zqX^}_)O`ji6oJeL-DMj!);USGn7S^dJ;`1q5uY*BJMU_@W#?TMb8I*%=(P8E^ z&II#_)-%p*!zThEZIn$(wQU^OvH7iJdu=SI1fOM=T*CzU6KdW;(_q`o1fMm-1o=fW z!*s4|oWxn2y$Iu*whqiNpUzo~Ll*8*q(p|9E=4~@$}8`>ZcGu3K9uC6Cwue-Z!j&t zPqSc#O<&KE>`+z&+stS&XIA=p*g%IgcnsjneKH)}6&el{Y zl%K?}PD}DPK$|CIR0Ey)Cl6q(sE#IQeN%;?7mg(W~6WH!WHmw`*xn(P2Coh3CFz!FLET zs_z+9k{tO{JhkbS{s`gBaZ?dDsr?~VJ~TWWV51giMt0<&jz@>u^t&}1G;u~PCg0tO zGFiraoz&1l{m~y5Q03BBWF@FlH0d(Qhu()1_GU9=l4Fu-PBJMaNsigyL>h-9-X|9$ zOGo@j=y1II%#=&?^OU_MisYZ#ls(U5vcOfd*Ei#$<_t(okaaY50q1{IgGjlSg+@vz zgEsSCCqHk}teK4Pl+LXao>T3lNo1!{bdX-e0a+FInM3rnlsJ)Sa~d`QW*w2;Ope7(optJ6%+fd#pXBU@5oF=e8Dau6Goyb-_>r6&#d4(x4CSBT`8OmO z6Q};ahE&{5e?>G?I++p-vZ{$-y!~wiBfQB%VowN(10k`2a>Jn?pH0chxl~SQN8eUR z7PXMjRFV*Ntc1M6`8nflFU&D^B_FXGpgy40E1A@UM~BtONHDG7y`et}27tJJ@2(!XJ$OhNyog?`N< z-=&5WI~Q`vyP;pV@GqVCryhK?%!h%Jj&8V^r1wf`2wPCLYb?W(P}hZ=+w_$0KG%uz zb#0_>5X$OjXqKU#^l#a*%%lH`g`<7nw5Mp3dKK;RLitkp3fhHowS2RBv3j+9s=QQQ Ls^V+e(%1h1syo2q diff --git a/docs/source/buildscripts/apiref_generator.py b/docs/source/buildscripts/apiref_generator.py index 892311485..674d7f080 100644 --- a/docs/source/buildscripts/apiref_generator.py +++ b/docs/source/buildscripts/apiref_generator.py @@ -28,7 +28,7 @@ import pandas from sdc_object_utils import init_pandas_structure, init_sdc_structure, init_pandas_sdc_dict, get_sdc_object, get_obj from sdc_object_utils import get_class_methods, get_class_attributes, get_fully_qualified_name -from sdc_doc_utils import is_sdc_user_guide_header, get_indent, reindent,get_short_description +from sdc_doc_utils import is_sdc_user_guide_header, get_indent, reindent, get_short_description from sdc_doc_utils import split_in_sections, get_docstring, create_heading_str, cut_sdc_dev_guide import os @@ -43,7 +43,7 @@ def reformat(text): :param text: Original text with warnings :return: Modified text that fixes warnings """ - text = reformat_replace_star_list_with_dash_list(text) # Must be called before :func:`reformat_asterisks` + text = reformat_replace_star_list_with_dash_list(text) # Must be called before :func:`reformat_asterisks` text = reformat_asterisks(text) # Fix for * and ** symbols text = reformat_explicit_markup(text) # Fix for explicit markup without a blank line text = reformat_bullet_list(text) # Fix bullet list indentation issues @@ -214,7 +214,7 @@ def reformat_asterisks(text): if idx2 == -1: # Only one single asterisk in the line - Reformat to `\*` line = line.replace('*', '\\*') - idx = len(line) # Parsed the line. Go to another line + idx = len(line) # Parsed the line. Go to another line elif idx2 == idx1+1: # First double asterisk met in the line idx2 = line.find('**', idx1+2) @@ -278,7 +278,6 @@ def _get_param_text(title, param): elif title == 'Raises': return ':raises:' - # Internal function. Returns correct markup for Parameters section def _reformat_parameters(title, text): lines = text.split('\n') @@ -608,7 +607,7 @@ def parse_templ_rst(fname_templ): doc.pop(0) # Skipping ``.. sdc_toctree`` # Parsing the list of APIs - while len(doc) >0 and doc[0].strip() != '': + while len(doc) > 0 and doc[0].strip() != '': line = doc[0] indent = get_indent(line) line = line.strip() @@ -616,7 +615,7 @@ def parse_templ_rst(fname_templ): obj = get_obj(full_name) short_description = generate_simple_object_doc(obj, short_doc_flag=True).strip() new_line = reindent(':ref:`', indent) + line + ' <' + full_name + '>`\n' + \ - reindent(short_description, indent+4) + '\n' + reindent(short_description, indent+4) + '\n' fout.write(new_line) doc.pop(0)