python-language-server | An implementation of the Language Server Protocol for Python

 by   palantir Python Version: 0.36.2 License: MIT

kandi X-RAY | python-language-server Summary

kandi X-RAY | python-language-server Summary

python-language-server is a Python library. python-language-server has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has high support. You can install using 'pip install python-language-server' or download it from GitHub, PyPI.

An implementation of the Language Server Protocol for Python
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              python-language-server has a highly active ecosystem.
              It has 2538 star(s) with 281 fork(s). There are 214 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 156 open issues and 366 have been closed. On average issues are closed in 99 days. There are 28 open pull requests and 0 closed requests.
              OutlinedDot
              It has a negative sentiment in the developer community.
              The latest version of python-language-server is 0.36.2

            kandi-Quality Quality

              python-language-server has 0 bugs and 0 code smells.

            kandi-Security Security

              python-language-server has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              python-language-server code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              python-language-server is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              python-language-server releases are available to install and integrate.
              Deployable package is available in PyPI.
              Build file is available. You can build the component from source.
              python-language-server saves you 2719 person hours of effort in developing the same functionality from scratch.
              It has 5892 lines of code, 420 functions and 65 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed python-language-server and discovered the below as its top functions. This is intended to give you an instant insight into python-language-server implemented functionality, and help decide if they suit your requirements.
            • Return a setuptools cmdclass
            • Build a ConfigParser from a root
            • Get the project root directory
            • Get version information
            • Generate symbols
            • Return the name of the symbol
            • Returns the settings for the configuration
            • Create the versioneer config file
            • Install versioneer
            • Compute the ranges for the pyls file
            • Set sys stdin and stdout
            • Debounce a function
            • Configure the root logger
            • Start a TCP server
            • Help for pyls signatures
            • Scans the contents of the setup py py file
            • Rename document
            • Add command line arguments to the given parser
            • Provide documentation for a given position
            • Highlight document references
            • Return a list of reference references
            • Format a range
            • Extract version information from VCS
            • Run pylint on a document
            • Provide capabilities
            • Implements Pyls import
            Get all kandi verified functions for this library.

            python-language-server Key Features

            No Key Features are available at this moment for python-language-server.

            python-language-server Examples and Code Snippets

            lark-language-server,Development
            Pythondot img1Lines of Code : 3dot img1License : Permissive (MIT)
            copy iconCopy
            ├── lark_language_server  # The lang server python package
            └── editors   # Editor specific extensions
                └── vscode   # VSCode language server client extension
              
            Cannot update spyder=5.1.5 on new anaconda install
            Pythondot img2Lines of Code : 5dot img2License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            conda remove spyder
            conda remove python-language-server
            conda update anaconda
            conda install spyder=5.1.5
            
            How to create a requirements.txt file in Django project?
            Pythondot img3Lines of Code : 4dot img3License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            python -m pip freeze 
            
            pip freeze > requirements.txt
            
            Telegram bot on Heroku returns ModuleNotFoundError
            Pythondot img4Lines of Code : 6dot img4License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            [packages]
            python-telegram-bot = "*"
            python-google-places = "*"
            
            [dev-packages]
            
            Python3 counting UTF-16 code points in a string
            Pythondot img5Lines of Code : 5dot img5License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            def utf16len(c):
                """Returns the length of the single character 'c'
                   in UTF-16 code units."""
                return 1 if ord(c) < 65536 else 2
            
            Can't install spyder
            Pythondot img6Lines of Code : 4dot img6License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            pip install pyqt5
            
            pip install spyder
            
            Is there any way I can get this input colorized in VSCode?
            Pythondot img7Lines of Code : 28dot img7License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            textmate scopes
               support.function.builtin.python
               meta.function-call.python
               meta.function-call.arguments.python
               meta.function-call.python
               source.python
            
            foreground  meta.function-call.arguments.python s
            Trouble installing turbodbc
            Pythondot img8Lines of Code : 4dot img8License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            sudo apt-get install libboost-locale-dev
            
            sudo apt-get install libboost-all-dev
            
            copy iconCopy
            def func():
                pass
            
            "error: command 'gcc' failed with exit status 1" when trying to install python-language-server
            Pythondot img10Lines of Code : 4dot img10License : Strong Copyleft (CC BY-SA 4.0)
            copy iconCopy
            ./python/py_defines.h:39:10: fatal error: Python.h: No such file or directory
            
            sudo dnf provides '*/Python.h'
            

            Community Discussions

            QUESTION

            Application launch error in Anaconda Navigator - Application spyder launch may have produced errors
            Asked 2022-Jan-25 at 22:58

            I've followed these steps in order to update Spyder:

            conda remove spyder conda remove python-language-server conda update anaconda conda install spyder=5.1.5

            As advised in post Cannot update spyder=5.1.5 on new anaconda install

            However, I cannot open Spyder anymore form my anaconda navigator...

            It gives me the error: Application spyder launch may have produced error /Users/me/opt/anaconda3/bin/pythonw: line 3: /Users/me/opt/anaconda3/python.app/Contents/MacOS/python: No such file or directory

            Does anyone know what the issue might be?

            ...

            ANSWER

            Answered 2022-Jan-25 at 22:58

            i ran into the same problem. I solved it now, here is what i have done.
            Steps to fix it:

            • open your terminal
            • navigate to /opt/anaconda3/bin
            • type nano pythonw
            • the last line of the file should read /opt/anaconda3/python.app/Contents/MacOS/python "$@"
            • this line should be /opt/anaconda3/python.app/pythonapp/Contents/MacOS/python "$@" (the pythonapp part is missing)
            • safe and close
            • it should work now

            Explanation:
            There is a file named python, but in a different path (/opt/anaconda3/python.app/pythonapp/Contents/MacOS/python). So I guess, that the internal path is set wrong or somebody forgot to change it. That means, that as soon as you hit the "launch" button, the navigator is looking at the wrong place. We either have to adjust that path manually or wait for a solution from the development team.
            Hope i could help

            Source https://stackoverflow.com/questions/70124478

            QUESTION

            UnsatisfiableError on importing environment pywin32==300 (Requested package -> Available versions)
            Asked 2021-Dec-03 at 14:58

            Good day

            I am getting an error while importing my environment:

            ...

            ANSWER

            Answered 2021-Dec-03 at 09:22

            Build tags in you environment.yml are quite strict requirements to satisfy and most often not needed. In your case, changing the yml file to

            Source https://stackoverflow.com/questions/70209921

            QUESTION

            Why lsp-mode prompt "command pyls is not present on the path" in emacs?
            Asked 2021-Oct-17 at 04:09

            OS: Arch Linux

            I follow the document and I enter pip install 'python-language-server[all]' --user in the terminal at last. After opening a python file in Emacs, lsp-mode promat me "command pyls is not present on the path" and no any completion list. But I can run it in the terminal by entering pyls. Here is my init-lsp.el.

            ...

            ANSWER

            Answered 2021-Oct-17 at 03:34

            I seem to have solved it. Emacs cannot find the executable for pyls because the directory of this file is not in the environment variable of Emacs. Execute M-x setenv RET PATH in Emacs, and then set the environment variable. I filled in /home/liu/.local/bin

            Source https://stackoverflow.com/questions/69601017

            QUESTION

            Trying to Configure pyls through nvim-lspconfig
            Asked 2021-Oct-02 at 09:40

            I'm trying to switch from vscode to neovim. I have coc.nvim configured for pyright but now neovim provides native support for language-server. So I tried to configure python-language-server. I have installed pyls by pip install python-language-server. I went through the documentation for lsp-quickstart. It says that I just need to add neovim/nvim-lspconfig to my plugins and then add lua require('lspconfig').pyls.setup{} to my init.vim. After refreshing I'm getting Error:

            ...

            ANSWER

            Answered 2021-Oct-02 at 09:40

            Hey so it looks like there is a new fork of pyls. I had the same issue and the following worked for me!

            See Here:

            https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md#pylsp

            And Here:

            https://github.com/python-lsp/python-lsp-server

            Try:

            Source https://stackoverflow.com/questions/69405029

            QUESTION

            AttributeError: could not import keras and segmentation models
            Asked 2021-Jul-02 at 05:33

            I am trying to import segmentation models and keras and i am getting an attribute error, i am using tensor flow version 2.5.0

            ...

            ANSWER

            Answered 2021-Jul-02 at 05:33

            I have solved my issue by adding tf.compat.v1.enable_eager_execution() to import and it works fine

            Source https://stackoverflow.com/questions/68209795

            QUESTION

            In VSCode, prevent PyLance warning: Invalid character in identifier
            Asked 2021-May-23 at 19:51

            After an update to VSCode's Python plugin, PyLance is causing trouble.

            ...

            ANSWER

            Answered 2021-May-23 at 19:51

            It's a bug: https://github.com/microsoft/pylance-release/issues/1286

            Expect a fix in the next VSCode version.

            EDIT: It's been fixed!

            Source https://stackoverflow.com/questions/67552574

            QUESTION

            Updating packages in conda
            Asked 2021-Apr-14 at 20:26

            I have a problem with updating packages in conda. The list of my installed packages is:

            ...

            ANSWER

            Answered 2021-Apr-14 at 20:26

            Channel pypi means that the package was installed with pip. You may need to upgrade it with pip as well

            Source https://stackoverflow.com/questions/67097308

            QUESTION

            How to create a requirements.txt file in Django project?
            Asked 2021-Mar-18 at 01:12

            I have been trying to create a requirements.txt file from the Pycharm terminal but it is adding all unnecessary packages as well. What should I do to show only used packages? Thanks, requirements.txt:

            aiohttp==3.7.3 aioredis==1.3.1 alabaster==0.7.12 anaconda-client==1.7.2 anaconda-navigator==1.9.12 anaconda-project==0.8.3 appdirs==1.4.4 appnope==0.1.0 argh==0.26.2 asgiref==3.3.1 asn1crypto==1.3.0 astroid==2.4.2 astropy==4.0.1.post1 async-timeout==3.0.1 atomicwrites==1.4.0 attrs==19.1.0 autobahn==21.2.1 Automat==20.2.0 autopep8 @ file:///tmp/build/80754af9/autopep8_1592412889138/work Babel==2.8.0 backcall==0.1.0 backports.functools-lru-cache==1.6.1 backports.shutil-get-terminal-size==1.0.0 backports.tempfile==1.0 backports.weakref==1.0.post1 bcrypt==3.1.7 beautifulsoup4==4.9.1 bitarray @ file:///C:/ci/bitarray_1594751092677/work bkcharts==0.2 bleach==3.1.0 bokeh @ file:///C:/ci/bokeh_1593183652752/work boto==2.49.0 Bottleneck==1.3.2 brotlipy==0.7.0 bs4==0.0.1 certifi==2020.6.20 cffi==1.13.1 channels==3.0.3 channels-redis==3.2.0 chardet==3.0.4 cheroot==8.5.2 Click==7.0 cloudpickle @ file:///tmp/build/80754af9/cloudpickle_1594141588948/work clyent==1.2.2 colorama==0.4.4 comtypes==1.1.7 conda==4.8.3 conda-build==3.18.11 conda-package-handling==1.7.0 conda-verify==3.4.2 constantly==15.1.0 contextlib2==0.6.0.post1 cryptography==3.4.6 cycler==0.10.0 Cython @ file:///C:/ci/cython_1594830140812/work cytoolz==0.10.1 daphne==3.0.1 dask @ file:///tmp/build/80754af9/dask-core_1594156306305/work decorator==4.4.0 defusedxml==0.6.0 diff-match-patch @ file:///tmp/build/80754af9/diff-match-patch_1594828741838/work distlib==0.3.1 distributed @ file:///C:/ci/distributed_1594747837674/work dj-database-url==0.5.0 dj-rest-auth==2.1.3 Django==3.1.5 django-admin-honeypot==1.1.0 django-allauth==0.44.0 django-bootstrap4==0.0.5 django-channels==0.7.0 django-crispy-forms==1.11.0 django-defender==0.8.0 django-heroku==0.3.1 django-honeypot==0.9.0 django-tastypie==0.14.3 djangorestframework==3.12.2 dnspython==1.15.0 docutils==0.16 entrypoints==0.3 et-xmlfile==1.0.1 Faker==0.8.13 fastcache==1.1.0 filelock==3.0.12 flake8==3.7.8 Flask==0.12.4 Flask-Bcrypt==0.7.1 Flask-Cors==3.0.3 Flask-JWT-Extended==3.7.0 Flask-Login==0.4.0 fsspec==0.7.4 future==0.18.2 gevent @ file:///C:/ci/gevent_1593010772244/work glob2==0.7 gmpy2==2.0.8 greenlet==0.4.16 gunicorn==20.0.4 h5py==2.10.0 HeapDict==1.0.1 hiredis==1.1.0 html5lib @ file:///tmp/build/80754af9/html5lib_1593446221756/work hyperlink==21.0.0 idna @ file:///tmp/build/80754af9/idna_1593446292537/work imageio @ file:///tmp/build/80754af9/imageio_1594161405741/work imagesize==1.2.0 importlib-metadata==0.23 incremental==17.5.0 intervaltree @ file:///tmp/build/80754af9/intervaltree_1594361675072/work ipykernel==5.1.3 ipython==7.8.0 ipython-genutils==0.2.0 ipywidgets==7.5.1 isort==5.7.0 itsdangerous==1.1.0 jaraco.functools==3.1.0 jdcal==1.4.1 jedi==0.15.1 Jinja2==2.10.3 joblib @ file:///tmp/build/80754af9/joblib_1594236160679/work json5==0.9.5 jsonschema==3.1.1 jupyter==1.0.0 jupyter-client==5.3.1 jupyter-console==6.0.0 jupyter-core==4.4.0 jupyterlab==2.1.5 jupyterlab-server @ file:///tmp/build/80754af9/jupyterlab_server_1594164409481/work keyring @ file:///C:/ci/keyring_1593109210108/work kiwisolver==1.2.0 lazy-object-proxy==1.4.3 libarchive-c==2.9 llvmlite==0.32.1 locket==0.2.0 lxml @ file:///C:/ci/lxml_1594826940903/work MarkupSafe==1.1.1 matplotlib @ file:///C:/ci/matplotlib-base_1592844891112/work mccabe==0.6.1 menuinst==1.4.16 mistune==0.8.4 mkl-fft==1.1.0 mkl-random==1.1.1 mkl-service==2.3.0 mock==4.0.2 more-itertools==7.2.0 mpmath==1.1.0 msgpack==1.0.0 multidict==5.0.2 multipledispatch==0.6.0 navigator-updater==0.2.1 nbconvert==5.6.0 nbformat==4.4.0 networkx @ file:///tmp/build/80754af9/networkx_1594377231366/work nltk @ file:///tmp/build/80754af9/nltk_1592496090529/work node==0.9.25 nose==1.3.7 notebook==6.0.1 numba==0.49.1 numexpr==2.7.1 numpy==1.18.5 numpydoc @ file:///tmp/build/80754af9/numpydoc_1594166760263/work oauthlib==3.1.0 odict==1.7.0 olefile==0.46 openpyxl @ file:///tmp/build/80754af9/openpyxl_1594167385094/work packaging==20.4 pandas @ file:///C:/ci/pandas_1592841744841/work pandocfilters==1.4.2 paramiko==2.7.1 parso==0.5.1 partd==1.1.0 path==13.1.0 pathlib2==2.3.5 pathtools==0.1.2 patsy==0.5.1 pep8==1.7.1 pexpect==4.7.0 pickleshare==0.7.5 Pillow @ file:///C:/ci/pillow_1594304973959/work pipenv==2020.11.15 pkginfo==1.5.0.1 pluggy==0.6.0 plumber==1.6 ply==3.11 prometheus-client==0.7.1 prompt-toolkit==2.0.10 psutil==5.7.0 psycopg2==2.8.6 ptyprocess==0.6.0 py==1.8.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycodestyle==2.5.0 pycosat==0.6.3 pycparser==2.19 pycurl==7.43.0.5 pydocstyle @ file:///tmp/build/80754af9/pydocstyle_1592848020240/work pyflakes==2.1.1 pygame==2.0.1 Pygments==2.4.2 PyHamcrest==2.0.2 PyJWT==1.7.1 pylint==2.6.0 pymongo==3.7.2 PyNaCl @ file:///C:/ci/pynacl_1595009196976/work pyodbc===4.0.0-unsupported pyOpenSSL @ file:///tmp/build/80754af9/pyopenssl_1594392929924/work pyparsing==2.4.7 PyQt5==5.15.2 PyQt5-sip==12.8.1 pyreadline==2.1 pyrsistent==0.15.4 PySocks==1.7.1 pytest==3.3.0 pytest-flask==0.11.0 python-dateutil==2.8.0 python-decouple==3.4 python-jsonrpc-server @ file:///tmp/build/80754af9/python-jsonrpc-server_1594397536060/work python-language-server @ file:///C:/ci/python-language-server_1594154480810/work python-mimeparse==1.6.0 python3-openid==3.2.0 pytz==2020.1 PyWavelets==1.1.1 pywin32==227 pywin32-ctypes==0.2.0 pywinpty==0.5.7 PyYAML==5.3.1 pyzmq @ file:///C:/Users/Rashidov/Desktop/mflix-python/pyzmq-22.0.3-cp38-cp38-win32.whl QDarkStyle==2.8.1 QtAwesome==0.7.2 qtconsole==4.5.5 QtPy==1.9.0 redis==3.5.3 regex @ file:///C:/ci/regex_1593435678736/work requests @ file:///tmp/build/80754af9/requests_1592841827918/work requests-oauthlib==1.3.0 rope==0.17.0 Rtree==0.9.4 ruamel-yaml==0.15.87 scikit-image==0.16.2 scikit-learn @ file:///C:/ci/scikit-learn_1592863447244/work scipy @ file:///C:/ci/scipy_1592916961137/work seaborn==0.10.1 selenium==3.141.0 Send2Trash==1.5.0 service-identity==18.1.0 simplegeneric==0.8.1 simplejson==3.17.2 singledispatch==3.4.0.3 sip==4.19.13 six==1.12.0 snowballstemmer==2.0.0 sortedcollections==1.2.1 sortedcontainers==2.2.2 soupsieve==2.0.1 Sphinx @ file:///tmp/build/80754af9/sphinx_1594223420021/work sphinxcontrib-applehelp==1.0.2 sphinxcontrib-devhelp==1.0.2 sphinxcontrib-htmlhelp==1.0.3 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.4 sphinxcontrib-websupport @ file:///tmp/build/80754af9/sphinxcontrib-websupport_1593446360927/work spyder @ file:///C:/ci/spyder_1594820234642/work spyder-kernels @ file:///C:/ci/spyder-kernels_1594744028846/work SQLAlchemy @ file:///C:/ci/sqlalchemy_1593446777599/work sqlparse==0.4.1 statsmodels==0.11.1 sympy @ file:///C:/ci/sympy_1594234724630/work tables==3.6.1 tblib==1.6.0 telepot==12.7 terminado==0.8.3 testpath==0.4.2 text-unidecode==1.2 textblob==0.15.3 threadpoolctl @ file:///tmp/tmp9twdgx9k/threadpoolctl-2.1.0-py3-none-any.whl toml==0.10.2 toolz==0.10.0 tornado==6.0.3 tqdm @ file:///tmp/build/80754af9/tqdm_1593446365756/work traitlets==4.3.3 Twisted @ file:///C:/Users/Rashidov/Desktop/chat_app/Twisted-20.3.0-cp38-cp38-win32.whl txaio==21.2.1 typing-extensions @ file:///tmp/build/80754af9/typing_extensions_1592847887441/work ujson==1.35 unicodecsv==0.14.1 urllib3==1.25.9 virtualenv==20.3.0 virtualenv-clone==0.5.4 watchdog @ file:///C:/ci/watchdog_1593447396356/work wcwidth==0.1.7 web.py==0.62 webencodings==0.5.1 Werkzeug==0.16.0 whitenoise==5.2.0 widgetsnbextension==3.5.1 win-inet-pton==1.1.0 win-unicode-console==0.5 wincertstore==0.2 wrapt==1.12.1 xlrd==1.2.0 XlsxWriter==1.2.9 xlwings==0.19.5 xlwt==1.3.0 xmltodict==0.12.0 yapf @ file:///tmp/build/80754af9/yapf_1593528177422/work yarl==1.6.3 zict==2.0.0 zipp==0.6.0 zope.component==4.6.2 zope.deferredimport==4.3.1 zope.deprecation==4.4.0 zope.event==4.4 zope.hookable==5.0.1 zope.interface==4.7.1 zope.lifecycleevent==4.3 zope.proxy==4.3.5

            ...

            ANSWER

            Answered 2021-Mar-17 at 23:14

            Check out this Snakefood

            Especially the command sfood-imports which finds and lists import statements in python project

            So it is not depended on your env but rather on the code that you wrote

            Source https://stackoverflow.com/questions/66681708

            QUESTION

            Telegram bot on Heroku returns ModuleNotFoundError
            Asked 2021-Feb-25 at 18:00

            I've built this telegram bot yesterday, and it ran smoothly on Heroku.

            However, today I added a new package python-google-places and I attempted to push to Heroku but received the following errors in Heroku's log:

            ...

            ANSWER

            Answered 2021-Feb-24 at 15:37

            Pipfile is redundant for Heroku. But it is ok to use it for development.

            Most probably that you are erasing it from dependencies using pipenv. Try to add to Pipfile and then do pip freeze

            Source https://stackoverflow.com/questions/66351049

            QUESTION

            Python3 counting UTF-16 code points in a string
            Asked 2021-Jan-30 at 19:36

            I am trying to figure out how to either convert UTF-16 offsets to UTF-8 offsets, or somehow be able to count the # of UTF-16 code points in a string. (I think in order to do the former, you have to do the latter anyways.)

            Sanity check: I am correct that the len() function, when operated on a python string returns the number of code points in it in UTF-8?

            I need to do this because the LSP protocol requires the offsets to be in UTF-16, and I am trying to build something with LSP in mind.

            I can't seem to find how to do this, the only python LSP server I know of doesn't even handle this conversion itself.

            ...

            ANSWER

            Answered 2021-Jan-30 at 17:57

            For counting the bytes, including BOM, len(str.encode("utf-16")) would work. You can use utf-16-le for bytes without BOM.

            Example:

            Source https://stackoverflow.com/questions/65971218

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install python-language-server

            You can install using 'pip install python-language-server' or download it from GitHub, PyPI.
            You can use python-language-server like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            Install
          • PyPI

            pip install python-language-server

          • CLONE
          • HTTPS

            https://github.com/palantir/python-language-server.git

          • CLI

            gh repo clone palantir/python-language-server

          • sshUrl

            git@github.com:palantir/python-language-server.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link