diff --git a/README.md b/README.md index f6d2f8c..f5e0102 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ So far, the following projects have been integrated to this repo: |[2048](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/2048)|[Krunal](https://github.com/gitkp11) |[Spotify Downloader](spotify_downloader)|[Sagar Patel](https://github.com/sagar627)| |[Download Page as PDF](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/Download-page-as-pdf)|[Jeremias Gomes](https://github.com/j3r3mias) +|[JSON file to YAML convertor](https://github.com/saksham117/Awesome-Python-Scripts/tree/master/json-to-yaml)|[Saksham Basandrai](https://github.com/saksham117) |[Independent RSA Communication Algorithm](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/RSA_Communication)|[Miguel Santos](https://github.com/wi6n3l) |[GithubBot](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/GithubBot)|[Abhilasha](https://github.com/Abhilasha06)| |[Translate CLI](https://github.com/hastagAB/Awesome-Python-Scripts/tree/master/TranslateCLI)|[Rodrigo Oliveira](https://github.com/rodrigocam)| diff --git a/Youtube_Video_Downloader/download_video.py b/Youtube_Video_Downloader/download_video.py index b6fd6df..56525b7 100644 --- a/Youtube_Video_Downloader/download_video.py +++ b/Youtube_Video_Downloader/download_video.py @@ -1,5 +1,5 @@ from pytube import YouTube -link = input('link to youtube video: ') +link = input('https://youtu.be/6M1rP2r672o') yt = Youtube(link) yt.streams.first().download() print('downloaded', link) diff --git a/json-to-yaml/Readme.md b/json-to-yaml/Readme.md new file mode 100644 index 0000000..9511393 --- /dev/null +++ b/json-to-yaml/Readme.md @@ -0,0 +1,19 @@ +## JSON To YAML Converter + +If you are working with config files or need to expose YAML via an API, you will probably find yourself needing to convert a file from JSON to YAML format. +So I have tried to automate the same, by writing the following python script + +For running this, you need to install/import the following libraries +``` + +- import json +- import yaml +``` + + +Then in command prompt you just need to type: +``` + +python json2yaml.py input_file.json output_file.yaml +``` +Here, input_file.json needs to be replaced with the name of your json file, and the output_file.yaml needs to be replaced with the name which you want for your yaml file. diff --git a/json-to-yaml/example.json b/json-to-yaml/example.json new file mode 100644 index 0000000..d5ca56d --- /dev/null +++ b/json-to-yaml/example.json @@ -0,0 +1,22 @@ +{ + "glossary": { + "title": "example glossary", + "GlossDiv": { + "title": "S", + "GlossList": { + "GlossEntry": { + "ID": "SGML", + "SortAs": "SGML", + "GlossTerm": "Standard Generalized Markup Language", + "Acronym": "SGML", + "Abbrev": "ISO 8879:1986", + "GlossDef": { + "para": "A meta-markup language, used to create markup languages such as DocBook.", + "GlossSeeAlso": ["GML", "XML"] + }, + "GlossSee": "markup" + } + } + } + } +} \ No newline at end of file diff --git a/json-to-yaml/json2yaml.py b/json-to-yaml/json2yaml.py new file mode 100644 index 0000000..41f4ea8 --- /dev/null +++ b/json-to-yaml/json2yaml.py @@ -0,0 +1,35 @@ +import json +import os +import sys +import yaml + +# Checking there is a file name passed +if len(sys.argv) > 1: + # Opening the file + if os.path.exists(sys.argv[1]): + source_file = open(sys.argv[1], "r") + source_content = json.load(source_file) + source_file.close() + # Failikng if the file isn't found + else: + print("ERROR: " + sys.argv[1] + " not found") + exit(1) +# No file, no usage +else: + print("Usage: json2yaml.py [target_file.yaml]") + +# Processing the conversion +output = yaml.dump(source_content) + +# If no target file send to stdout +if len(sys.argv) < 3: + print(output) +# If the target file already exists exit +elif os.path.exists(sys.argv[2]): + print("ERROR: " + sys.argv[2] + " already exists") + exit(1) +# Otherwise write to the specified file +else: + target_file = open(sys.argv[2], "w") + target_file.write(output) + target_file.close() \ No newline at end of file diff --git a/json-to-yaml/output.yaml b/json-to-yaml/output.yaml new file mode 100644 index 0000000..566b8e0 --- /dev/null +++ b/json-to-yaml/output.yaml @@ -0,0 +1,17 @@ +glossary: + GlossDiv: + GlossList: + GlossEntry: + Abbrev: ISO 8879:1986 + Acronym: SGML + GlossDef: + GlossSeeAlso: + - GML + - XML + para: A meta-markup language, used to create markup languages such as DocBook. + GlossSee: markup + GlossTerm: Standard Generalized Markup Language + ID: SGML + SortAs: SGML + title: S + title: example glossary diff --git a/json-to-yaml/requirements.txt b/json-to-yaml/requirements.txt new file mode 100644 index 0000000..b9f0b38 --- /dev/null +++ b/json-to-yaml/requirements.txt @@ -0,0 +1,317 @@ +# This file may be used to create an environment using: +# $ conda create --name --file +# platform: win-64 +_ipyw_jlab_nb_ext_conf=0.1.0=py37_0 +alabaster=0.7.12=py37_0 +anaconda=2020.02=py37_0 +anaconda-client=1.7.2=py37_0 +anaconda-navigator=1.9.12=py37_0 +anaconda-project=0.8.4=py_0 +argh=0.26.2=py37_0 +asn1crypto=1.3.0=py37_0 +astroid=2.3.3=py37_0 +astropy=4.0=py37he774522_0 +atomicwrites=1.3.0=py37_1 +attrs=19.3.0=py_0 +autopep8=1.4.4=py_0 +babel=2.8.0=py_0 +backcall=0.1.0=py37_0 +backports=1.0=py_2 +backports.functools_lru_cache=1.6.1=py_0 +backports.shutil_get_terminal_size=1.0.0=py37_2 +backports.tempfile=1.0=py_1 +backports.weakref=1.0.post1=py_1 +bcrypt=3.1.7=py37he774522_0 +beautifulsoup4=4.8.2=py37_0 +bitarray=1.2.1=py37he774522_0 +bkcharts=0.2=py37_0 +blas=1.0=mkl +bleach=3.1.0=py37_0 +blosc=1.16.3=h7bd577a_0 +bokeh=1.4.0=py37_0 +boto=2.49.0=py37_0 +bottleneck=1.3.2=py37h2a96729_0 +bzip2=1.0.8=he774522_0 +ca-certificates=2020.1.1=0 +certifi=2019.11.28=py37_0 +cffi=1.14.0=py37h7a1dbc1_0 +chardet=3.0.4=py37_1003 +click=7.0=py37_0 +cloudpickle=1.3.0=py_0 +clyent=1.2.2=py37_1 +colorama=0.4.3=py_0 +comtypes=1.1.7=py37_0 +conda=4.8.5=py37_0 +conda-build=3.18.11=py37_0 +conda-env=2.6.0=1 +conda-package-handling=1.6.0=py37h62dcd97_0 +conda-verify=3.4.2=py_1 +console_shortcut=0.1.1=4 +contextlib2=0.6.0.post1=py_0 +convertapi=1.4.0=pypi_0 +cryptography=2.8=py37h7a1dbc1_0 +curl=7.68.0=h2a8f88b_0 +cycler=0.10.0=py37_0 +cython=0.29.15=py37ha925a31_0 +cytoolz=0.10.1=py37he774522_0 +dask=2.11.0=py_0 +dask-core=2.11.0=py_0 +decorator=4.4.1=py_0 +defusedxml=0.6.0=py_0 +diff-match-patch=20181111=py_0 +distributed=2.11.0=py37_0 +docutils=0.16=py37_0 +easygui=0.98.1=py37_0 +entrypoints=0.3=py37_0 +et_xmlfile=1.0.1=py37_0 +fastcache=1.1.0=py37he774522_0 +filelock=3.0.12=py_0 +flake8=3.7.9=py37_0 +flask=1.1.1=py_0 +flask-cors=3.0.8=py_0 +freetype=2.9.1=ha9979f8_1 +fsspec=0.6.2=py_0 +future=0.18.2=py37_0 +get_terminal_size=1.0.0=h38e98db_0 +gevent=1.4.0=py37he774522_0 +glob2=0.7=py_0 +greenlet=0.4.15=py37hfa6e2cd_0 +h5py=2.10.0=py37h5e291fa_0 +hdf5=1.10.4=h7ebc959_0 +heapdict=1.0.1=py_0 +html5lib=1.0.1=py37_0 +hypothesis=5.5.4=py_0 +icc_rt=2019.0.0=h0cc432a_1 +icu=58.2=ha66f8fd_1 +idna=2.8=py37_0 +imageio=2.6.1=py37_0 +imagesize=1.2.0=py_0 +importlib_metadata=1.5.0=py37_0 +imutils=0.5.3=pypi_0 +intel-openmp=2020.0=166 +intervaltree=3.0.2=py_0 +ipykernel=5.1.4=py37h39e3cac_0 +ipython=7.12.0=py37h5ca1d4c_0 +ipython_genutils=0.2.0=py37_0 +ipywidgets=7.5.1=py_0 +isort=4.3.21=py37_0 +itsdangerous=1.1.0=py37_0 +jdcal=1.4.1=py_0 +jedi=0.14.1=py37_0 +jinja2=2.11.1=py_0 +joblib=0.14.1=py_0 +jpeg=9b=hb83a4c4_2 +json5=0.9.1=py_0 +jsonschema=3.2.0=py37_0 +jupyter=1.0.0=py37_7 +jupyter_client=5.3.4=py37_0 +jupyter_console=6.1.0=py_0 +jupyter_core=4.6.1=py37_0 +jupyterlab=1.2.6=pyhf63ae98_0 +jupyterlab_server=1.0.6=py_0 +keyring=21.1.0=py37_0 +kiwisolver=1.1.0=py37ha925a31_0 +krb5=1.17.1=hc04afaa_0 +lazy-object-proxy=1.4.3=py37he774522_0 +libarchive=3.3.3=h0643e63_5 +libcurl=7.68.0=h2a8f88b_0 +libiconv=1.15=h1df5818_7 +liblief=0.9.0=ha925a31_2 +libpng=1.6.37=h2a8f88b_0 +libsodium=1.0.16=h9d3ae62_0 +libspatialindex=1.9.3=h33f27b4_0 +libssh2=1.8.2=h7a1dbc1_0 +libtiff=4.1.0=h56a325e_0 +libxml2=2.9.9=h464c3ec_0 +libxslt=1.1.33=h579f668_0 +llvmlite=0.31.0=py37ha925a31_0 +locket=0.2.0=py37_1 +lxml=4.5.0=py37h1350720_0 +lz4-c=1.8.1.2=h2fa13f4_0 +lzo=2.10=h6df0209_2 +m2w64-gcc-libgfortran=5.3.0=6 +m2w64-gcc-libs=5.3.0=7 +m2w64-gcc-libs-core=5.3.0=7 +m2w64-gmp=6.1.0=2 +m2w64-libwinpthread-git=5.0.0.4634.697f757=2 +markupsafe=1.1.1=py37he774522_0 +matplotlib=3.1.3=py37_0 +matplotlib-base=3.1.3=py37h64f37c6_0 +mccabe=0.6.1=py37_1 +menuinst=1.4.16=py37he774522_0 +mistune=0.8.4=py37he774522_0 +mkl=2020.0=166 +mkl-service=2.3.0=py37hb782905_0 +mkl_fft=1.0.15=py37h14836fe_0 +mkl_random=1.1.0=py37h675688f_0 +mock=4.0.1=py_0 +more-itertools=8.2.0=py_0 +mpmath=1.1.0=py37_0 +msgpack-python=0.6.1=py37h74a9793_1 +msys2-conda-epoch=20160418=1 +multipledispatch=0.6.0=py37_0 +mysql-connector-python=8.0.20=pypi_0 +navigator-updater=0.2.1=py37_0 +nbconvert=5.6.1=py37_0 +nbformat=5.0.4=py_0 +networkx=2.4=py_0 +nltk=3.4.5=py37_0 +nose=1.3.7=py37_2 +notebook=6.0.3=py37_0 +numba=0.48.0=py37h47e9c7a_0 +numexpr=2.7.1=py37h25d0782_0 +numpy=1.18.1=py37h93ca92e_0 +numpy-base=1.18.1=py37hc3f5095_1 +numpydoc=0.9.2=py_0 +olefile=0.46=py37_0 +opencv-contrib-python=4.3.0.36=pypi_0 +opencv-python=4.3.0.36=pypi_0 +openpyxl=3.0.3=py_0 +openssl=1.1.1d=he774522_4 +packaging=20.1=py_0 +pandas=1.0.1=py37h47e9c7a_0 +pandoc=2.2.3.2=0 +pandocfilters=1.4.2=py37_1 +paramiko=2.7.1=py_0 +parso=0.5.2=py_0 +partd=1.1.0=py_0 +path=13.1.0=py37_0 +path.py=12.4.0=0 +pathlib2=2.3.5=py37_0 +pathtools=0.1.2=py_1 +patsy=0.5.1=py37_0 +pep8=1.7.1=py37_0 +pexpect=4.8.0=py37_0 +pickleshare=0.7.5=py37_0 +pillow=7.0.0=py37hcc1f983_0 +pip=20.0.2=py37_1 +pkginfo=1.5.0.1=py37_0 +pluggy=0.13.1=py37_0 +ply=3.11=py37_0 +portaudio=19.6.0=he774522_4 +powershell_shortcut=0.0.1=3 +prometheus_client=0.7.1=py_0 +prompt_toolkit=3.0.3=py_0 +psutil=5.6.7=py37he774522_0 +py=1.8.1=py_0 +py-lief=0.9.0=py37ha925a31_2 +pyaudio=0.2.11=py37he774522_2 +pycodestyle=2.5.0=py37_0 +pycosat=0.6.3=py37he774522_0 +pycparser=2.19=py37_0 +pycrypto=2.6.1=py37hfa6e2cd_9 +pycurl=7.43.0.5=py37h7a1dbc1_0 +pydocstyle=4.0.1=py_0 +pyflakes=2.1.1=py37_0 +pygments=2.5.2=py_0 +pylint=2.4.4=py37_0 +pynacl=1.3.0=py37h62dcd97_0 +pyodbc=4.0.30=py37ha925a31_0 +pyopenssl=19.1.0=py37_0 +pyparsing=2.4.6=py_0 +pyqt=5.9.2=py37h6538335_2 +pyreadline=2.1=py37_1 +pyrsistent=0.15.7=py37he774522_0 +pysocks=1.7.1=py37_0 +pytables=3.6.1=py37h1da0976_0 +pytest=5.3.5=py37_0 +pytest-arraydiff=0.3=py37h39e3cac_0 +pytest-astropy=0.8.0=py_0 +pytest-astropy-header=0.1.2=py_0 +pytest-doctestplus=0.5.0=py_0 +pytest-openfiles=0.4.0=py_0 +pytest-remotedata=0.3.2=py37_0 +python=3.7.6=h60c2a47_2 +python-dateutil=2.8.1=py_0 +python-jsonrpc-server=0.3.4=py_0 +python-language-server=0.31.7=py37_0 +python-libarchive-c=2.8=py37_13 +python_abi=3.7=1_cp37m +pytube=9.6.0=pypi_0 +pytube3=9.6.4=pypi_0 +pytz=2019.3=py_0 +pywavelets=1.1.1=py37he774522_0 +pywin32=227=py37he774522_1 +pywin32-ctypes=0.2.0=py37_1000 +pywinpty=0.5.7=py37_0 +pyyaml=5.3=py37he774522_0 +pyzmq=18.1.1=py37ha925a31_0 +qdarkstyle=2.8=py_0 +qt=5.9.7=vc14h73c81de_0 +qtawesome=0.6.1=py_0 +qtconsole=4.6.0=py_1 +qtpy=1.9.0=py_0 +requests=2.22.0=py37_1 +rope=0.16.0=py_0 +rtree=0.9.3=py37h21ff451_0 +ruamel_yaml=0.15.87=py37he774522_0 +scikit-image=0.16.2=py37h47e9c7a_0 +scikit-learn=0.22.1=py37h6288b17_0 +scipy=1.4.1=py37h9439919_0 +seaborn=0.10.0=py_0 +send2trash=1.5.0=py37_0 +setuptools=45.2.0=py37_0 +simplegeneric=0.8.1=py37_2 +singledispatch=3.4.0.3=py37_0 +sip=4.19.8=py37h6538335_0 +six=1.14.0=py37_0 +snappy=1.1.7=h777316e_3 +snowballstemmer=2.0.0=py_0 +sortedcollections=1.1.2=py37_0 +sortedcontainers=2.1.0=py37_0 +soupsieve=1.9.5=py37_0 +speechrecognition=3.6.3=py37_1000 +sphinx=2.4.0=py_0 +sphinxcontrib=1.0=py37_1 +sphinxcontrib-applehelp=1.0.1=py_0 +sphinxcontrib-devhelp=1.0.1=py_0 +sphinxcontrib-htmlhelp=1.0.2=py_0 +sphinxcontrib-jsmath=1.0.1=py_0 +sphinxcontrib-qthelp=1.0.2=py_0 +sphinxcontrib-serializinghtml=1.1.3=py_0 +sphinxcontrib-websupport=1.2.0=py_0 +spyder=4.0.1=py37_0 +spyder-kernels=1.8.1=py37_0 +sqlalchemy=1.3.13=py37he774522_0 +sqlite=3.31.1=he774522_0 +statsmodels=0.11.0=py37he774522_0 +sympy=1.5.1=py37_0 +tbb=2020.0=h74a9793_0 +tblib=1.6.0=py_0 +terminado=0.8.3=py37_0 +testpath=0.4.4=py_0 +tk=8.6.8=hfa6e2cd_0 +toolz=0.10.0=py_0 +tornado=6.0.3=py37he774522_3 +tqdm=4.42.1=py_0 +traitlets=4.3.3=py37_0 +typing-extensions=3.7.4.3=pypi_0 +ujson=1.35=py37hfa6e2cd_0 +unicodecsv=0.14.1=py37_0 +urllib3=1.25.8=py37_0 +vc=14.1=h0510ff6_4 +vs2015_runtime=14.16.27012=hf0eaf9b_1 +watchdog=0.10.2=py37_0 +wcwidth=0.1.8=py_0 +webencodings=0.5.1=py37_1 +werkzeug=1.0.0=py_0 +wheel=0.34.2=py37_0 +widgetsnbextension=3.5.1=py37_0 +win_inet_pton=1.1.0=py37_0 +win_unicode_console=0.5=py37_0 +wincertstore=0.2=py37_0 +winpty=0.4.3=4 +wrapt=1.11.2=py37he774522_0 +xlrd=1.2.0=py37_0 +xlsxwriter=1.2.7=py_0 +xlwings=0.17.1=py37_0 +xlwt=1.3.0=py37_0 +xmltodict=0.12.0=py_0 +xz=5.2.4=h2fa13f4_4 +yaml=0.1.7=hc54c509_2 +yapf=0.28.0=py_0 +zeromq=4.3.1=h33f27b4_3 +zict=1.0.0=py_0 +zipp=2.2.0=py_0 +zlib=1.2.11=h62dcd97_3 +zstd=1.3.7=h508b16e_0