From b314d441c18a310219679ca017cec827594ba63f Mon Sep 17 00:00:00 2001 From: sandip-baidya Date: Mon, 14 Dec 2020 19:53:08 +0530 Subject: [PATCH] Added/Modified Docstrings * modified + added docstrings * added files to gitignore * added docs/ folder * removed spaces * Removed all the spaces from doc strings --- .gitignore | 3 + docs/Makefile | 20 ++++++ docs/codes-rst/natural_photo_se_text.rst | 7 ++ docs/codes-rst/photo_se_nikali_awaj.rst | 8 +++ docs/codes-rst/photo_se_text.rst | 6 ++ docs/codes-rst/text_bol_uthega.rst | 26 ++++++++ docs/conf.py | 51 ++++++++++++++ docs/debug.log | 3 + docs/index.rst | 26 ++++++++ docs/make.bat | 35 ++++++++++ docs/references.rst | 13 ++++ freshlybuiltimagebol/bhasha_codes.py | 2 +- freshlybuiltimagebol/text_bol_uthega.py | 84 +++++++++++++++++++++--- 13 files changed, 274 insertions(+), 10 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/codes-rst/natural_photo_se_text.rst create mode 100644 docs/codes-rst/photo_se_nikali_awaj.rst create mode 100644 docs/codes-rst/photo_se_text.rst create mode 100644 docs/codes-rst/text_bol_uthega.rst create mode 100644 docs/conf.py create mode 100644 docs/debug.log create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/references.rst diff --git a/.gitignore b/.gitignore index 8d35cb3..afdccad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ __pycache__ *.pyc +docs/_build +docs/_static +docs/_templates diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/codes-rst/natural_photo_se_text.rst b/docs/codes-rst/natural_photo_se_text.rst new file mode 100644 index 0000000..923240f --- /dev/null +++ b/docs/codes-rst/natural_photo_se_text.rst @@ -0,0 +1,7 @@ +NaturalPhotoShabd +######################### + +.. module:: freshlybuiltimagebol.natural_photo_se_text + +.. autoclass:: NaturalPhotoShabd + diff --git a/docs/codes-rst/photo_se_nikali_awaj.rst b/docs/codes-rst/photo_se_nikali_awaj.rst new file mode 100644 index 0000000..ce838ff --- /dev/null +++ b/docs/codes-rst/photo_se_nikali_awaj.rst @@ -0,0 +1,8 @@ +PhotoAwaj +######### + +.. module:: freshlybuiltimagebol.photo_se_nikali_awaj + +.. autoclass:: PhotoAwaj + +..note:: function needs reviewing/testing because they rely on PhotoShabd class \ No newline at end of file diff --git a/docs/codes-rst/photo_se_text.rst b/docs/codes-rst/photo_se_text.rst new file mode 100644 index 0000000..fa74f0f --- /dev/null +++ b/docs/codes-rst/photo_se_text.rst @@ -0,0 +1,6 @@ +PhotoShabd +########### + +.. module:: freshlybuiltimagebol.photo_se_text + +.. autoclass:: PhotoShabd \ No newline at end of file diff --git a/docs/codes-rst/text_bol_uthega.rst b/docs/codes-rst/text_bol_uthega.rst new file mode 100644 index 0000000..a854dcd --- /dev/null +++ b/docs/codes-rst/text_bol_uthega.rst @@ -0,0 +1,26 @@ +ShabDhwani +############ + +.. module:: freshlybuiltimagebol.text_bol_uthega + +.. autoclass:: ShabdDhwani + +shabd_ki_bhasha_jaano +********************** + +.. automethod:: ShabdDhwani.shabd_ki_bhasha_jaano + +bhasa_badlkr_kya_bole +********************** + +.. automethod:: ShabdDhwani.bhasa_badlkr_kya_bole + +shabd_se_dhwani +*************** + +.. automethod:: ShabdDhwani.shabd_se_dhwani + +shabd_ki_bhasha_badlo +********************** + +.. automethod:: ShabdDhwani.shabd_ki_bhasha_badlo \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..b439f02 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,51 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + +# -- Project information ----------------------------------------------------- + +project = 'Freshlybuiltimagebol' +copyright = '2020, Freshlybuilt' +# author = 'Sandip Baidya' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ['sphinx.ext.autodoc','sphinx.ext.napoleon', 'sphinx.ext.coverage','sphinx.ext.autosectionlabel'] + + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] \ No newline at end of file diff --git a/docs/debug.log b/docs/debug.log new file mode 100644 index 0000000..6b8f051 --- /dev/null +++ b/docs/debug.log @@ -0,0 +1,3 @@ +[1023/165629.712:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) +[1024/111444.337:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) +[1028/162129.810:ERROR:directory_reader_win.cc(43)] FindFirstFile: The system cannot find the path specified. (0x3) diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..3524e0b --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,26 @@ +.. Freshlybuiltimagebol documentation master file, created by + sphinx-quickstart on Mon Oct 19 14:15:48 2020. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Freshlybuiltimagebol Library +============================== + +Freshlybuiltimagebol library is all about playing with images, texts and their tranlations to different languages along with generation of their corresponding audio files. + +| ``freshlybuiltimagebol = freshlybuilt + image + bol`` where **bol** is a ``Hindi`` word which in ``English`` translates to **speak**. You would notice that all of our classes and functions are named in ``Hindi``. Too much hassle? Yes, definitely, especially if you do not speak Hindi. + +But the main aim of creating this library is to introduce programming to Hindi-speaking beginners who find it difficult to appraoch programming because of the language barrier. + +.. toctree:: + :maxdepth: 1 + :caption: Table Of Contents: + + references + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` \ No newline at end of file diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..922152e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/references.rst b/docs/references.rst new file mode 100644 index 0000000..ba85fc9 --- /dev/null +++ b/docs/references.rst @@ -0,0 +1,13 @@ +References +########### + +Here you will find detailed information about all the classes and their corresponding functions listed under the ``freshlybuiltimagebol`` library. + +.. toctree:: + :maxdepth: 3 + :caption: Table of Contents + + codes-rst/text_bol_uthega + codes-rst/natural_photo_se_text + codes-rst/photo_se_text + codes-rst/photo_se_nikali_awaj \ No newline at end of file diff --git a/freshlybuiltimagebol/bhasha_codes.py b/freshlybuiltimagebol/bhasha_codes.py index 6ea24f0..a6175e3 100644 --- a/freshlybuiltimagebol/bhasha_codes.py +++ b/freshlybuiltimagebol/bhasha_codes.py @@ -107,4 +107,4 @@ 'he': 'Hebrew', } -bhasha_codes = dict(map(reversed, bhasha_kosh.items())) +bhasha_codes = dict(map(reversed, bhasha_kosh.items())) \ No newline at end of file diff --git a/freshlybuiltimagebol/text_bol_uthega.py b/freshlybuiltimagebol/text_bol_uthega.py index 276f41c..03a3915 100644 --- a/freshlybuiltimagebol/text_bol_uthega.py +++ b/freshlybuiltimagebol/text_bol_uthega.py @@ -5,6 +5,14 @@ class ShabdDhwani: + """ + + A class used for translation and audio generation of texts. + + The class :class:`ShabdDhwani` is made up of two two Hindi words: ``Shabd`` meaning words and ``Dhwani`` meaning sound. This class, therefore, lets you play with texts and their translations to different languages along with their sounds. You can translate a text and also listen to it, in a particular language. + + """ + bhasha_codes = dict(map(reversed, bhasha_kosh.items())) def code_se_naam(bhasha_code): @@ -12,29 +20,87 @@ def code_se_naam(bhasha_code): return bhasha def shabd_se_dhwani(shabd, bhasha, filename): - """ shabd = text, - bhasaa = language(mainly allowed in code) - = file - filename=app//audio.mp3 - anuvadak = Translator - anuvadit = Translated - """ - # translates the text into german language + """ + + Listen to text in audio, in a specific language. + + This function accepts a text and a corresponding language, and generates an audio file of that text in that language. + + :param shabd: text that you want to generate an audio file for. + :type shabd: string + :param bhasha: Language that you want the audio to be in. + :type bhasha: string + :param filename: path/to/filename.mp3 file name must be fed as a string. For e.g. ``shabd_se_dhwani("I am happy", "english", "happy.mp3")`` will save an audio file called ``happy.mp3`` in the same folder as your python script. + :type filename: string + + >>> from freshlybuiltimage.text_bol_uthega import ShabdDhwani + >>> import os + >>> ShabdDhwani.shabd_se_dhwani("This is a wonderful world.", "english", "trans.mp3") + >>> os.startfile("trans.mp3") + + """ + bhasha = ShabdDhwani.code_se_naam(bhasha) anuvadak = Translator().translate(shabd, dest=bhasha) anuvadit_file = gTTS(text=anuvadak.text, lang=anuvadak.dest) anuvadit_file.save(filename) def shabd_ki_bhasha_badlo(shabd, bhasha): + """ + + Translates a string from one language to other + + :param shabd: The text that you want to translate. + :type shabd: string + :param bhasha: The language that you want to translate your text into. + :type bhasha: string + :returns: translated text + :rtype: string + + >>> from freshlybuiltimage.text_bol_uthega import ShabdDhwani + >>> print(ShabdDhwani.shabd_ki_bhasha_badlo("I am so happy!", 'french')) + Je suis très heureux. + + """ + bhasha = ShabdDhwani.code_se_naam(bhasha) return Translator().translate(shabd, dest=bhasha).text def bhasa_badlkr_kya_bole(shabd, bhasha): + """ + + Translate a text from one language to another. + + :param shabd: orginal text that needs to be translated + :type shabd: string + :param bhasha: language into which the text needs to be translated + :type bhasha: string + :returns: translated text + :rtype: string + + >>> from freshlybuiltimage.text_bol_uthega import ShabdDhwani + >>>print(ShabdDhwani.bhasa_badlkr_kya_bole("I am so happy", "hindi")) + yah ek adbhut duniya hai + + """ bhasha = ShabdDhwani.code_se_naam(bhasha) return Translator().translate(shabd, dest=bhasha).pronunciation def shabd_ki_bhasha_jaano(shabd): + """ + + Know the language of the text + + :param shabd: text + :type shabd: string + :returns: language of the text + :rtype: string + + >>> print(ShabdDhwani.shabd_ki_bhasha_jaano("Itu oru aṟputamāṉa ulakam")) + tamil + + """ return bhasha_kosh[Translator().detect(shabd).lang] def shabd_ki_bhasha_jaano_code(shabd): - return Translator().detect(shabd).lang + return Translator().detect(shabd).lang \ No newline at end of file