diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-10 07:30:47 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-10 07:30:47 +0000 |
commit | df60a673a44d0c1774061fc311cea66236a7554f (patch) | |
tree | 98b38d90a1f50b025e5f11a8828f6dc99189a81f /python-pyconll.spec | |
parent | 085cd7700dca280d6d869c41889af95d513974b0 (diff) |
automatic import of python-pyconll
Diffstat (limited to 'python-pyconll.spec')
-rw-r--r-- | python-pyconll.spec | 420 |
1 files changed, 420 insertions, 0 deletions
diff --git a/python-pyconll.spec b/python-pyconll.spec new file mode 100644 index 0000000..1b4a871 --- /dev/null +++ b/python-pyconll.spec @@ -0,0 +1,420 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyconll +Version: 3.1.0 +Release: 1 +Summary: Read and manipulate CoNLL files +License: MIT +URL: https://github.com/pyconll/pyconll +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0c/21/49011a53b5eab18b331b411b6bdd586565b73921b6c08162f86bc0b83ae7/pyconll-3.1.0.tar.gz +BuildArch: noarch + + +%description +*Easily work with **CoNLL** files using the familiar syntax of +**python**.* +Links +''''' +- `Homepage <https://pyconll.github.io>`__ +- `Documentation <https://pyconll.readthedocs.io/>`__ +Installation +~~~~~~~~~~~~ +As with most python packages, simply use ``pip`` to install from PyPi. + pip install pyconll +``pyconll`` is also available as a conda package on the ``pyconll`` +channel. Only packages 2.2.0 and newer are available on conda at the +moment. + conda install -c pyconll pyconll +pyconll supports Python 3.6 and greater, starting in version 3.0.0. In +general pyconll will focus development efforts on officially supported +python versions. Python 3.5 reached end of support in October 2020. +Use +~~~ +This tool is intended to be a **minimal**, **low level**, **expressive** +and **pragmatic** library in a widely used programming language. pyconll +creates a thin API on top of raw CoNLL annotations that is simple and +intuitive. +It offers the following features: \* Regular CI testing and validation +against all UD v2.x versions. \* A strong domain model that includes +CoNLL sources, Sentences, Tokens, Trees, etc. \* A typed API for better +development experience and better semantics. \* A focus on usability and +simplicity in design (no dependencies) \* Performance optimizations for +a smooth development workflow no matter the dataset size (performs about +25%-35% faster than other comparable packages) +See the following code example to understand the basics of the API. + # This snippet finds sentences where a token marked with part of speech 'AUX' are + # governed by a NOUN. For example, in French this is a less common construction + # and we may want to validate these examples because we have previously found some + # problematic examples of this construction. + import pyconll + train = pyconll.load_from_file('./ud/train.conllu') + review_sentences = [] + # Conll objects are iterable over their sentences, and sentences are iterable + # over their tokens. Sentences also de/serialize comment information. + for sentence in train: + for token in sentence: + # Tokens have attributes such as upos, head, id, deprel, etc, and sentences + # can be indexed by a token's id. We must check that the token is not the + # root token, whose id, '0', cannot be looked up. + if token.upos == 'AUX' and (token.head != '0' and sentence[token.head].upos == 'NOUN'): + review_sentences.append(sentence) + print('Review the following sentences:') + for sent in review_sentences: + print(sent.id) +A full definition of the API can be found in the +`documentation <https://pyconll.readthedocs.io/>`__ or use the `quick +start <https://pyconll.readthedocs.io/en/stable/starting.html>`__ guide +for a focused introduction. +Uses and Limitations +~~~~~~~~~~~~~~~~~~~~ +This package edits CoNLL-U annotations. This does not include the +annotated text itself. Word forms on Tokens are not editable and +Sentence Tokens cannot be reassigned or reordered. ``pyconll`` focuses +on editing CoNLL-U annotation rather than creating it or changing the +underlying text that is annotated. If there is interest in this +functionality area, please create a GitHub issue for more visibility. +This package also is only validated against the CoNLL-U format. The +CoNLL and CoNLL-X format are not supported, but are very similar. I +originally intended to support these formats as well, but their format +is not as well defined as CoNLL-U so they are not included. Please +create an issue for visibility if this feature interests you. +Lastly, linguistic data can often be very large and this package +attempts to keep that in mind. pyconll provides methods for creating in +memory conll objects along with an iterate only version in case a corpus +is too large to store in memory (the size of the memory structure is +several times larger than the actual corpus file). The iterate only +version can parse upwards of 100,000 words per second on a 16gb ram +machine, so for most datasets to be used on a local dev machine, this +package will perform well. The 2.2.0 release also improves parse time +and memory footprint by about 25%! +Contributing +~~~~~~~~~~~~ +Contributions to this project are welcome and encouraged! If you are +unsure how to contribute, here is a +`guide <https://help.github.com/en/articles/creating-a-pull-request-from-a-fork>`__ +from Github explaining the basic workflow. After cloning this repo, +please run ``pip install -r requirements.txt`` to properly setup +locally. Some of these tools like yapf, pylint, and mypy do not have to +be run locally, but CI builds will fail without their successful +running. Some other release dependencies like twine and sphinx are also +installed. +For packaging new versions, use setuptools version 24.2.0 or greater for +creating the appropriate packaging that recognizes the +``python_requires`` metadata. Final packaging and release is now done +with Github actions so this is less of a concern. +README and CHANGELOG +^^^^^^^^^^^^^^^^^^^^ +When changing either of these files, please change the Markdown version +and run ``make gendocs`` so that the other versions stay in sync. +Release Checklist +^^^^^^^^^^^^^^^^^ +Below enumerates the general release process explicitly. This section is +for internal use and most people do not have to worry about this. First +note, that the dev branch is always a direct extension of master with +the latest changes since the last release. That is, it is essentially a +staging release branch. +- Change the version in ``pyconll/_version.py`` appropriately. +- Merge dev into master **locally**. Github does not offer a fast + forward merge and explicitly uses --no-ff. So to keep the linear + nature of changes, merge locally to fast forward. This is assuming + that the dev branch looks good on CI tests which do not automatically + run in this situation. +- Push the master branch. This should start some CI tests specifically + for master. After validating these results, create a tag + corresponding to the next version number and push the tag. +- Create a new release from this tag from the `Releases + page <https://github.com/pyconll/pyconll/releases>`__. On creating + this release, two workflows will start. One releases to pypi, and the + other releases to conda. +- Validate these workflows pass, and the package is properly released + on both platforms. + +%package -n python3-pyconll +Summary: Read and manipulate CoNLL files +Provides: python-pyconll +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyconll +*Easily work with **CoNLL** files using the familiar syntax of +**python**.* +Links +''''' +- `Homepage <https://pyconll.github.io>`__ +- `Documentation <https://pyconll.readthedocs.io/>`__ +Installation +~~~~~~~~~~~~ +As with most python packages, simply use ``pip`` to install from PyPi. + pip install pyconll +``pyconll`` is also available as a conda package on the ``pyconll`` +channel. Only packages 2.2.0 and newer are available on conda at the +moment. + conda install -c pyconll pyconll +pyconll supports Python 3.6 and greater, starting in version 3.0.0. In +general pyconll will focus development efforts on officially supported +python versions. Python 3.5 reached end of support in October 2020. +Use +~~~ +This tool is intended to be a **minimal**, **low level**, **expressive** +and **pragmatic** library in a widely used programming language. pyconll +creates a thin API on top of raw CoNLL annotations that is simple and +intuitive. +It offers the following features: \* Regular CI testing and validation +against all UD v2.x versions. \* A strong domain model that includes +CoNLL sources, Sentences, Tokens, Trees, etc. \* A typed API for better +development experience and better semantics. \* A focus on usability and +simplicity in design (no dependencies) \* Performance optimizations for +a smooth development workflow no matter the dataset size (performs about +25%-35% faster than other comparable packages) +See the following code example to understand the basics of the API. + # This snippet finds sentences where a token marked with part of speech 'AUX' are + # governed by a NOUN. For example, in French this is a less common construction + # and we may want to validate these examples because we have previously found some + # problematic examples of this construction. + import pyconll + train = pyconll.load_from_file('./ud/train.conllu') + review_sentences = [] + # Conll objects are iterable over their sentences, and sentences are iterable + # over their tokens. Sentences also de/serialize comment information. + for sentence in train: + for token in sentence: + # Tokens have attributes such as upos, head, id, deprel, etc, and sentences + # can be indexed by a token's id. We must check that the token is not the + # root token, whose id, '0', cannot be looked up. + if token.upos == 'AUX' and (token.head != '0' and sentence[token.head].upos == 'NOUN'): + review_sentences.append(sentence) + print('Review the following sentences:') + for sent in review_sentences: + print(sent.id) +A full definition of the API can be found in the +`documentation <https://pyconll.readthedocs.io/>`__ or use the `quick +start <https://pyconll.readthedocs.io/en/stable/starting.html>`__ guide +for a focused introduction. +Uses and Limitations +~~~~~~~~~~~~~~~~~~~~ +This package edits CoNLL-U annotations. This does not include the +annotated text itself. Word forms on Tokens are not editable and +Sentence Tokens cannot be reassigned or reordered. ``pyconll`` focuses +on editing CoNLL-U annotation rather than creating it or changing the +underlying text that is annotated. If there is interest in this +functionality area, please create a GitHub issue for more visibility. +This package also is only validated against the CoNLL-U format. The +CoNLL and CoNLL-X format are not supported, but are very similar. I +originally intended to support these formats as well, but their format +is not as well defined as CoNLL-U so they are not included. Please +create an issue for visibility if this feature interests you. +Lastly, linguistic data can often be very large and this package +attempts to keep that in mind. pyconll provides methods for creating in +memory conll objects along with an iterate only version in case a corpus +is too large to store in memory (the size of the memory structure is +several times larger than the actual corpus file). The iterate only +version can parse upwards of 100,000 words per second on a 16gb ram +machine, so for most datasets to be used on a local dev machine, this +package will perform well. The 2.2.0 release also improves parse time +and memory footprint by about 25%! +Contributing +~~~~~~~~~~~~ +Contributions to this project are welcome and encouraged! If you are +unsure how to contribute, here is a +`guide <https://help.github.com/en/articles/creating-a-pull-request-from-a-fork>`__ +from Github explaining the basic workflow. After cloning this repo, +please run ``pip install -r requirements.txt`` to properly setup +locally. Some of these tools like yapf, pylint, and mypy do not have to +be run locally, but CI builds will fail without their successful +running. Some other release dependencies like twine and sphinx are also +installed. +For packaging new versions, use setuptools version 24.2.0 or greater for +creating the appropriate packaging that recognizes the +``python_requires`` metadata. Final packaging and release is now done +with Github actions so this is less of a concern. +README and CHANGELOG +^^^^^^^^^^^^^^^^^^^^ +When changing either of these files, please change the Markdown version +and run ``make gendocs`` so that the other versions stay in sync. +Release Checklist +^^^^^^^^^^^^^^^^^ +Below enumerates the general release process explicitly. This section is +for internal use and most people do not have to worry about this. First +note, that the dev branch is always a direct extension of master with +the latest changes since the last release. That is, it is essentially a +staging release branch. +- Change the version in ``pyconll/_version.py`` appropriately. +- Merge dev into master **locally**. Github does not offer a fast + forward merge and explicitly uses --no-ff. So to keep the linear + nature of changes, merge locally to fast forward. This is assuming + that the dev branch looks good on CI tests which do not automatically + run in this situation. +- Push the master branch. This should start some CI tests specifically + for master. After validating these results, create a tag + corresponding to the next version number and push the tag. +- Create a new release from this tag from the `Releases + page <https://github.com/pyconll/pyconll/releases>`__. On creating + this release, two workflows will start. One releases to pypi, and the + other releases to conda. +- Validate these workflows pass, and the package is properly released + on both platforms. + +%package help +Summary: Development documents and examples for pyconll +Provides: python3-pyconll-doc +%description help +*Easily work with **CoNLL** files using the familiar syntax of +**python**.* +Links +''''' +- `Homepage <https://pyconll.github.io>`__ +- `Documentation <https://pyconll.readthedocs.io/>`__ +Installation +~~~~~~~~~~~~ +As with most python packages, simply use ``pip`` to install from PyPi. + pip install pyconll +``pyconll`` is also available as a conda package on the ``pyconll`` +channel. Only packages 2.2.0 and newer are available on conda at the +moment. + conda install -c pyconll pyconll +pyconll supports Python 3.6 and greater, starting in version 3.0.0. In +general pyconll will focus development efforts on officially supported +python versions. Python 3.5 reached end of support in October 2020. +Use +~~~ +This tool is intended to be a **minimal**, **low level**, **expressive** +and **pragmatic** library in a widely used programming language. pyconll +creates a thin API on top of raw CoNLL annotations that is simple and +intuitive. +It offers the following features: \* Regular CI testing and validation +against all UD v2.x versions. \* A strong domain model that includes +CoNLL sources, Sentences, Tokens, Trees, etc. \* A typed API for better +development experience and better semantics. \* A focus on usability and +simplicity in design (no dependencies) \* Performance optimizations for +a smooth development workflow no matter the dataset size (performs about +25%-35% faster than other comparable packages) +See the following code example to understand the basics of the API. + # This snippet finds sentences where a token marked with part of speech 'AUX' are + # governed by a NOUN. For example, in French this is a less common construction + # and we may want to validate these examples because we have previously found some + # problematic examples of this construction. + import pyconll + train = pyconll.load_from_file('./ud/train.conllu') + review_sentences = [] + # Conll objects are iterable over their sentences, and sentences are iterable + # over their tokens. Sentences also de/serialize comment information. + for sentence in train: + for token in sentence: + # Tokens have attributes such as upos, head, id, deprel, etc, and sentences + # can be indexed by a token's id. We must check that the token is not the + # root token, whose id, '0', cannot be looked up. + if token.upos == 'AUX' and (token.head != '0' and sentence[token.head].upos == 'NOUN'): + review_sentences.append(sentence) + print('Review the following sentences:') + for sent in review_sentences: + print(sent.id) +A full definition of the API can be found in the +`documentation <https://pyconll.readthedocs.io/>`__ or use the `quick +start <https://pyconll.readthedocs.io/en/stable/starting.html>`__ guide +for a focused introduction. +Uses and Limitations +~~~~~~~~~~~~~~~~~~~~ +This package edits CoNLL-U annotations. This does not include the +annotated text itself. Word forms on Tokens are not editable and +Sentence Tokens cannot be reassigned or reordered. ``pyconll`` focuses +on editing CoNLL-U annotation rather than creating it or changing the +underlying text that is annotated. If there is interest in this +functionality area, please create a GitHub issue for more visibility. +This package also is only validated against the CoNLL-U format. The +CoNLL and CoNLL-X format are not supported, but are very similar. I +originally intended to support these formats as well, but their format +is not as well defined as CoNLL-U so they are not included. Please +create an issue for visibility if this feature interests you. +Lastly, linguistic data can often be very large and this package +attempts to keep that in mind. pyconll provides methods for creating in +memory conll objects along with an iterate only version in case a corpus +is too large to store in memory (the size of the memory structure is +several times larger than the actual corpus file). The iterate only +version can parse upwards of 100,000 words per second on a 16gb ram +machine, so for most datasets to be used on a local dev machine, this +package will perform well. The 2.2.0 release also improves parse time +and memory footprint by about 25%! +Contributing +~~~~~~~~~~~~ +Contributions to this project are welcome and encouraged! If you are +unsure how to contribute, here is a +`guide <https://help.github.com/en/articles/creating-a-pull-request-from-a-fork>`__ +from Github explaining the basic workflow. After cloning this repo, +please run ``pip install -r requirements.txt`` to properly setup +locally. Some of these tools like yapf, pylint, and mypy do not have to +be run locally, but CI builds will fail without their successful +running. Some other release dependencies like twine and sphinx are also +installed. +For packaging new versions, use setuptools version 24.2.0 or greater for +creating the appropriate packaging that recognizes the +``python_requires`` metadata. Final packaging and release is now done +with Github actions so this is less of a concern. +README and CHANGELOG +^^^^^^^^^^^^^^^^^^^^ +When changing either of these files, please change the Markdown version +and run ``make gendocs`` so that the other versions stay in sync. +Release Checklist +^^^^^^^^^^^^^^^^^ +Below enumerates the general release process explicitly. This section is +for internal use and most people do not have to worry about this. First +note, that the dev branch is always a direct extension of master with +the latest changes since the last release. That is, it is essentially a +staging release branch. +- Change the version in ``pyconll/_version.py`` appropriately. +- Merge dev into master **locally**. Github does not offer a fast + forward merge and explicitly uses --no-ff. So to keep the linear + nature of changes, merge locally to fast forward. This is assuming + that the dev branch looks good on CI tests which do not automatically + run in this situation. +- Push the master branch. This should start some CI tests specifically + for master. After validating these results, create a tag + corresponding to the next version number and push the tag. +- Create a new release from this tag from the `Releases + page <https://github.com/pyconll/pyconll/releases>`__. On creating + this release, two workflows will start. One releases to pypi, and the + other releases to conda. +- Validate these workflows pass, and the package is properly released + on both platforms. + +%prep +%autosetup -n pyconll-3.1.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pyconll -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 3.1.0-1 +- Package Spec generated |