summaryrefslogtreecommitdiff
path: root/python-eniam.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-31 07:35:13 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-31 07:35:13 +0000
commit67d7e7fe48531c303d01e4edc3a1a6c3543c8955 (patch)
tree67f3f877799ac6fe690c694e173f38365f709c1f /python-eniam.spec
parentd05cfb7b96b7f688804c6df2f22ded8163279027 (diff)
automatic import of python-eniam
Diffstat (limited to 'python-eniam.spec')
-rw-r--r--python-eniam.spec325
1 files changed, 325 insertions, 0 deletions
diff --git a/python-eniam.spec b/python-eniam.spec
new file mode 100644
index 0000000..879c025
--- /dev/null
+++ b/python-eniam.spec
@@ -0,0 +1,325 @@
+%global _empty_manifest_terminate_build 0
+Name: python-eniam
+Version: 1.0
+Release: 1
+Summary: Cross-platform python wrapper around ENIAM (http://eniam.nlp.ipipan.waw.pl/)
+License: MIT
+URL: http://styczynski.in
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8c/b8/766dcf47eb0f8bfb9c390d196e73745794e82a462f5d557d94e027648a40/eniam-1.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-opencv-python
+Requires: python3-camelot-py
+Requires: python3-wand
+Requires: python3-beautifulsoup4
+
+%description
+# Cross-platform ENIAM with useful bindings :rocket:
+
+This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM))
+Author of original code is Wojciech Jaworski.
+
+### Using eniam library
+
+1. First, you have to install eniam by calling `pip install eniam`
+2. Then you can try parsing some example phrases (see `examples/example.ipynb`):
+
+```python
+# !pip install opencv-python
+# !pip install camelot-py
+# !pip install wand
+from eniam import *
+
+dom_result = Eniam(['KOT', 'MYSZ'], {
+ rule(lemma='kot',pos=subst,case=nom): gram('KOT'),
+ rule(lemma='gonić',pos=fin,person=ter): (ip<gram('KOT'))>gram('MYSZ'),
+ rule(lemma='mysz',pos=subst,case=acc): gram('MYSZ'),
+ root_rule(): s % ip,
+}, ['KOT', 'MYSZ', 'ZDARZENIE'], {
+ valence_rule('kot', 'noun'): 'KOT',
+ valence_rule('mysz', 'noun'): 'MYSZ',
+ valence_rule('gonić', 'verb'): 'ZDARZENIE',
+}).dom("Kot goni mysz.")
+
+dom_result.show()
+```
+
+## Eniam syntax
+
+The eniam library uses custom primitive AST the most of the operations looks exactly the same as in normal ENIAM convensions except for those modifications:
+1. `/` is replaced with `>`
+2. `\` is replaced with `<`
+3. `ip{ |x1, |x2, |x3... |xn} ` is replaced with `ip[ x1 | x2 | ... | xn]`
+4. `?x` is replaced with function `optional(x)`
+5. `a\?(x)` is replaced with `a % x`
+6. the grammar can contain inline literals created using `gram()` function for example `rule(lemma='kot',pos=subst): gram('np/np\\np'),` would be a valid rule.
+
+## Useful methods
+
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom("Kot goni mysz.").show()`
+2. Getting the html code
+`Eniam(...).dom("Kot goni mysz.").html()`
+3. Saving the html code
+`Eniam(...).dom("Kot goni mysz.").save_html('output_file')`
+4. Multiple input sentences
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom(["Kot goni mysz.", "Mysz goni kota."]).show()`
+
+### Using raw ENIAM interface
+
+## Running inside docker
+
+To run ENIAM docker please use the following commands:
+```bash
+ # Run subsyntax tool
+ $ docker run -it styczynski/eniam:1.0 /root/subsyntax --help
+ # Run lexicon printer
+ $ docker run -it styczynski/eniam:1.0 /root/print_lexicon --help
+ # Run DOM parser
+ $ docker run -it styczynski/eniam:1.0 /root/domparser --help
+```
+
+## Running with Python wrapper
+
+You can install Python wrapper to get a nice wrapper around the docker container (this requires Python +3 and Docker installed):
+```bash
+ $ pip install eniam
+ $ eniam-cli sub --help
+ $ eniam-cli lex --help
+ $ eniam-cli dom --help
+```
+
+**Note:** Before installing you may wish to add python /bin/ directory to the PATH variable.
+On MacOS for Python 3.7 that would be:
+```bash
+ $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"
+```
+See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm)
+
+
+
+%package -n python3-eniam
+Summary: Cross-platform python wrapper around ENIAM (http://eniam.nlp.ipipan.waw.pl/)
+Provides: python-eniam
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-eniam
+# Cross-platform ENIAM with useful bindings :rocket:
+
+This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM))
+Author of original code is Wojciech Jaworski.
+
+### Using eniam library
+
+1. First, you have to install eniam by calling `pip install eniam`
+2. Then you can try parsing some example phrases (see `examples/example.ipynb`):
+
+```python
+# !pip install opencv-python
+# !pip install camelot-py
+# !pip install wand
+from eniam import *
+
+dom_result = Eniam(['KOT', 'MYSZ'], {
+ rule(lemma='kot',pos=subst,case=nom): gram('KOT'),
+ rule(lemma='gonić',pos=fin,person=ter): (ip<gram('KOT'))>gram('MYSZ'),
+ rule(lemma='mysz',pos=subst,case=acc): gram('MYSZ'),
+ root_rule(): s % ip,
+}, ['KOT', 'MYSZ', 'ZDARZENIE'], {
+ valence_rule('kot', 'noun'): 'KOT',
+ valence_rule('mysz', 'noun'): 'MYSZ',
+ valence_rule('gonić', 'verb'): 'ZDARZENIE',
+}).dom("Kot goni mysz.")
+
+dom_result.show()
+```
+
+## Eniam syntax
+
+The eniam library uses custom primitive AST the most of the operations looks exactly the same as in normal ENIAM convensions except for those modifications:
+1. `/` is replaced with `>`
+2. `\` is replaced with `<`
+3. `ip{ |x1, |x2, |x3... |xn} ` is replaced with `ip[ x1 | x2 | ... | xn]`
+4. `?x` is replaced with function `optional(x)`
+5. `a\?(x)` is replaced with `a % x`
+6. the grammar can contain inline literals created using `gram()` function for example `rule(lemma='kot',pos=subst): gram('np/np\\np'),` would be a valid rule.
+
+## Useful methods
+
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom("Kot goni mysz.").show()`
+2. Getting the html code
+`Eniam(...).dom("Kot goni mysz.").html()`
+3. Saving the html code
+`Eniam(...).dom("Kot goni mysz.").save_html('output_file')`
+4. Multiple input sentences
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom(["Kot goni mysz.", "Mysz goni kota."]).show()`
+
+### Using raw ENIAM interface
+
+## Running inside docker
+
+To run ENIAM docker please use the following commands:
+```bash
+ # Run subsyntax tool
+ $ docker run -it styczynski/eniam:1.0 /root/subsyntax --help
+ # Run lexicon printer
+ $ docker run -it styczynski/eniam:1.0 /root/print_lexicon --help
+ # Run DOM parser
+ $ docker run -it styczynski/eniam:1.0 /root/domparser --help
+```
+
+## Running with Python wrapper
+
+You can install Python wrapper to get a nice wrapper around the docker container (this requires Python +3 and Docker installed):
+```bash
+ $ pip install eniam
+ $ eniam-cli sub --help
+ $ eniam-cli lex --help
+ $ eniam-cli dom --help
+```
+
+**Note:** Before installing you may wish to add python /bin/ directory to the PATH variable.
+On MacOS for Python 3.7 that would be:
+```bash
+ $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"
+```
+See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm)
+
+
+
+%package help
+Summary: Development documents and examples for eniam
+Provides: python3-eniam-doc
+%description help
+# Cross-platform ENIAM with useful bindings :rocket:
+
+This project provides only a wrapper for ENIAM ([see online](http://eniam.nlp.ipipan.waw.pl/) [source code](http://git.nlp.ipipan.waw.pl/wojciech.jaworski/ENIAM))
+Author of original code is Wojciech Jaworski.
+
+### Using eniam library
+
+1. First, you have to install eniam by calling `pip install eniam`
+2. Then you can try parsing some example phrases (see `examples/example.ipynb`):
+
+```python
+# !pip install opencv-python
+# !pip install camelot-py
+# !pip install wand
+from eniam import *
+
+dom_result = Eniam(['KOT', 'MYSZ'], {
+ rule(lemma='kot',pos=subst,case=nom): gram('KOT'),
+ rule(lemma='gonić',pos=fin,person=ter): (ip<gram('KOT'))>gram('MYSZ'),
+ rule(lemma='mysz',pos=subst,case=acc): gram('MYSZ'),
+ root_rule(): s % ip,
+}, ['KOT', 'MYSZ', 'ZDARZENIE'], {
+ valence_rule('kot', 'noun'): 'KOT',
+ valence_rule('mysz', 'noun'): 'MYSZ',
+ valence_rule('gonić', 'verb'): 'ZDARZENIE',
+}).dom("Kot goni mysz.")
+
+dom_result.show()
+```
+
+## Eniam syntax
+
+The eniam library uses custom primitive AST the most of the operations looks exactly the same as in normal ENIAM convensions except for those modifications:
+1. `/` is replaced with `>`
+2. `\` is replaced with `<`
+3. `ip{ |x1, |x2, |x3... |xn} ` is replaced with `ip[ x1 | x2 | ... | xn]`
+4. `?x` is replaced with function `optional(x)`
+5. `a\?(x)` is replaced with `a % x`
+6. the grammar can contain inline literals created using `gram()` function for example `rule(lemma='kot',pos=subst): gram('np/np\\np'),` would be a valid rule.
+
+## Useful methods
+
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom("Kot goni mysz.").show()`
+2. Getting the html code
+`Eniam(...).dom("Kot goni mysz.").html()`
+3. Saving the html code
+`Eniam(...).dom("Kot goni mysz.").save_html('output_file')`
+4. Multiple input sentences
+1. Showing the result in Jupyter notebook
+`Eniam(...).dom(["Kot goni mysz.", "Mysz goni kota."]).show()`
+
+### Using raw ENIAM interface
+
+## Running inside docker
+
+To run ENIAM docker please use the following commands:
+```bash
+ # Run subsyntax tool
+ $ docker run -it styczynski/eniam:1.0 /root/subsyntax --help
+ # Run lexicon printer
+ $ docker run -it styczynski/eniam:1.0 /root/print_lexicon --help
+ # Run DOM parser
+ $ docker run -it styczynski/eniam:1.0 /root/domparser --help
+```
+
+## Running with Python wrapper
+
+You can install Python wrapper to get a nice wrapper around the docker container (this requires Python +3 and Docker installed):
+```bash
+ $ pip install eniam
+ $ eniam-cli sub --help
+ $ eniam-cli lex --help
+ $ eniam-cli dom --help
+```
+
+**Note:** Before installing you may wish to add python /bin/ directory to the PATH variable.
+On MacOS for Python 3.7 that would be:
+```bash
+ $ export PATH="$PATH:/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/bin"
+```
+See [setting up Python PATH](https://www.tutorialspoint.com/python/python_environment.htm)
+
+
+
+%prep
+%autosetup -n eniam-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-eniam -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 31 2023 Python_Bot <Python_Bot@openeuler.org> - 1.0-1
+- Package Spec generated