summaryrefslogtreecommitdiff
path: root/python-dictionaryutils.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 03:20:53 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 03:20:53 +0000
commite8741e115f00a54b6d0a0bcfdb5a7f359d68a30a (patch)
tree9987d9c1fb18d097c4ac67223db28dfd080da8e5 /python-dictionaryutils.spec
parent2986d5c41ebe4b21f16edeb90f3d9eca768c411b (diff)
automatic import of python-dictionaryutils
Diffstat (limited to 'python-dictionaryutils.spec')
-rw-r--r--python-dictionaryutils.spec271
1 files changed, 271 insertions, 0 deletions
diff --git a/python-dictionaryutils.spec b/python-dictionaryutils.spec
new file mode 100644
index 0000000..2b29494
--- /dev/null
+++ b/python-dictionaryutils.spec
@@ -0,0 +1,271 @@
+%global _empty_manifest_terminate_build 0
+Name: python-dictionaryutils
+Version: 3.4.5
+Release: 1
+Summary: Python wrapper and metaschema for datadictionary.
+License: Apache-2.0
+URL: https://github.com/uc-cdis/dictionaryutils
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0d/f3/b613db7a4b680ba9718b2e6776a0fbc5b9b8f2c4ff321127b0dbadfb179e/dictionaryutils-3.4.5.tar.gz
+BuildArch: noarch
+
+Requires: python3-PyYAML
+Requires: python3-jsonschema
+Requires: python3-cdislogging
+Requires: python3-requests
+
+%description
+# dictionaryutils
+
+python wrapper and metaschema for datadictionary.
+It can be used to:
+- load a local dictionary to a python object.
+- dump schemas to a file that can be uploaded to s3 as an artifact.
+- load schema file from an url to a python object that can be used by services
+
+## Test for dictionary validity with Docker
+Say you have a dictionary you are building locally and you want to see if it will pass the tests.
+
+You can add a simple alias to your `.bash_profile` to enable a quick test command:
+```
+testdict() { docker run --rm -v $(pwd):/dictionary quay.io/cdis/dictionaryutils:master; }
+```
+
+Then from the directory containing the `gdcdictionary` directory run `testdict`.
+
+
+## Generate simulated data with Docker
+If you wish to generate fake simulated data you can also do that with dictionaryutils and the data-simulator.
+
+```
+simdata() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS"; }
+simdataurl() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; chmod -R a+rwX /simdata"; }
+
+```
+
+Then from the directory containing the `gdcdictionary` directory run `simdata` and a folder will be created called `simdata` with the results of the simulator run. You can also pass in additional arguments to the data-simulator script such as `simdata --max_samples 10`.
+
+The `--max_samples` argument will define a default number of nodes to simulate, but you can override it using the `--node_num_instances_file` argument. For example, if you create the following `instances.json`:
+
+```
+{
+ "case": 100,
+ "demographic": 100
+}
+
+```
+Then run the following:
+```
+docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ --program workshop --project project1 --max_samples 10 --node_num_instances_file instances.json; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS";
+```
+Then you'll get 100 each of `case` and `demographic` nodes and 10 each of everything else. Note that the above example also defines `program` and `project` names.
+
+You can also run the simulator for an arbitrary json url by using `simdataurl --url https://datacommons.example.com/schema.json`.
+
+
+## Use dictionaryutils to load a dictionary
+```
+from dictionaryutils import DataDictionary
+
+dict_fetch_from_remote = DataDictionary(url=URL_FOR_THE_JSON)
+
+dict_loaded_locally = DataDictionary(root_dir=PATH_TO_SCHEMA_DIR)
+```
+
+## Use dictionaryutils to dump a dictionary
+```
+import json
+from dictionaryutils import dump_schemas_from_dir
+
+with open('dump.json', 'w') as f:
+ json.dump(dump_schemas_from_dir('../datadictionary/gdcdictionary/schemas/'), f)
+```
+
+
+%package -n python3-dictionaryutils
+Summary: Python wrapper and metaschema for datadictionary.
+Provides: python-dictionaryutils
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-dictionaryutils
+# dictionaryutils
+
+python wrapper and metaschema for datadictionary.
+It can be used to:
+- load a local dictionary to a python object.
+- dump schemas to a file that can be uploaded to s3 as an artifact.
+- load schema file from an url to a python object that can be used by services
+
+## Test for dictionary validity with Docker
+Say you have a dictionary you are building locally and you want to see if it will pass the tests.
+
+You can add a simple alias to your `.bash_profile` to enable a quick test command:
+```
+testdict() { docker run --rm -v $(pwd):/dictionary quay.io/cdis/dictionaryutils:master; }
+```
+
+Then from the directory containing the `gdcdictionary` directory run `testdict`.
+
+
+## Generate simulated data with Docker
+If you wish to generate fake simulated data you can also do that with dictionaryutils and the data-simulator.
+
+```
+simdata() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS"; }
+simdataurl() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; chmod -R a+rwX /simdata"; }
+
+```
+
+Then from the directory containing the `gdcdictionary` directory run `simdata` and a folder will be created called `simdata` with the results of the simulator run. You can also pass in additional arguments to the data-simulator script such as `simdata --max_samples 10`.
+
+The `--max_samples` argument will define a default number of nodes to simulate, but you can override it using the `--node_num_instances_file` argument. For example, if you create the following `instances.json`:
+
+```
+{
+ "case": 100,
+ "demographic": 100
+}
+
+```
+Then run the following:
+```
+docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ --program workshop --project project1 --max_samples 10 --node_num_instances_file instances.json; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS";
+```
+Then you'll get 100 each of `case` and `demographic` nodes and 10 each of everything else. Note that the above example also defines `program` and `project` names.
+
+You can also run the simulator for an arbitrary json url by using `simdataurl --url https://datacommons.example.com/schema.json`.
+
+
+## Use dictionaryutils to load a dictionary
+```
+from dictionaryutils import DataDictionary
+
+dict_fetch_from_remote = DataDictionary(url=URL_FOR_THE_JSON)
+
+dict_loaded_locally = DataDictionary(root_dir=PATH_TO_SCHEMA_DIR)
+```
+
+## Use dictionaryutils to dump a dictionary
+```
+import json
+from dictionaryutils import dump_schemas_from_dir
+
+with open('dump.json', 'w') as f:
+ json.dump(dump_schemas_from_dir('../datadictionary/gdcdictionary/schemas/'), f)
+```
+
+
+%package help
+Summary: Development documents and examples for dictionaryutils
+Provides: python3-dictionaryutils-doc
+%description help
+# dictionaryutils
+
+python wrapper and metaschema for datadictionary.
+It can be used to:
+- load a local dictionary to a python object.
+- dump schemas to a file that can be uploaded to s3 as an artifact.
+- load schema file from an url to a python object that can be used by services
+
+## Test for dictionary validity with Docker
+Say you have a dictionary you are building locally and you want to see if it will pass the tests.
+
+You can add a simple alias to your `.bash_profile` to enable a quick test command:
+```
+testdict() { docker run --rm -v $(pwd):/dictionary quay.io/cdis/dictionaryutils:master; }
+```
+
+Then from the directory containing the `gdcdictionary` directory run `testdict`.
+
+
+## Generate simulated data with Docker
+If you wish to generate fake simulated data you can also do that with dictionaryutils and the data-simulator.
+
+```
+simdata() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS"; }
+simdataurl() { docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "python /src/datasimulator/bin/data-simulator simulate --path /simdata/ $*; chmod -R a+rwX /simdata"; }
+
+```
+
+Then from the directory containing the `gdcdictionary` directory run `simdata` and a folder will be created called `simdata` with the results of the simulator run. You can also pass in additional arguments to the data-simulator script such as `simdata --max_samples 10`.
+
+The `--max_samples` argument will define a default number of nodes to simulate, but you can override it using the `--node_num_instances_file` argument. For example, if you create the following `instances.json`:
+
+```
+{
+ "case": 100,
+ "demographic": 100
+}
+
+```
+Then run the following:
+```
+docker run --rm -v $(pwd):/dictionary -v $(pwd)/simdata:/simdata quay.io/cdis/dictionaryutils:master /bin/sh -c "cd /dictionary && python setup.py install --force; python /src/datasimulator/bin/data-simulator simulate --path /simdata/ --program workshop --project project1 --max_samples 10 --node_num_instances_file instances.json; export SUCCESS=$?; rm -rf build dictionaryutils dist gdcdictionary.egg-info; chmod -R a+rwX /simdata; exit $SUCCESS";
+```
+Then you'll get 100 each of `case` and `demographic` nodes and 10 each of everything else. Note that the above example also defines `program` and `project` names.
+
+You can also run the simulator for an arbitrary json url by using `simdataurl --url https://datacommons.example.com/schema.json`.
+
+
+## Use dictionaryutils to load a dictionary
+```
+from dictionaryutils import DataDictionary
+
+dict_fetch_from_remote = DataDictionary(url=URL_FOR_THE_JSON)
+
+dict_loaded_locally = DataDictionary(root_dir=PATH_TO_SCHEMA_DIR)
+```
+
+## Use dictionaryutils to dump a dictionary
+```
+import json
+from dictionaryutils import dump_schemas_from_dir
+
+with open('dump.json', 'w') as f:
+ json.dump(dump_schemas_from_dir('../datadictionary/gdcdictionary/schemas/'), f)
+```
+
+
+%prep
+%autosetup -n dictionaryutils-3.4.5
+
+%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-dictionaryutils -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 3.4.5-1
+- Package Spec generated