From 7ee635155d7262ad1bceeda41d1f09d6eebbb2c7 Mon Sep 17 00:00:00 2001 From: Kay Robbins <1189050+VisLab@users.noreply.github.com> Date: Sun, 9 Jul 2023 15:40:02 -0500 Subject: [PATCH] Updated BaseInput dataframe input to convert to str --- README.md | 2 +- docs/requirements.txt | 1 + docs/source/_static/images/croppedWideLogo.png | Bin 0 -> 15080 bytes docs/source/conf.py | 4 ++-- docs/source/index.rst | 4 ++++ docs/source/introduction.rst | 9 ++++++++- hed/models/base_input.py | 4 ++-- hed/schema/hed_schema.py | 1 + hed/tools/util/data_util.py | 12 ++++++------ 9 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 docs/source/_static/images/croppedWideLogo.png diff --git a/README.md b/README.md index 12372c8f8..053ca510c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Maintainability](https://api.codeclimate.com/v1/badges/11bf2329590e7b0164ba/maintainability)](https://codeclimate.com/github/hed-standard/hed-python/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/11bf2329590e7b0164ba/test_coverage)](https://codeclimate.com/github/hed-standard/hed-python/test_coverage) ![PyPI - Status](https://img.shields.io/pypi/v/hedtools) - +[![Documentation Status](https://readthedocs.org/projects/hed-python/badge/?version=latest)](https://hed-python.readthedocs.io/en/latest/?badge=latest) # HEDTools - Python HED (Hierarchical Event Descriptors) is a framework for systematically describing diff --git a/docs/requirements.txt b/docs/requirements.txt index 952120af1..59c144b44 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,6 +5,7 @@ openpyxl>=3.1.0 pandas>=1.3.5 portalocker>=2.7.0 semantic_version>=2.10.0 +myst-parser>=1.0.0 Sphinx>=5.2.2 sphinx_rtd_theme>=1.0.0 wordcloud==1.9.2 diff --git a/docs/source/_static/images/croppedWideLogo.png b/docs/source/_static/images/croppedWideLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..2f011f9c6053abcb2dcc42a7211c6a94201d52cf GIT binary patch literal 15080 zcmX9_WmsEXvkg|H#jR+AySrN`!Ci|KD^?teyQgT2JHes2JH_4Ip-6EFQvBxq?vI@0 zc``@F)~uPmPn4R993}=S1^@uSlm~+}000Da`0pdMH}E6byKj>4FLWoczAFIm7Vp0g z!pyq=6951N$b+P`JTp(T(BsJ$y*9h~i0dMv@fznTn|ge~fDMI}g{GD>i~Yv{vVWG2X@_%abFc?*OGT zzngp1i13K$emF1mF7mk@KR#Pd+i1Ca)K(rpJ8@9;P`wN2y6ZfDmgo^eMV7*$eNQk+ z77PSCsey2jrIHaKjKRPmZb@8O9Ay1Bwrl|kXjE5#cY`Ur`ZTP^VkRSF>cO9GUi z;7PP#;CeJo`r1O@kJN``LEJ0-y}ST%hb_yXdb|lQ3<*F1A&xZ0j-U^0J!>)cW%(Cd zZlzop_&Vd=XL1SAf@_=#P{o5@kah!kw8h8FxwN$|i6 z@V74FBH5EUIFNf2JQwbSsHD=>11RYp2kRnu z@f^PIY_-}SFP{6~vRFFyD~-p3Fnu0=uB3lisY*+tQ3nln^Fl0Bh=&SlwxC z1weEL2qRvq?@?^56}Am03hrL{x#n(@>Dt&TEHC`oN9VfqZLq=!%W z6CXg?n6IWdlqPqyxq^WKxA$pGg@%G4p7Uw3ek4ey@v|^u+0v#i!8A4byOvC2^wMp! zIeq?U0fb0|(D%1w&Q#2B=h&D)oEh`BDRo~WT$72zFSKx`esHsMWgZl@Ge)sc$>J$c zpv?m!9VC8P5Xiv2S>U<_!W=YW;S>^ZRS_$x*QgW5-9vU;bjmKVGrfSk z*phs}ImVYUSAPO2oPzc0A_jTJnLmZW`XW)gqZ++lMwAn?Y9ReF75!ch7K{c;1+2() zRH$A;DG>TTff{XQg1|)-6y^EufMj$ffiYoWQrBK`XC!(?O^+>!2iI&e%mB9}9hGzh z3H=a&fn+Ae`2PlIC_;O$o@fo;P{m?3|IV1yKWmDPyVokppfF!e{dLG#LO}@#K>+au zesl+#)-mQ{{1>OE*o#csr7R+o%JdUaE=;6s)uEAi9<&P53isiWgbB4fq9wLO$cZ1> z)b}Lkc97uuP;7^v+E{T)6E;QGN}I_OP1Kq`Yb2EH$AV<8HU*_^B^Wu-7-P7BR0L|s zQY*xY`JP+>DuDyL&ldeB?U8oia|Y-wM=OoGwDw|q&|9vD0>%Qg;Cim_C`#^Fi(JJDEvViteWEjCdvvo$4I_|>j|~SnPevUXsFdI)fh<#e;M`?A+Wiz29$dNRsIQ6r0f>_3&WE4jT6)J_N zA=CpHbpWk%)P2| zV!#6x_BSRr94+1jcW;f;id2ZuVWcQH>?fam#Eho3MH zVA?C#sA)NVvY`KhF{1sJbGI%9@f`dqGo`0wj(Z%87;)dja{;>a$p%Ot1l7?3qZIcud&$_>-cysjgm{U8bACDo8ZY6}^CA#g0VnQ|**R^{_JP>WhQcsb3coMNNA~#^` z{WaDTw_02_DC@i2w+#ZM{#s+$&N&+s6d6d>MTB)XI{zH(c_lm<1qVbOoLW?ZE4sgA z?SN;b0D#!@s_-)sH6@nH8YfITfNn9a{IteG`;=jCG0~dU*lmO*Lv|2MAf-d}EIHJL zlGKR;KMVD8NQ}bgdTyN*xw(9{m<1!O3^d0a60g?FMTO@ce)%J(#4;iRI5ZL%e*h#9 zdGqWiu^Kg~7^stuABN!$Rs7C~bLV7?K02RYXrJ#yJv3qoh`j2`3)m{x+16snLOGi@ zi6Uz?p*6V4wB9C;T68jwfw)3d;^_W^!CxiU2N=V}p67alnV50gqCA)_Mzu=+X3vIIK;atMp&<)rU zKZz7h0GijE@Q7EdPdQX^>AJH+-gL>flM_A=M(s>+q9@TR@xr8eoiMW0S4J<&hc^NF zMyjZn)+t{}y(A>2(`#XwuDyH=3L_CPHTI&VUszH&*l4fR*VleUVyZDdf{qr%?cp$l zBM{~+VH92=P87s1x%-bD989Gs&=6$rN&CD%IJDL6n2!9ilb0YauBFRWgjiEX3oSmf zVI3%Pv_Q__{K;?!!5OVI0BJiL)85^oxvfwB6WA+_yN!C9j^~Ski)kkVzt$~j9z+fN z2~XuKZZL8LETen7%E04|P>A7~!Kz>Id^YiDv|B?oyny|n_TF15ZOP-?Q#3<&ZX#xj`-pNhO$}#k@%ZuS zuhjlC-0p%L9hXLu(yE9-3__VFsa^T3j4Zr9FI4K38m4r9&Qh*V1yMIzPnq z3Dj`}Qe@4_>UygEjj&spqtNV8A&6^dwU_7nEE)`~u%dD$(uk^(=DrlA-9JZCUd5(= zwBNcgwYyWk7kxj+GGoUqBXcY|CI|degPnbR;3qrh(nQ?pOqT+EmYHcU*>#Bf=7~0w zZNYP3N_9_|Ix7Ay`jr_FP(}ABzh(UX>^@8L_})-4U%m3DQ^}ycIAUQo3|j8jz3uDF!j7wL zF6Ot_h3N1}6j@3*By7&Z^!9AFdpU>SJplb{(C_RVyFDQd?S_>Xg~AWtO?2s?(LDcU z!0k1d>}UGIHoWW!W3XsuEBRBV-rIG1HQKaQPE9t=6oiILQ@TPcw|$+Ee(Y4adeD{) zJe(-E*ny@~Nu-2Rw2rEN&*h+CrDV9ivtW4#G9Zf4IO4ZRrdF4b**}6K4Df8b9S@Qy zBIN80jst?_eokZ}^!}p-bZsQ|=3Z|$9l5FZue)Xw`%H`)>@RzCl1iwvCOms=2xc4ETQs`~U zIqGKu2yp!)zZZt!<4yR7q=riIk2znDmd#~TgrwKR4o<;yH&-sTu)0c#f;@3mRrPWe z0x?zntlCYTbGD&iXu*N>6#y6LnpC>TYj!aYA3MOq{xqDn{z7quwl%y~2d zcsAw9DH_m1DZ|Icc%R1P5M`m{O0#?n7+QxZ#<-9(=VgXqH$oj#@jtH>c@dy31U2gN zbibAN&Gr}n%%XmpARBy&!XLF-cZDY2%4b8Z;n=pWWVU}E)Y}qHX)1bE^Cd@WhYlLP zy~w^St4*D*KxgFoKPi@XqcJfx64rmEG_6}B5#1-FxGQxv84R9awi|y2E;&AR94KG% zNn0DL??98X31T2Vp)e@g3?Z%6E0&<4^-^9vuw{4NBr2oG#4i5xvX>88C6(V-r>>DfutgV}fm{>7JyS*H5O?Vo^M22vN=#Ax2TcP$xnX$F;L z^zLfkBk?BAM@BE_oqVT4Q2&y;g zW?7TWLl^~8SBInY5=yS|{u9Os!f9&zw{!BZio13!hsLj9g2s}5&)+}=e zQBi>_As{*(-%GQW^w)-9+Ip_{O`Ok-Zm?xlmK90UPkeVFp`?xv7)-%#JZtt}42jcc zW{15$WQF?ph#|MlnaH~}nA|#1iVJ?T*hpuIe`!Z;rv56!*vJvM?1g-20M6fMhu7d% zDn`(0LeuedLFLKd)gm9kYS(DcMJ<(B4aTqV#qT0gM8~qz|5++?V9W^bEQO>>1hV6x zVI|j7aFT@ahE@?$@^=?`&1eSa@Ix~Fm#ne&j%)nW3!DOxZA@m_o$>D=o1uR-{u7f1*1(rAA>QdWE=(4f2P$dPtIF=mhY+SAS(!DJbpZR)! zCNag{&HR>nHzAxN(#F_kMV|T$oS0FW4YQOmhI66gzx#U51}T+5}P40c0pEk&g2TB
ExoBSA1<&z_oJaosAx~Gr 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 TH;@N^brm2ls{*Q&{v7;&1>zkY literal 0 HcmV?d00001 diff --git a/docs/source/conf.py b/docs/source/conf.py index 229138018..fbc4813b3 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -24,8 +24,8 @@ author = 'HED Working Group' # The full version, including alpha/beta/rc tags -version = '0.0.1' -release = '0.0.1' +version = '0.3.1' +release = '0.3.1' currentdir = os.path.realpath(os.path.dirname(__file__)) diff --git a/docs/source/index.rst b/docs/source/index.rst index 8c90bf837..ee0b056e8 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,6 +1,10 @@ Hierarchical Event Descriptor (HED) Python Tools ================================================ +.. image:: _static/images/croppedWideLogo.png + :width: 220 + :alt: HedLogo + .. sidebar:: **Links** * `PDF docs `_ diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst index f49a7dac5..fbb72f414 100644 --- a/docs/source/introduction.rst +++ b/docs/source/introduction.rst @@ -29,12 +29,19 @@ you can install directly from the `GitHub repository `_ using the following command: +```code >>> pip install git+https://github.com/hed-standard/hed-python.git - +``` Finding help ============ +:Documentation: + + See `HED resources `_ for user documentation and tutorials. + + The `HED online tools `_ provide an easy-to-use interface that requires no programming. + :Mailing lists and forums: * Don't hesitate to ask questions about the python hedtools on `NeuroStars diff --git a/hed/models/base_input.py b/hed/models/base_input.py index 745d40811..4c2e3a7bb 100644 --- a/hed/models/base_input.py +++ b/hed/models/base_input.py @@ -70,14 +70,14 @@ def __init__(self, file, file_type=None, worksheet_name=None, has_column_names=T self._dataframe = None if isinstance(file, pandas.DataFrame): - self._dataframe = file + self._dataframe = file.astype(str) self._has_column_names = self._dataframe_has_names(self._dataframe) elif not file: raise HedFileError(HedExceptions.FILE_NOT_FOUND, "Empty file passed to BaseInput.", file) elif input_type in self.TEXT_EXTENSION: try: self._dataframe = pandas.read_csv(file, delimiter='\t', header=pandas_header, - dtype=str, keep_default_na=True, na_values=None) + dtype=str, keep_default_na=True, na_values=["", "null"]) except Exception as e: raise HedFileError(HedExceptions.INVALID_FILE_FORMAT, str(e), self.name) from e # Convert nan values to a known value diff --git a/hed/schema/hed_schema.py b/hed/schema/hed_schema.py index e5f6c5e62..91a73c8f0 100644 --- a/hed/schema/hed_schema.py +++ b/hed/schema/hed_schema.py @@ -153,6 +153,7 @@ def get_formatted_version(self): Returns: str: A json formatted string of the complete version of this schema including library name and namespace. """ + return json.dumps(self.version) def get_save_header_attributes(self, save_merged=False): diff --git a/hed/tools/util/data_util.py b/hed/tools/util/data_util.py index a6866909c..37562e189 100644 --- a/hed/tools/util/data_util.py +++ b/hed/tools/util/data_util.py @@ -131,13 +131,13 @@ def get_new_dataframe(data): DataFrame: A dataframe containing the contents of the tsv file or if data was a DataFrame to start with, a new copy of the DataFrame. - :raises HedFileError: + :raises HedFileError: - If a filename is given and it cannot be read into a Dataframe. """ if isinstance(data, str): - df = pd.read_csv(data, delimiter='\t', header=0, keep_default_na=False, na_values=",null") + df = pd.read_csv(data, delimiter='\t', header=0, keep_default_na=True, na_values=[",", "null"]) elif isinstance(data, pd.DataFrame): df = data.copy() else: @@ -155,7 +155,7 @@ def get_row_hash(row, key_list): Returns: str: Hash key constructed from the entries of row in the columns specified by key_list. - :raises HedFileError: + :raises HedFileError: - If row doesn't have all of the columns in key_list HedFileError is raised. """ @@ -177,7 +177,7 @@ def get_value_dict(tsv_path, key_col='file_basename', value_col='sampling_rate') Returns: dict: Dictionary with key_col values as the keys and the corresponding value_col values as the values. - :raises HedFileError: + :raises HedFileError: - When tsv_path does not correspond to a file that can be read into a DataFrame. """ @@ -252,7 +252,7 @@ def reorder_columns(data, col_order, skip_missing=True): Returns: DataFrame: A new reordered dataframe. - :raises HedFileError: + :raises HedFileError: - If col_order contains columns not in data and skip_missing is False. - If data corresponds to a filename from which a dataframe cannot be created. @@ -277,7 +277,7 @@ def separate_values(values, target_values): list: Target values present in values. list: Target values missing from values. - Notes: + Notes: - The function computes the set difference of target_cols and base_cols and returns a list of columns of target_cols that are in base_cols and a list of those missing.