From 2183936f3098db08328838666a6b9718f2f45361 Mon Sep 17 00:00:00 2001 From: Isaque Alves Date: Mon, 13 Feb 2023 10:28:36 -0300 Subject: [PATCH] Documentation (#71) * doxygen files * doxygen files * #46 insert box to user_guide and getting start * (#57)(#58) Update sphinx path * (#57)(#58) Remove /html and /xml from git monitoring * (#57)(#58) Remove files and folders from git monitoring * Update gitignore * Retirando arquivo .buidinfo do monitoramento git * #57 update config and insert files in .gitignore * #57 Update hygia description and 'why hygia' * (#57 #58) Increment _sources on .gitignore * (#57 #58) Increment _sources on .gitignore * (#57 #58) Generate the index.html for github deploy page * (#57 #58) Change user guide for getting start * (#57 #58) Update .gitignore * (#57 #58) finishing the description and initial instruction about the product * (#57 #58) Remove index Indices and tables * (#57 #58) Take back the .html files * (#57 #58) Update Getting Start and set init User Guide * (#57 #58) Improve User Guide * (#57 #58) Take back basic.css * (#57 #58) Update Getting Start * (#57 #58) Update User Guide * (#57 #58) Update User Guide * Reestructure and update the documentation * (#57 #58) update doxygen documentation * #67 Insert explanatory texts to assist users in running the boilerplate * 67 update boilerplate of retrained predict * 67 update boilerplate of yaml use * #66 updating readme for use in pypi * #68 documenting data_pipeline classes and functions * #68 documenting feature_engineering classes and functions * #68 documenting model classes and functions * #68 documenting annotate_data classes and functions * #68 updating title and making some adjustments * #68 update doxygen * #68 update and fix documentation - Insert supported by - Remove list of tables and index - Insert logo in header - Insert link to github organization - update doxygen .xml * #68 Change documentation format * Fix header logo --------- Co-authored-by: Carla Rocha Co-authored-by: Bruno-Felix --- .gitignore | 14 +- README.md | 52 +- docs/.DS_Store | Bin 6148 -> 10244 bytes docs/.buildinfo | 4 - docs/.doctrees/doxygen/index.doctree | Bin 0 -> 273720 bytes docs/.doctrees/environment.pickle | Bin 13879 -> 0 bytes docs/.doctrees/getting_started/index.doctree | Bin 0 -> 6900 bytes docs/.doctrees/index.doctree | Bin 9059 -> 0 bytes docs/.doctrees/user_guide/index.doctree | Bin 7144 -> 0 bytes docs/Doxyfile | 2638 ++++ docs/README.md | 28 + docs/_images/Frame4.png | Bin 0 -> 1941132 bytes ...strap.5fd3999ee7762ccc51105388f4a9d115.css | 1 + ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 + ...ables.06eb56fa6e07937060861dad626602ad.css | 7 + docs/_sources/doxygen/index.rst.txt | 28 + docs/_sources/getting_started/index.rst.txt | 54 + docs/_sources/index.rst.txt | 45 - docs/_sources/user_guide/index.rst.txt | 38 - docs/_static/Frame1.png | Bin 0 -> 528689 bytes docs/_static/Frame2.png | Bin 0 -> 501800 bytes docs/_static/Frame3.png | Bin 0 -> 479856 bytes docs/_static/Frame4.png | Bin 0 -> 1941132 bytes docs/_static/basic.css | 13 +- docs/_static/doctools.js | 418 +- docs/_static/documentation_options.js | 2 +- docs/_static/horizontal_logo.PNG | Bin 0 -> 36790 bytes docs/_static/horizontal_logo_dark.png | Bin 0 -> 33949 bytes docs/_static/horizontal_logo_light.png | Bin 0 -> 37071 bytes docs/_static/jquery-3.5.1.js | 10872 ++++++++++++++++ docs/_static/jquery.js | 4 +- docs/_static/language_data.js | 100 +- docs/_static/logo_eldorado.png | Bin 0 -> 15157 bytes docs/_static/logo_lappis.png | Bin 0 -> 42009 bytes docs/_static/logo_unb.svg | 79 + ...strap.5fd3999ee7762ccc51105388f4a9d115.css | 1 + ...-main.c949a650a448cc0ae9fd3441c0e17fb0.css | 1 + ...ables.06eb56fa6e07937060861dad626602ad.css | 7 + docs/_static/searchtools.js | 821 +- docs/doxygen/index.html | 1536 +++ docs/genindex.html | 349 - docs/getting_started/index.html | 475 + docs/html/annotated.html | 107 + docs/html/bc_sd.png | Bin 0 -> 635 bytes ...otate__data_1_1_annotate_data-members.html | 89 + ...classannotate__data_1_1_annotate_data.html | 168 + docs/html/classes.html | 102 + ...ering_1_1_feature_engineering-members.html | 93 + ...__engineering_1_1_feature_engineering.html | 237 + ...g_1_1key__smash_1_1_key_smash-members.html | 95 + ...gineering_1_1key__smash_1_1_key_smash.html | 394 + ...ngineering_1_1regex_1_1_regex-members.html | 105 + ...ature__engineering_1_1regex_1_1_regex.html | 687 + ..._embedding_1_1_word_embedding-members.html | 97 + ...1_1word__embedding_1_1_word_embedding.html | 323 + ...orest_1_1_random_forest_model-members.html | 101 + ...andom__forest_1_1_random_forest_model.html | 275 + ...ugment__data_1_1_augment_data-members.html | 93 + ...ata_1_1augment__data_1_1_augment_data.html | 283 + ...ss__data_1_1_pre_process_data-members.html | 96 + ...e__process__data_1_1_pre_process_data.html | 413 + ..._l__parser_1_1_y_a_m_l_parser-members.html | 90 + ..._1_y_a_m_l__parser_1_1_y_a_m_l_parser.html | 135 + ...1_1_y_a_m_l__parser_1_1_y_a_m_l_parser.png | Bin 0 -> 833 bytes ...rser_1_1_annotate_data_parser-members.html | 93 + ...data__parser_1_1_annotate_data_parser.html | 164 + ..._data__parser_1_1_annotate_data_parser.png | Bin 0 -> 1092 bytes ..._1_feature_engineering_parser-members.html | 95 + ...parser_1_1_feature_engineering_parser.html | 180 + ..._parser_1_1_feature_engineering_parser.png | Bin 0 -> 1212 bytes ...odel__parser_1_1_model_parser-members.html | 96 + ...ser_1_1model__parser_1_1_model_parser.html | 183 + ...rser_1_1model__parser_1_1_model_parser.png | Bin 0 -> 851 bytes ...1parser__base_1_1_parser_base-members.html | 93 + ...arser_1_1parser__base_1_1_parser_base.html | 131 + ...parser_1_1parser__base_1_1_parser_base.png | Bin 0 -> 3145 bytes ...ser_1_1_pre_processing_parser-members.html | 93 + ...ing__parser_1_1_pre_processing_parser.html | 174 + ...sing__parser_1_1_pre_processing_parser.png | Bin 0 -> 1144 bytes .../dir_0d5961b63244dbb5decf45bc05eaa7c3.html | 85 + .../dir_0eb1b5a43b0c8c28bb004ec4540a601a.html | 85 + .../dir_3836cc05125af4c9824ab70f348a3ea5.html | 85 + .../dir_58e6109ac17f9a85dc40764e86627f6a.html | 85 + .../dir_6eee28b6f6c823bd37508cabbb2cbccd.html | 91 + .../dir_70dcd5b75320c8bd61e96866e72ecc25.html | 99 + .../dir_91a15d825a96576a4dcc58d71733340b.html | 85 + docs/html/docd.png | Bin 0 -> 756 bytes docs/html/doxygen.css | 2007 +++ docs/html/dynsections.js | 123 + docs/html/functions.html | 160 + docs/html/functions_func.html | 160 + docs/html/hierarchy.html | 99 + docs/html/index.html | 81 + docs/html/jquery.js | 34 + docs/html/menu.js | 136 + docs/html/nav_fd.png | Bin 0 -> 169 bytes docs/html/nav_hd.png | Bin 0 -> 114 bytes docs/html/search/all_0.js | 7 + docs/html/search/all_1.js | 8 + docs/html/search/all_2.js | 11 + docs/html/search/all_3.js | 8 + docs/html/search/all_4.js | 4 + docs/html/search/all_5.js | 4 + docs/html/search/all_6.js | 5 + docs/html/search/all_7.js | 4 + docs/html/search/all_8.js | 4 + docs/html/search/all_9.js | 8 + docs/html/search/all_a.js | 5 + docs/html/search/all_b.js | 6 + docs/html/search/classes_0.js | 5 + docs/html/search/classes_1.js | 4 + docs/html/search/classes_2.js | 4 + docs/html/search/classes_3.js | 4 + docs/html/search/classes_4.js | 5 + docs/html/search/classes_5.js | 4 + docs/html/search/classes_6.js | 4 + docs/html/search/classes_7.js | 4 + docs/html/search/functions_0.js | 7 + docs/html/search/functions_1.js | 6 + docs/html/search/functions_2.js | 11 + docs/html/search/functions_3.js | 8 + docs/html/search/functions_4.js | 4 + docs/html/search/functions_5.js | 5 + docs/html/search/mag.svg | 37 + docs/html/search/mag_d.svg | 37 + docs/html/search/mag_seld.svg | 74 + docs/html/search/search.css | 291 + docs/html/search/search.js | 816 ++ docs/html/search/searchdata.js | 21 + docs/html/splitbard.png | Bin 0 -> 282 bytes docs/html/tab_ad.png | Bin 0 -> 135 bytes docs/html/tab_bd.png | Bin 0 -> 173 bytes docs/html/tab_hd.png | Bin 0 -> 180 bytes docs/html/tab_sd.png | Bin 0 -> 188 bytes docs/html/tabs.css | 1 + docs/index.html | 158 +- docs/objects.inv | 6 - docs/search.html | 371 - docs/searchindex.js | 1 - docs/source/.DS_Store | Bin 8196 -> 8196 bytes docs/source/conf.py | 25 +- docs/source/{user_guide => doxygen}/.DS_Store | Bin docs/source/doxygen/index.rst | 28 + .../templates/html_style_structure.html | 0 docs/source/getting_started/index.rst | 54 + .../templates/html_style_structure.html | 35 + docs/source/index.rst | 69 +- docs/source/user_guide/index.rst | 109 +- docs/user_guide/index.html | 232 +- docs/xml/Doxyfile.xml | 381 + docs/xml/____init_____8py.xml | 13 + docs/xml/_y_a_m_l__parser_8py.xml | 54 + docs/xml/annotate__data_8py.xml | 74 + docs/xml/annotate__data__parser_8py.xml | 58 + docs/xml/augment__data_8py.xml | 93 + .../classannotate__data_1_1_annotate_data.xml | 90 + ...e__engineering_1_1_feature_engineering.xml | 200 + ...ngineering_1_1key__smash_1_1_key_smash.xml | 328 + ...eature__engineering_1_1regex_1_1_regex.xml | 605 + ..._1_1word__embedding_1_1_word_embedding.xml | 306 + ...random__forest_1_1_random_forest_model.xml | 369 + ...data_1_1augment__data_1_1_augment_data.xml | 201 + ...re__process__data_1_1_pre_process_data.xml | 356 + ...1_1_y_a_m_l__parser_1_1_y_a_m_l_parser.xml | 80 + ..._data__parser_1_1_annotate_data_parser.xml | 149 + ..._parser_1_1_feature_engineering_parser.xml | 202 + ...rser_1_1model__parser_1_1_model_parser.xml | 213 + ...parser_1_1parser__base_1_1_parser_base.xml | 193 + ...sing__parser_1_1_pre_processing_parser.xml | 152 + docs/xml/compound.xsd | 1305 ++ docs/xml/const_8py.xml | 19 + docs/xml/data__pipeline_2____init_____8py.xml | 13 + ...feature__engineering_2____init_____8py.xml | 13 + ...ata__pipeline_2model_2____init_____8py.xml | 13 + ..._2pre__process__data_2____init_____8py.xml | 13 + .../dir_0d5961b63244dbb5decf45bc05eaa7c3.xml | 16 + .../dir_0eb1b5a43b0c8c28bb004ec4540a601a.xml | 13 + .../dir_3836cc05125af4c9824ab70f348a3ea5.xml | 19 + .../dir_58e6109ac17f9a85dc40764e86627f6a.xml | 13 + .../dir_6eee28b6f6c823bd37508cabbb2cbccd.xml | 12 + .../dir_70dcd5b75320c8bd61e96866e72ecc25.xml | 17 + .../dir_91a15d825a96576a4dcc58d71733340b.xml | 12 + docs/xml/doxyfile.xsd | 45 + docs/xml/feature__engineering_8py.xml | 85 + docs/xml/feature__engineering__parser_8py.xml | 103 + docs/xml/index.xml | 152 + docs/xml/key__smash_8py.xml | 222 + docs/xml/main_8py.xml | 127 + docs/xml/model__parser_8py.xml | 85 + docs/xml/namespaceannotate__data.xml | 12 + docs/xml/namespacehygia.xml | 12 + docs/xml/namespacehygia_1_1data__pipeline.xml | 15 + ...data__pipeline_1_1feature__engineering.xml | 15 + ...e__engineering_1_1feature__engineering.xml | 12 + ..._1_1feature__engineering_1_1key__smash.xml | 12 + ...eline_1_1feature__engineering_1_1regex.xml | 12 + ...eature__engineering_1_1word__embedding.xml | 12 + ...espacehygia_1_1data__pipeline_1_1model.xml | 12 + ...a__pipeline_1_1model_1_1random__forest.xml | 12 + ..._1data__pipeline_1_1pre__process__data.xml | 12 + ...1_1pre__process__data_1_1augment__data.xml | 12 + ...e__process__data_1_1pre__process__data.xml | 12 + docs/xml/namespacehygia_1_1main.xml | 31 + docs/xml/namespacehygia_1_1parser.xml | 18 + ...acehygia_1_1parser_1_1_y_a_m_l__parser.xml | 12 + ...ia_1_1parser_1_1annotate__data__parser.xml | 12 + .../xml/namespacehygia_1_1parser_1_1const.xml | 30 + ...parser_1_1feature__engineering__parser.xml | 12 + ...espacehygia_1_1parser_1_1model__parser.xml | 12 + ...mespacehygia_1_1parser_1_1parser__base.xml | 12 + ...a_1_1parser_1_1pre__processing__parser.xml | 12 + docs/xml/parser_2____init_____8py.xml | 13 + docs/xml/parser__base_8py.xml | 42 + docs/xml/pre__process__data_8py.xml | 135 + docs/xml/pre__processing__parser_8py.xml | 43 + docs/xml/random__forest_8py.xml | 152 + docs/xml/regex_8py.xml | 216 + docs/xml/word__embedding_8py.xml | 146 + examples/MEXICO_predict_example.ipynb | 45 +- examples/MEXICO_retrain_predict_example.ipynb | 62 +- examples/yaml_example.ipynb | 6 +- .../annotate_data/annotate_data.py | 31 + .../augment_data/augment_data.py | 38 +- .../feature_engineering.py | 34 +- .../feature_engineering/key_smash.py | 76 +- .../feature_engineering/regex.py | 104 + .../feature_engineering/word_embedding.py | 69 +- hygia/data_pipeline/model/random_forest.py | 29 +- .../pre_process_data/pre_process_data.py | 59 + instalation_guide.md | 22 + 230 files changed, 35208 insertions(+), 1643 deletions(-) delete mode 100644 docs/.buildinfo create mode 100644 docs/.doctrees/doxygen/index.doctree delete mode 100644 docs/.doctrees/environment.pickle create mode 100644 docs/.doctrees/getting_started/index.doctree delete mode 100644 docs/.doctrees/index.doctree delete mode 100644 docs/.doctrees/user_guide/index.doctree create mode 100644 docs/Doxyfile create mode 100644 docs/README.md create mode 100644 docs/_images/Frame4.png create mode 100644 docs/_panels_static/panels-bootstrap.5fd3999ee7762ccc51105388f4a9d115.css create mode 100644 docs/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css create mode 100644 docs/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css create mode 100644 docs/_sources/doxygen/index.rst.txt create mode 100644 docs/_sources/getting_started/index.rst.txt delete mode 100644 docs/_sources/index.rst.txt delete mode 100644 docs/_sources/user_guide/index.rst.txt create mode 100644 docs/_static/Frame1.png create mode 100644 docs/_static/Frame2.png create mode 100644 docs/_static/Frame3.png create mode 100644 docs/_static/Frame4.png create mode 100644 docs/_static/horizontal_logo.PNG create mode 100644 docs/_static/horizontal_logo_dark.png create mode 100644 docs/_static/horizontal_logo_light.png create mode 100644 docs/_static/jquery-3.5.1.js create mode 100644 docs/_static/logo_eldorado.png create mode 100644 docs/_static/logo_lappis.png create mode 100644 docs/_static/logo_unb.svg create mode 100644 docs/_static/panels-bootstrap.5fd3999ee7762ccc51105388f4a9d115.css create mode 100644 docs/_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css create mode 100644 docs/_static/panels-variables.06eb56fa6e07937060861dad626602ad.css create mode 100644 docs/doxygen/index.html delete mode 100644 docs/genindex.html create mode 100644 docs/getting_started/index.html create mode 100644 docs/html/annotated.html create mode 100644 docs/html/bc_sd.png create mode 100644 docs/html/classannotate__data_1_1_annotate_data-members.html create mode 100644 docs/html/classannotate__data_1_1_annotate_data.html create mode 100644 docs/html/classes.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1feature__engineering_1_1_feature_engineering-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1feature__engineering_1_1_feature_engineering.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1key__smash_1_1_key_smash-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1key__smash_1_1_key_smash.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1regex_1_1_regex-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1regex_1_1_regex.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1word__embedding_1_1_word_embedding-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1feature__engineering_1_1word__embedding_1_1_word_embedding.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1model_1_1random__forest_1_1_random_forest_model-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1model_1_1random__forest_1_1_random_forest_model.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1pre__process__data_1_1augment__data_1_1_augment_data-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1pre__process__data_1_1augment__data_1_1_augment_data.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1pre__process__data_1_1pre__process__data_1_1_pre_process_data-members.html create mode 100644 docs/html/classhygia_1_1data__pipeline_1_1pre__process__data_1_1pre__process__data_1_1_pre_process_data.html create mode 100644 docs/html/classhygia_1_1parser_1_1_y_a_m_l__parser_1_1_y_a_m_l_parser-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1_y_a_m_l__parser_1_1_y_a_m_l_parser.html create mode 100644 docs/html/classhygia_1_1parser_1_1_y_a_m_l__parser_1_1_y_a_m_l_parser.png create mode 100644 docs/html/classhygia_1_1parser_1_1annotate__data__parser_1_1_annotate_data_parser-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1annotate__data__parser_1_1_annotate_data_parser.html create mode 100644 docs/html/classhygia_1_1parser_1_1annotate__data__parser_1_1_annotate_data_parser.png create mode 100644 docs/html/classhygia_1_1parser_1_1feature__engineering__parser_1_1_feature_engineering_parser-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1feature__engineering__parser_1_1_feature_engineering_parser.html create mode 100644 docs/html/classhygia_1_1parser_1_1feature__engineering__parser_1_1_feature_engineering_parser.png create mode 100644 docs/html/classhygia_1_1parser_1_1model__parser_1_1_model_parser-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1model__parser_1_1_model_parser.html create mode 100644 docs/html/classhygia_1_1parser_1_1model__parser_1_1_model_parser.png create mode 100644 docs/html/classhygia_1_1parser_1_1parser__base_1_1_parser_base-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1parser__base_1_1_parser_base.html create mode 100644 docs/html/classhygia_1_1parser_1_1parser__base_1_1_parser_base.png create mode 100644 docs/html/classhygia_1_1parser_1_1pre__processing__parser_1_1_pre_processing_parser-members.html create mode 100644 docs/html/classhygia_1_1parser_1_1pre__processing__parser_1_1_pre_processing_parser.html create mode 100644 docs/html/classhygia_1_1parser_1_1pre__processing__parser_1_1_pre_processing_parser.png create mode 100644 docs/html/dir_0d5961b63244dbb5decf45bc05eaa7c3.html create mode 100644 docs/html/dir_0eb1b5a43b0c8c28bb004ec4540a601a.html create mode 100644 docs/html/dir_3836cc05125af4c9824ab70f348a3ea5.html create mode 100644 docs/html/dir_58e6109ac17f9a85dc40764e86627f6a.html create mode 100644 docs/html/dir_6eee28b6f6c823bd37508cabbb2cbccd.html create mode 100644 docs/html/dir_70dcd5b75320c8bd61e96866e72ecc25.html create mode 100644 docs/html/dir_91a15d825a96576a4dcc58d71733340b.html create mode 100644 docs/html/docd.png create mode 100644 docs/html/doxygen.css create mode 100644 docs/html/dynsections.js create mode 100644 docs/html/functions.html create mode 100644 docs/html/functions_func.html create mode 100644 docs/html/hierarchy.html create mode 100644 docs/html/index.html create mode 100644 docs/html/jquery.js create mode 100644 docs/html/menu.js create mode 100644 docs/html/nav_fd.png create mode 100644 docs/html/nav_hd.png create mode 100644 docs/html/search/all_0.js create mode 100644 docs/html/search/all_1.js create mode 100644 docs/html/search/all_2.js create mode 100644 docs/html/search/all_3.js create mode 100644 docs/html/search/all_4.js create mode 100644 docs/html/search/all_5.js create mode 100644 docs/html/search/all_6.js create mode 100644 docs/html/search/all_7.js create mode 100644 docs/html/search/all_8.js create mode 100644 docs/html/search/all_9.js create mode 100644 docs/html/search/all_a.js create mode 100644 docs/html/search/all_b.js create mode 100644 docs/html/search/classes_0.js create mode 100644 docs/html/search/classes_1.js create mode 100644 docs/html/search/classes_2.js create mode 100644 docs/html/search/classes_3.js create mode 100644 docs/html/search/classes_4.js create mode 100644 docs/html/search/classes_5.js create mode 100644 docs/html/search/classes_6.js create mode 100644 docs/html/search/classes_7.js create mode 100644 docs/html/search/functions_0.js create mode 100644 docs/html/search/functions_1.js create mode 100644 docs/html/search/functions_2.js create mode 100644 docs/html/search/functions_3.js create mode 100644 docs/html/search/functions_4.js create mode 100644 docs/html/search/functions_5.js create mode 100644 docs/html/search/mag.svg create mode 100644 docs/html/search/mag_d.svg create mode 100644 docs/html/search/mag_seld.svg create mode 100644 docs/html/search/search.css create mode 100644 docs/html/search/search.js create mode 100644 docs/html/search/searchdata.js create mode 100644 docs/html/splitbard.png create mode 100644 docs/html/tab_ad.png create mode 100644 docs/html/tab_bd.png create mode 100644 docs/html/tab_hd.png create mode 100644 docs/html/tab_sd.png create mode 100644 docs/html/tabs.css delete mode 100644 docs/objects.inv delete mode 100644 docs/search.html delete mode 100644 docs/searchindex.js rename docs/source/{user_guide => doxygen}/.DS_Store (100%) create mode 100644 docs/source/doxygen/index.rst rename docs/source/{user_guide => doxygen}/templates/html_style_structure.html (100%) create mode 100644 docs/source/getting_started/index.rst create mode 100644 docs/source/getting_started/templates/html_style_structure.html create mode 100644 docs/xml/Doxyfile.xml create mode 100644 docs/xml/____init_____8py.xml create mode 100644 docs/xml/_y_a_m_l__parser_8py.xml create mode 100644 docs/xml/annotate__data_8py.xml create mode 100644 docs/xml/annotate__data__parser_8py.xml create mode 100644 docs/xml/augment__data_8py.xml create mode 100644 docs/xml/classannotate__data_1_1_annotate_data.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1feature__engineering_1_1feature__engineering_1_1_feature_engineering.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1feature__engineering_1_1key__smash_1_1_key_smash.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1feature__engineering_1_1regex_1_1_regex.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1feature__engineering_1_1word__embedding_1_1_word_embedding.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1model_1_1random__forest_1_1_random_forest_model.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1pre__process__data_1_1augment__data_1_1_augment_data.xml create mode 100644 docs/xml/classhygia_1_1data__pipeline_1_1pre__process__data_1_1pre__process__data_1_1_pre_process_data.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1_y_a_m_l__parser_1_1_y_a_m_l_parser.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1annotate__data__parser_1_1_annotate_data_parser.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1feature__engineering__parser_1_1_feature_engineering_parser.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1model__parser_1_1_model_parser.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1parser__base_1_1_parser_base.xml create mode 100644 docs/xml/classhygia_1_1parser_1_1pre__processing__parser_1_1_pre_processing_parser.xml create mode 100644 docs/xml/compound.xsd create mode 100644 docs/xml/const_8py.xml create mode 100644 docs/xml/data__pipeline_2____init_____8py.xml create mode 100644 docs/xml/data__pipeline_2feature__engineering_2____init_____8py.xml create mode 100644 docs/xml/data__pipeline_2model_2____init_____8py.xml create mode 100644 docs/xml/data__pipeline_2pre__process__data_2____init_____8py.xml create mode 100644 docs/xml/dir_0d5961b63244dbb5decf45bc05eaa7c3.xml create mode 100644 docs/xml/dir_0eb1b5a43b0c8c28bb004ec4540a601a.xml create mode 100644 docs/xml/dir_3836cc05125af4c9824ab70f348a3ea5.xml create mode 100644 docs/xml/dir_58e6109ac17f9a85dc40764e86627f6a.xml create mode 100644 docs/xml/dir_6eee28b6f6c823bd37508cabbb2cbccd.xml create mode 100644 docs/xml/dir_70dcd5b75320c8bd61e96866e72ecc25.xml create mode 100644 docs/xml/dir_91a15d825a96576a4dcc58d71733340b.xml create mode 100644 docs/xml/doxyfile.xsd create mode 100644 docs/xml/feature__engineering_8py.xml create mode 100644 docs/xml/feature__engineering__parser_8py.xml create mode 100644 docs/xml/index.xml create mode 100644 docs/xml/key__smash_8py.xml create mode 100644 docs/xml/main_8py.xml create mode 100644 docs/xml/model__parser_8py.xml create mode 100644 docs/xml/namespaceannotate__data.xml create mode 100644 docs/xml/namespacehygia.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1feature__engineering.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1feature__engineering_1_1feature__engineering.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1feature__engineering_1_1key__smash.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1feature__engineering_1_1regex.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1feature__engineering_1_1word__embedding.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1model.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1model_1_1random__forest.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1pre__process__data.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1pre__process__data_1_1augment__data.xml create mode 100644 docs/xml/namespacehygia_1_1data__pipeline_1_1pre__process__data_1_1pre__process__data.xml create mode 100644 docs/xml/namespacehygia_1_1main.xml create mode 100644 docs/xml/namespacehygia_1_1parser.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1_y_a_m_l__parser.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1annotate__data__parser.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1const.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1feature__engineering__parser.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1model__parser.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1parser__base.xml create mode 100644 docs/xml/namespacehygia_1_1parser_1_1pre__processing__parser.xml create mode 100644 docs/xml/parser_2____init_____8py.xml create mode 100644 docs/xml/parser__base_8py.xml create mode 100644 docs/xml/pre__process__data_8py.xml create mode 100644 docs/xml/pre__processing__parser_8py.xml create mode 100644 docs/xml/random__forest_8py.xml create mode 100644 docs/xml/regex_8py.xml create mode 100644 docs/xml/word__embedding_8py.xml create mode 100644 instalation_guide.md diff --git a/.gitignore b/.gitignore index 4b3beb8f..a9b263b7 100644 --- a/.gitignore +++ b/.gitignore @@ -135,4 +135,16 @@ poetry.lock .DS_Store # Custom paths -data/tmp/* \ No newline at end of file +data/tmp/* +# Sphinx +docs/html +docs/xml +docs/searchindex.js +docs/objects.inv +docs/.doctrees +docs/.buildinfo +docs/_sources +docs/_panels_static + +genindex.html +search.html diff --git a/README.md b/README.md index f66df719..82da64d3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,11 @@ ## What is it? -Hygia is a Python package that provides fast, flexible, and expressive data pipeline configuration through a YAML file to make working with Machine Learning data easy and intuitive. It consists of helping developers and users to register, organize, compare and share all their ML model metadata in a single place, facilitating the generation of requirements in the ETL (Extract, Transform and Load) process. Thus, the migration can be scaled, automated, and accelerated for similar contexts. +Hygia is a Python package that provides fast, flexible, and expressive data pipeline to make working with Machine Learning data easy and intuitive. The library is designed to make it easy for developers and data scientists to work with a wide range of data sources, perform data preprocessing, feature engineering, and train models with minimal effort. + +One of the key features of Hygia is its support for configuration through YAML files. With the help of a configuration file, users can easily specify the steps they want to run in their data pipeline, including extracting data from various sources, transforming the data, and loading it into the pipeline for processing. This not only makes it easier to automate the pipeline, but also enables users to compare and share their results with others. + +In addition, Hygia is designed to support the ETL (Extract, Transform and Load) process, making it an ideal solution for developers and data scientists looking to scale and automate their workflows. With its fast, flexible, and expressive data pipeline configuration, Hygia makes it easy to organize and manage all your ML model, saving time, effort and allowing you to focus on the most important aspects of your work. ## Main Features @@ -22,50 +26,26 @@ Hygia is a Python package that provides fast, flexible, and expressive data pipe - Visualize results in customized dashboards - Test on different databases -## Where to get it - -The source code is currently hosted on GitHub at: `https://github.com/hygia-org` - -## Installation from sources - -``` -python -m venv env -source env/bin/activate -pip install -r requirements-dev.txt -``` - -### Boilerplate +## Check the documentation -``` -examples/hygia_boilerplate.ipynb -``` +If you're looking to use the Hygia library and get a better understanding of how it works, you can check out the comprehensive documentation available at [Hygia Documentation](https://hygia-org.github.io/hygia/). This website provides a wealth of information on the library's capabilities and how to use it. -### Testing +In addition to the documentation, we also have a number of boilerplates available at [Examples](https://github.com/hygia-org/hygia/tree/main/examples). These boilerplates provide hands-on examples and practical explanations of using the library and the .yaml file, making it easier for you to get started with using Hygia. Whether you're a seasoned data scientist or just starting out, these resources will help you get the most out of the library. -``` -pytest --cov -``` +## Where to get it -### Documentation +The source code is currently hosted on GitHub at: `https://github.com/hygia-org` -We used sphinx to write the documentation +## Become a part of our growing community -To run locally, you need to install sphinx: +Are you looking for a way to contribute to an open-source project and make a difference in the field of data science? Then consider joining the Hygia community! Hygia is a powerful and versatile Python library for data pipeline and experimentation, and we're always looking for new contributors to help us improve and expand it. -``` -pip install sphinx -``` +If you're interested in contributing, be sure to check out our community [Contribution Guide](https://github.com/hygia-org/hygia/blob/main/CONTRIBUTING.md) and [Code of Conduct](https://github.com/hygia-org/hygia/blob/main/CODE_OF_CONDUCT.md). These resources will give you an idea of what kind of contributions are welcome, as well as the standards we expect from our contributors. -Then install the theme used: +And if you have any questions or want to get started, don't hesitate to reach out! You can create an issue on our GitHub repository, or send an email to isaque.alves@ime.usp.br. We're always happy to hear from potential contributors, and we're looking forward to working with you! -``` -pip install pydata-sphinx-theme -``` -And Run the project -``` -sphinx-build -b html source ./ -``` +## Installation from sources -And open the index.html +For experienced users of the library who are already a part of our community, we have put together a comprehensive [Installation Guide](https://github.com/hygia-org/hygia/blob/main/instalation_guide.md) to make the most of the features and functionalities offered by the Hygia library. \ No newline at end of file diff --git a/docs/.DS_Store b/docs/.DS_Store index 0ada139130c1f0b0cb78f34e0308a52997a91c49..7e9f797066bbd8f7299643789a8f01554e0b8224 100644 GIT binary patch literal 10244 zcmeHMO>Epm6n>K|jW^r0PMS>{S|p1V0;y36(5Q(Js=Ez>v`7irsBDy!#r94%ZXHjs zz1f5)(jGxbT#-0%;e>?50SR$JLWnCz4qQ0&+5;DmIF&au-i__uR0UP2L^G28o@d^h z@qB(i`(^=vl$-UJ01N=o@ZwZIiMKwDkMpai4a7Z9BPFO05P$;|!Uc~xJ<_T}A)pXY z2q**;0t$gA0Rha}ylDkV)m8Berfo?@=)jvO0g&dfTQuac4iGv< zOwE|KB^9bTr>q`GtV-e%gGhB8H@G-bGp21xr8*F)4kTWg#1#q=tD~MF#DSQSs=Go! zA<&BeuiZ7MK?n?*$@<;)n2lrHoqojYxd);l2QVb$Bd{O>7aU&gA4-!Mlz9GVX}c9} z$I{>0+nyUn)6>6@fx+BUCx)~kt)ShmY_e7*vZ7{Kwt_YOw8EHYcX-Rb<Xp(XXyrL16g} zTHd?uSvK_+{W6Opw#6m+Y`Br7fbyBdN|kNPas5W=>hByqfRee?VP24o4kgK;MeAh6 zXFkp6OXkhEQ-h0e4Q@aMfp5Vl@ELps-@#AtE8K@aNsdgAXURo!nY>1>k~hf$xk;AD z+hkd44|KfiLT3p{$r{q`r_A`(@FRH0GpL`m`~rHS4R_G19Q3FVJ&SwUPTH^FYjoVn zgufI}l45-0=b4*FdgI5LwN9n9lHPnro{1)+B=_Xxd!9%};LO|2qU@!_+ofcWg-54$ z)bVO=BB_BMb7%^{158H^OkOSzo*C$_Wj^dM%JEN|(m56o_T5HVMWGd(h^p7<;bn{!^oPg23Hy4!5 zs)-hpND7J6kxmX3Scmta4WGgn7-D~bpWz<-0T0MXoE)ae47ox~Ob$25TRb_4@Q+h> z(*qCZiAL)95P#E*Z6~A@s}N8KCzMUNq!Q&LC||iX688 a{LcVY|36vhsi`tw)&KwINcx}F|9=BC46@$< delta 236 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 E10e2g=Kufz literal 0 HcmV?d00001 diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle deleted file mode 100644 index ebb0450d2209da97dbbe631ae2c9311e5fe3c47d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13879 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 diff --git a/docs/.doctrees/getting_started/index.doctree b/docs/.doctrees/getting_started/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a421af3586e7660ebec3299d631bab5a877f4e94 GIT binary patch literal 6900 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 literal 0 HcmV?d00001 diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree deleted file mode 100644 index ea37a4eb9c2af077f2d76d834d3cbf4b4cd0437e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9059 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 j1