summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-2ppy.spec382
-rw-r--r--sources1
3 files changed, 384 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..d63be52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/2ppy-0.4.0.tar.gz
diff --git a/python-2ppy.spec b/python-2ppy.spec
new file mode 100644
index 0000000..c7f8c8d
--- /dev/null
+++ b/python-2ppy.spec
@@ -0,0 +1,382 @@
+%global _empty_manifest_terminate_build 0
+Name: python-2ppy
+Version: 0.4.0
+Release: 1
+Summary: Python-based implementation of tuProlog -- the open ecosystem for symbolic AI --, based on 2P-Kt
+License: Apache 2.0 License
+URL: https://github.com/tuProlog/2ppy
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/02/9d/eb6fc52e24599cb44da3840acc68eef59a2c88a1658b81014f11866986ab/2ppy-0.4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-JPype1
+
+%description
+# 2PPy (tuProlog in Python)
+
+Experimental porting of [2P-Kt](https://github.com/tuProlog/2p-kt) on Python, via [JPype](https://jpype.readthedocs.io).
+
+> This is a __work in progress__. 2PPy is not ready for general availability, yet.
+
+## Introduction
+
+Object-oriented and modular ecosystem for symbolic AI and logic programming, currently featuring:
+
+* a module for logic terms and clauses representation, namely `tuprolog.core`,
+
+* a module for logic unification, namely `tuprolog.unify`,
+
+* a module for in-memory indexing and storing logic theories, as well as other sorts of collections of logic clauses, namely `tuprolog.theory`,
+
+* a module providing generic API for resolution of logic queries, namely `tuprolog.solve`, currently implementing a Prolog solver
+
+* two parsing modules: one aimed at parsing terms, namely `tuprolog.core.parsing`, and the other aimed at parsing theories, namely `tuprolog.theory.parsing`,
+
+* two serialisation-related modules: one aimed at (de)serialising terms and clauses, namely `tuprolog.core.serialize`, and the
+other aimed at (de)serialising terms theories, namely `tuprolog.theory.serialize`,
+
+* a module for using Prolog via a command-line interface, namely `tuprolog.repl`.
+
+## How to do stuff
+
+### Prerequisites
+
+1. Install Python 3 (look into the `.python-version` to know the exact version)
+ * I suggest using [Pyenv](https://github.com/pyenv/pyenv) to easily handle multiple Python versions on the same machine
+ * Ensure PIP works fine
+
+2. Install Java (JDK preferred), and **ensure the `JAVA_HOME` variable is correctly set**
+
+3. Ensure Java and Python are both either 64bit or 32bit
+
+4. If you have installed some prior development version of 2PPy (e.g. `tuppy` or `tuprolog`), uninstall them via
+ ```bash
+ pip uninstall tuppy tuprolog
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip uninstall tuppy tuprolog
+ ```
+
+### How to develop 2PPy
+
+5. Restore Python dependencies via PIP, by running:
+ ```bash
+ pip install -r requirements.txt
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip -r requirements.txt
+ ```
+
+6. Restore JVM dependencies via `download-jars.sh`, by running:
+ ```bash
+ ./download-jars.sh
+ ```
+ Notice that this command requires `curl` and `wget` to be installed on your system (`wget` may be lacking on __Mac OS__ and Windows)
+
+### How to use 2PPy as a library
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Import `tuprolog.*` modules in your Python scripts
+
+7. Profit
+
+### How to use 2PPy as an executable
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Run `tuprolog` module via
+ ```bash
+ python -m tuprolog
+ ```
+
+For the moment, running 2PPy means starting an interactive Python shell with pre-loaded `tuprolog.*` modules.
+
+Eventually `python -m tuprolog` will launch a command-line logic solver.
+
+
+
+
+%package -n python3-2ppy
+Summary: Python-based implementation of tuProlog -- the open ecosystem for symbolic AI --, based on 2P-Kt
+Provides: python-2ppy
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-2ppy
+# 2PPy (tuProlog in Python)
+
+Experimental porting of [2P-Kt](https://github.com/tuProlog/2p-kt) on Python, via [JPype](https://jpype.readthedocs.io).
+
+> This is a __work in progress__. 2PPy is not ready for general availability, yet.
+
+## Introduction
+
+Object-oriented and modular ecosystem for symbolic AI and logic programming, currently featuring:
+
+* a module for logic terms and clauses representation, namely `tuprolog.core`,
+
+* a module for logic unification, namely `tuprolog.unify`,
+
+* a module for in-memory indexing and storing logic theories, as well as other sorts of collections of logic clauses, namely `tuprolog.theory`,
+
+* a module providing generic API for resolution of logic queries, namely `tuprolog.solve`, currently implementing a Prolog solver
+
+* two parsing modules: one aimed at parsing terms, namely `tuprolog.core.parsing`, and the other aimed at parsing theories, namely `tuprolog.theory.parsing`,
+
+* two serialisation-related modules: one aimed at (de)serialising terms and clauses, namely `tuprolog.core.serialize`, and the
+other aimed at (de)serialising terms theories, namely `tuprolog.theory.serialize`,
+
+* a module for using Prolog via a command-line interface, namely `tuprolog.repl`.
+
+## How to do stuff
+
+### Prerequisites
+
+1. Install Python 3 (look into the `.python-version` to know the exact version)
+ * I suggest using [Pyenv](https://github.com/pyenv/pyenv) to easily handle multiple Python versions on the same machine
+ * Ensure PIP works fine
+
+2. Install Java (JDK preferred), and **ensure the `JAVA_HOME` variable is correctly set**
+
+3. Ensure Java and Python are both either 64bit or 32bit
+
+4. If you have installed some prior development version of 2PPy (e.g. `tuppy` or `tuprolog`), uninstall them via
+ ```bash
+ pip uninstall tuppy tuprolog
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip uninstall tuppy tuprolog
+ ```
+
+### How to develop 2PPy
+
+5. Restore Python dependencies via PIP, by running:
+ ```bash
+ pip install -r requirements.txt
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip -r requirements.txt
+ ```
+
+6. Restore JVM dependencies via `download-jars.sh`, by running:
+ ```bash
+ ./download-jars.sh
+ ```
+ Notice that this command requires `curl` and `wget` to be installed on your system (`wget` may be lacking on __Mac OS__ and Windows)
+
+### How to use 2PPy as a library
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Import `tuprolog.*` modules in your Python scripts
+
+7. Profit
+
+### How to use 2PPy as an executable
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Run `tuprolog` module via
+ ```bash
+ python -m tuprolog
+ ```
+
+For the moment, running 2PPy means starting an interactive Python shell with pre-loaded `tuprolog.*` modules.
+
+Eventually `python -m tuprolog` will launch a command-line logic solver.
+
+
+
+
+%package help
+Summary: Development documents and examples for 2ppy
+Provides: python3-2ppy-doc
+%description help
+# 2PPy (tuProlog in Python)
+
+Experimental porting of [2P-Kt](https://github.com/tuProlog/2p-kt) on Python, via [JPype](https://jpype.readthedocs.io).
+
+> This is a __work in progress__. 2PPy is not ready for general availability, yet.
+
+## Introduction
+
+Object-oriented and modular ecosystem for symbolic AI and logic programming, currently featuring:
+
+* a module for logic terms and clauses representation, namely `tuprolog.core`,
+
+* a module for logic unification, namely `tuprolog.unify`,
+
+* a module for in-memory indexing and storing logic theories, as well as other sorts of collections of logic clauses, namely `tuprolog.theory`,
+
+* a module providing generic API for resolution of logic queries, namely `tuprolog.solve`, currently implementing a Prolog solver
+
+* two parsing modules: one aimed at parsing terms, namely `tuprolog.core.parsing`, and the other aimed at parsing theories, namely `tuprolog.theory.parsing`,
+
+* two serialisation-related modules: one aimed at (de)serialising terms and clauses, namely `tuprolog.core.serialize`, and the
+other aimed at (de)serialising terms theories, namely `tuprolog.theory.serialize`,
+
+* a module for using Prolog via a command-line interface, namely `tuprolog.repl`.
+
+## How to do stuff
+
+### Prerequisites
+
+1. Install Python 3 (look into the `.python-version` to know the exact version)
+ * I suggest using [Pyenv](https://github.com/pyenv/pyenv) to easily handle multiple Python versions on the same machine
+ * Ensure PIP works fine
+
+2. Install Java (JDK preferred), and **ensure the `JAVA_HOME` variable is correctly set**
+
+3. Ensure Java and Python are both either 64bit or 32bit
+
+4. If you have installed some prior development version of 2PPy (e.g. `tuppy` or `tuprolog`), uninstall them via
+ ```bash
+ pip uninstall tuppy tuprolog
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip uninstall tuppy tuprolog
+ ```
+
+### How to develop 2PPy
+
+5. Restore Python dependencies via PIP, by running:
+ ```bash
+ pip install -r requirements.txt
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip -r requirements.txt
+ ```
+
+6. Restore JVM dependencies via `download-jars.sh`, by running:
+ ```bash
+ ./download-jars.sh
+ ```
+ Notice that this command requires `curl` and `wget` to be installed on your system (`wget` may be lacking on __Mac OS__ and Windows)
+
+### How to use 2PPy as a library
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Import `tuprolog.*` modules in your Python scripts
+
+7. Profit
+
+### How to use 2PPy as an executable
+
+5. Install 2PPy from Pypi by running:
+ ```bash
+ pip install 2ppy
+ ```
+ On __Mac OS__ this may not work as expected.
+ Consider running the following command instead:
+ ```bash
+ python3 -m pip install 2ppy
+ ```
+
+6. Run `tuprolog` module via
+ ```bash
+ python -m tuprolog
+ ```
+
+For the moment, running 2PPy means starting an interactive Python shell with pre-loaded `tuprolog.*` modules.
+
+Eventually `python -m tuprolog` will launch a command-line logic solver.
+
+
+
+
+%prep
+%autosetup -n 2ppy-0.4.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-2ppy -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..f72db64
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+49ad506cb2a9df63cba0f210379d40ea 2ppy-0.4.0.tar.gz