From e8741e115f00a54b6d0a0bcfdb5a7f359d68a30a Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 12 Apr 2023 03:20:53 +0000 Subject: automatic import of python-dictionaryutils --- .gitignore | 1 + python-dictionaryutils.spec | 271 ++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 273 insertions(+) create mode 100644 python-dictionaryutils.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..406320e 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/dictionaryutils-3.4.5.tar.gz 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 - 3.4.5-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..e1a03ee --- /dev/null +++ b/sources @@ -0,0 +1 @@ +2da0d9201d3e57b0f03d338000ee449a dictionaryutils-3.4.5.tar.gz -- cgit v1.2.3