summaryrefslogtreecommitdiff
path: root/python-gbd-tools.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-gbd-tools.spec')
-rw-r--r--python-gbd-tools.spec356
1 files changed, 356 insertions, 0 deletions
diff --git a/python-gbd-tools.spec b/python-gbd-tools.spec
new file mode 100644
index 0000000..ec8a345
--- /dev/null
+++ b/python-gbd-tools.spec
@@ -0,0 +1,356 @@
+%global _empty_manifest_terminate_build 0
+Name: python-gbd-tools
+Version: 4.5.2
+Release: 1
+Summary: GBD Benchmark Database Tools: Maintenance of Benchmark Instances and their Attributes
+License: GNU General Public License v3 (GPLv3)
+URL: https://github.com/Udopia/gbd
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c2/62/083652023d4ea5d3e19daa2ad8bffe54ea41c814f95fb09ca98d785df739/gbd_tools-4.5.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-flask
+Requires: python3-pandas
+Requires: python3-pebble
+Requires: python3-tatsu
+Requires: python3-waitress
+
+%description
+# GBD Benchmark Database
+
+GBD Benchmark Database (GBD) is about bridging the gap between research on SAT algorithms and data science.
+
+## GBD has three interfaces:
+
+- command-line interface ```gbd```
+- micro-services and website ```gbd-server```
+- python interface ```gbd_core.api.GBD```
+
+
+## GBD solves several problems
+
+- benchmark instance identification and identification of equivalence classes of benchmark instances (gbdhash, isohash, instance family, ...)
+- distribution of benchmark instances and benchmark meta-data
+- a simple query language to provide access to filtered sets of benchmark instances and instance features
+- initialization and maintenance of instance feature databases (meta.db, base.db, gate.db, ...)
+- transformation algorithms for benchmark instances such as instance sanitization or transformation of cnf to k-isp instances
+- keeping track of contexts (cnf, sanitized-cnf, k-isp, ...) and relations of instances between contexts
+
+
+## Programming Language
+- Python 3
+- SQLite
+
+## Installation
+- ```pip install gbd-tools```
+
+## Configuration
+- fetch a database, e.g., [https://benchmark-database.de/getdatabase/meta.db](https://benchmark-database.de/getdatabase/meta.db)
+- ```export GBD_DB=[path/to/database1]:[path/to/database2:..]``` (and put it in your .bashrc)
+- test command-line interface with commands ```gbd info``` and ```gbd --help```
+- test server with command ```gbd-server```
+
+## GBD Python Interface
+```
+from gbd_core.api import GBD
+with GBD(['path/to/database1', 'path/to/database2', ..] as gbd:
+ df = gbd.query("family = hardware-bmc", resolve=['verified-result', 'runtime-kissat'])
+```
+
+
+## GBD Server
+This runs under [https://benchmark-database.de/](https://benchmark-database.de/).
+The command is available in gbd-tools: ```gbd-server --help```
+
+
+## GBD Command-Line Interface
+
+### gbd get
+
+We assume [https://benchmark-database.de/getdatabase/meta.db](meta.db) is in your gbd path ```GBD_DB```.
+
+Get list of benchmark instances in database:
+> ```gbd get```
+
+Get list of benchmark instances including some meta-data
+> ```gbd get -r result family```
+
+Filter for specific benchmark instances with gbd-query
+> ```gbd get "family = hardware-bmc" -r filename```
+
+
+### gbd init
+
+We assume you installed the python extension module ```gdbc``` which is part of [https://github.com/sat-clique/cnftools](cnftools).
+
+All initialization routines can run in parallel and per-process ressource limits can be set.
+See ```gbd init --help``` for more info.
+
+#### gbd init local
+
+To initialize a database with local paths to your own benchmarks:
+> ```gbd -d my.db init local [path/to/benchmarks]```
+
+After that in my.db, the features local and filename exist and are associated with their corresponding gbd-hash:
+> ```gbd -d my.db get -r local filename```
+
+#### gbd init isohash
+
+To identify isomorphic instances (approximately by the hash of the sorted degree-sequence of their graph representation):
+> ```gbd -d my.db init isohash```
+
+After that in my.db, instances can be grouped by their isohash:
+> ```gbd -d my.db get -r local filename -g isohash```
+
+#### gbd init base, gbd init gate
+
+> ```gbd -d my.db:base.db init --target_db base_db base```
+
+
+> ```gbd -d my.db:gate.db init --target_db gate_db gate```
+
+
+
+%package -n python3-gbd-tools
+Summary: GBD Benchmark Database Tools: Maintenance of Benchmark Instances and their Attributes
+Provides: python-gbd-tools
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-gbd-tools
+# GBD Benchmark Database
+
+GBD Benchmark Database (GBD) is about bridging the gap between research on SAT algorithms and data science.
+
+## GBD has three interfaces:
+
+- command-line interface ```gbd```
+- micro-services and website ```gbd-server```
+- python interface ```gbd_core.api.GBD```
+
+
+## GBD solves several problems
+
+- benchmark instance identification and identification of equivalence classes of benchmark instances (gbdhash, isohash, instance family, ...)
+- distribution of benchmark instances and benchmark meta-data
+- a simple query language to provide access to filtered sets of benchmark instances and instance features
+- initialization and maintenance of instance feature databases (meta.db, base.db, gate.db, ...)
+- transformation algorithms for benchmark instances such as instance sanitization or transformation of cnf to k-isp instances
+- keeping track of contexts (cnf, sanitized-cnf, k-isp, ...) and relations of instances between contexts
+
+
+## Programming Language
+- Python 3
+- SQLite
+
+## Installation
+- ```pip install gbd-tools```
+
+## Configuration
+- fetch a database, e.g., [https://benchmark-database.de/getdatabase/meta.db](https://benchmark-database.de/getdatabase/meta.db)
+- ```export GBD_DB=[path/to/database1]:[path/to/database2:..]``` (and put it in your .bashrc)
+- test command-line interface with commands ```gbd info``` and ```gbd --help```
+- test server with command ```gbd-server```
+
+## GBD Python Interface
+```
+from gbd_core.api import GBD
+with GBD(['path/to/database1', 'path/to/database2', ..] as gbd:
+ df = gbd.query("family = hardware-bmc", resolve=['verified-result', 'runtime-kissat'])
+```
+
+
+## GBD Server
+This runs under [https://benchmark-database.de/](https://benchmark-database.de/).
+The command is available in gbd-tools: ```gbd-server --help```
+
+
+## GBD Command-Line Interface
+
+### gbd get
+
+We assume [https://benchmark-database.de/getdatabase/meta.db](meta.db) is in your gbd path ```GBD_DB```.
+
+Get list of benchmark instances in database:
+> ```gbd get```
+
+Get list of benchmark instances including some meta-data
+> ```gbd get -r result family```
+
+Filter for specific benchmark instances with gbd-query
+> ```gbd get "family = hardware-bmc" -r filename```
+
+
+### gbd init
+
+We assume you installed the python extension module ```gdbc``` which is part of [https://github.com/sat-clique/cnftools](cnftools).
+
+All initialization routines can run in parallel and per-process ressource limits can be set.
+See ```gbd init --help``` for more info.
+
+#### gbd init local
+
+To initialize a database with local paths to your own benchmarks:
+> ```gbd -d my.db init local [path/to/benchmarks]```
+
+After that in my.db, the features local and filename exist and are associated with their corresponding gbd-hash:
+> ```gbd -d my.db get -r local filename```
+
+#### gbd init isohash
+
+To identify isomorphic instances (approximately by the hash of the sorted degree-sequence of their graph representation):
+> ```gbd -d my.db init isohash```
+
+After that in my.db, instances can be grouped by their isohash:
+> ```gbd -d my.db get -r local filename -g isohash```
+
+#### gbd init base, gbd init gate
+
+> ```gbd -d my.db:base.db init --target_db base_db base```
+
+
+> ```gbd -d my.db:gate.db init --target_db gate_db gate```
+
+
+
+%package help
+Summary: Development documents and examples for gbd-tools
+Provides: python3-gbd-tools-doc
+%description help
+# GBD Benchmark Database
+
+GBD Benchmark Database (GBD) is about bridging the gap between research on SAT algorithms and data science.
+
+## GBD has three interfaces:
+
+- command-line interface ```gbd```
+- micro-services and website ```gbd-server```
+- python interface ```gbd_core.api.GBD```
+
+
+## GBD solves several problems
+
+- benchmark instance identification and identification of equivalence classes of benchmark instances (gbdhash, isohash, instance family, ...)
+- distribution of benchmark instances and benchmark meta-data
+- a simple query language to provide access to filtered sets of benchmark instances and instance features
+- initialization and maintenance of instance feature databases (meta.db, base.db, gate.db, ...)
+- transformation algorithms for benchmark instances such as instance sanitization or transformation of cnf to k-isp instances
+- keeping track of contexts (cnf, sanitized-cnf, k-isp, ...) and relations of instances between contexts
+
+
+## Programming Language
+- Python 3
+- SQLite
+
+## Installation
+- ```pip install gbd-tools```
+
+## Configuration
+- fetch a database, e.g., [https://benchmark-database.de/getdatabase/meta.db](https://benchmark-database.de/getdatabase/meta.db)
+- ```export GBD_DB=[path/to/database1]:[path/to/database2:..]``` (and put it in your .bashrc)
+- test command-line interface with commands ```gbd info``` and ```gbd --help```
+- test server with command ```gbd-server```
+
+## GBD Python Interface
+```
+from gbd_core.api import GBD
+with GBD(['path/to/database1', 'path/to/database2', ..] as gbd:
+ df = gbd.query("family = hardware-bmc", resolve=['verified-result', 'runtime-kissat'])
+```
+
+
+## GBD Server
+This runs under [https://benchmark-database.de/](https://benchmark-database.de/).
+The command is available in gbd-tools: ```gbd-server --help```
+
+
+## GBD Command-Line Interface
+
+### gbd get
+
+We assume [https://benchmark-database.de/getdatabase/meta.db](meta.db) is in your gbd path ```GBD_DB```.
+
+Get list of benchmark instances in database:
+> ```gbd get```
+
+Get list of benchmark instances including some meta-data
+> ```gbd get -r result family```
+
+Filter for specific benchmark instances with gbd-query
+> ```gbd get "family = hardware-bmc" -r filename```
+
+
+### gbd init
+
+We assume you installed the python extension module ```gdbc``` which is part of [https://github.com/sat-clique/cnftools](cnftools).
+
+All initialization routines can run in parallel and per-process ressource limits can be set.
+See ```gbd init --help``` for more info.
+
+#### gbd init local
+
+To initialize a database with local paths to your own benchmarks:
+> ```gbd -d my.db init local [path/to/benchmarks]```
+
+After that in my.db, the features local and filename exist and are associated with their corresponding gbd-hash:
+> ```gbd -d my.db get -r local filename```
+
+#### gbd init isohash
+
+To identify isomorphic instances (approximately by the hash of the sorted degree-sequence of their graph representation):
+> ```gbd -d my.db init isohash```
+
+After that in my.db, instances can be grouped by their isohash:
+> ```gbd -d my.db get -r local filename -g isohash```
+
+#### gbd init base, gbd init gate
+
+> ```gbd -d my.db:base.db init --target_db base_db base```
+
+
+> ```gbd -d my.db:gate.db init --target_db gate_db gate```
+
+
+
+%prep
+%autosetup -n gbd-tools-4.5.2
+
+%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-gbd-tools -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 4.5.2-1
+- Package Spec generated