From f2461abf0f7fb35549e6a998ed3f2660c2da8195 Mon Sep 17 00:00:00 2001 From: anyunhao Date: Wed, 21 Jul 2021 17:21:05 +0800 Subject: [PATCH] Package init --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 149 ++++++++++++++++++++++++++------ pynvim-0.4.3.tar.gz | Bin 0 -> 52807 bytes python-neovim.spec | 45 ++++++++++ 4 files changed, 370 insertions(+), 25 deletions(-) create mode 100644 LICENSE create mode 100644 pynvim-0.4.3.tar.gz create mode 100644 python-neovim.spec diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9942365 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2014 Thiago Arruda + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 74bc2dc..68b86cc 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,136 @@ -# python-neovim +Pynvim: Python client to [Neovim](https://github.com/neovim/neovim) +=================================================================== -#### 介绍 -Transition packgage for pynvim +[![Build Status](https://travis-ci.org/neovim/pynvim.svg?branch=master)](https://travis-ci.org/neovim/pynvim) +[![Documentation Status](https://readthedocs.org/projects/pynvim/badge/?version=latest)](http://pynvim.readthedocs.io/en/latest/?badge=latest) +[![Code coverage](https://codecov.io/gh/neovim/pynvim/branch/master/graph/badge.svg)](https://codecov.io/gh/neovim/pynvim) -#### 软件架构 -软件架构说明 +Pynvim implements support for python plugins in Nvim. It also works as a library for +connecting to and scripting Nvim processes through its msgpack-rpc API. +Install +------- -#### 安装教程 +Supports python 2.7, and 3.4 or later. -1. xxxx -2. xxxx -3. xxxx +```sh +pip2 install pynvim +pip3 install pynvim +``` -#### 使用说明 +If you only use one of python2 or python3, it is enough to install that +version. You can install the package without being root by adding the `--user` +flag. -1. xxxx -2. xxxx -3. xxxx +Anytime you upgrade Neovim, make sure to upgrade pynvim as well: +```sh +pip2 install --upgrade pynvim +pip3 install --upgrade pynvim +``` -#### 参与贡献 +Alternatively, the master version could be installed by executing the following +in the root of this repository: +```sh +pip2 install . +pip3 install . +``` -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request +Python Plugin API +----------------- +Pynvim supports python _remote plugins_ (via the language-agnostic Nvim rplugin +interface), as well as _Vim plugins_ (via the `:python[3]` interface). Thus when +pynvim is installed Neovim will report support for the `+python[3]` Vim feature. -#### 码云特技 +The rplugin interface allows plugins to handle vimL function calls as well as +defining commands and autocommands, and such plugins can operate asynchronously +without blocking nvim. For details on the new rplugin interface, +see the [Remote Plugin](http://pynvim.readthedocs.io/en/latest/usage/remote-plugins.html) documentation. -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +Pynvim defines some extensions over the vim python API: + +* Builtin and plugin vimL functions are available as `nvim.funcs` +* API functions are available as `vim.api` and for objects such as `buffer.api` +* Lua functions can be defined using `vim.exec_lua` and called with `vim.lua` +* Support for thread-safety and async requests. + +See the [Python Plugin API](http://pynvim.readthedocs.io/en/latest/usage/python-plugin-api.html) documentation for usage of this new functionality. + +Development +----------- + +Use (and activate) a local virtualenv. + + python3 -m venv env36 + source env36/bin/activate + +If you change the code, you must reinstall for the changes to take effect: + + pip install . + +Use `pytest` to run the tests. Invoking with `python -m` prepends the current +directory to `sys.path` (otherwise `pytest` might find other versions!): + + python -m pytest + +For details about testing and troubleshooting, see the +[development](http://pynvim.readthedocs.io/en/latest/development.html) +documentation. + +### Usage from the Python REPL + +A number of different transports are supported, but the simplest way to get +started is with the python REPL. First, start Nvim with a known address (or use +the `$NVIM_LISTEN_ADDRESS` of a running instance): + +```sh +$ NVIM_LISTEN_ADDRESS=/tmp/nvim nvim +``` + +In another terminal, connect a python REPL to Nvim (note that the API is similar +to the one exposed by the [python-vim +bridge](http://vimdoc.sourceforge.net/htmldoc/if_pyth.html#python-vim)): + +```python +>>> from pynvim import attach +# Create a python API session attached to unix domain socket created above: +>>> nvim = attach('socket', path='/tmp/nvim') +# Now do some work. +>>> buffer = nvim.current.buffer # Get the current buffer +>>> buffer[0] = 'replace first line' +>>> buffer[:] = ['replace whole buffer'] +>>> nvim.command('vsplit') +>>> nvim.windows[1].width = 10 +>>> nvim.vars['global_var'] = [1, 2, 3] +>>> nvim.eval('g:global_var') +[1, 2, 3] +``` + +You can embed Neovim into your python application instead of connecting to +a running Neovim instance. + +```python +>>> from pynvim import attach +>>> nvim = attach('child', argv=["/bin/env", "nvim", "--embed", "--headless"]) +``` + +- The ` --headless` argument tells `nvim` not to wait for a UI to connect. +- Alternatively, use `--embed` _without_ `--headless` if your client is a UI + and you want `nvim` to wait for your client to `nvim_ui_attach` before + continuing startup. + +See the tests for more examples. + +Release +------- + +1. Create a release commit with title `Pynvim x.y.z` + - list significant changes in the commit message + - bump the version in `pynvim/util.py` and `setup.py` (3 places in total) +2. Make a release on GitHub with the same commit/version tag and copy the message. +3. Run `scripts/disable_log_statements.sh` +4. Run `python setup.py sdist` + - diff the release tarball `dist/pynvim-x.y.z.tar.gz` against the previous one. +5. Run `twine upload -r pypi dist/pynvim-x.y.z.tar.gz` + - Assumes you have a pypi account with permissions. +6. Run `scripts/enable_log_statements.sh` or `git reset --hard` to restore the working dir. diff --git a/pynvim-0.4.3.tar.gz b/pynvim-0.4.3.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9ad541b4e7b1f8a3a8ebea872d2db0cfb5f7e7dc GIT binary patch literal 52807 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

Ev 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 A8UO$Q literal 0 HcmV?d00001 diff --git a/python-neovim.spec b/python-neovim.spec new file mode 100644 index 0000000..646bcdb --- /dev/null +++ b/python-neovim.spec @@ -0,0 +1,45 @@ +%global desc Implements support for python plugins in Nvim. Also works as a library for\ +connecting to and scripting Nvim processes through its msgpack-rpc API. +%bcond_without sphinx +Name: python-neovim +Version: 0.4.3 +Release: 1 +License: ASL 2.0 +Summary: Python client to Neovim +URL: https://github.com/neovim/pynvim +Source0: https://github.com/neovim/pynvim/archive/0.4.3/pynvim-0.4.3.tar.gz +BuildArch: noarch +BuildRequires: make +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-setuptools +BuildRequires: python%{python3_pkgversion}-pytest-runner + +%description +%{desc} + +%package -n python%{python3_pkgversion}-neovim +Summary: %{summary} +%{?python_provide:%python_provide python%{python3_pkgversion}-neovim} +Requires: neovim +Requires: python%{python3_pkgversion}-greenlet +Requires: python%{python3_pkgversion}-msgpack +%description -n python%{python3_pkgversion}-neovim +%{desc} + +%prep +%autosetup -n pynvim-%{version} + +%build +%py3_build + +%install +%py3_install + +%files -n python%{python3_pkgversion}-neovim +%license LICENSE +%doc README.md +%{python3_sitelib}/* + +%changelog +* Tue Jul 20 2021 anyunhao - 0.4.3-1 +- Package init -- Gitee