BDRC Utilities
Project description
BDRC-UTIL
Overview
BDRC UTIL is a python package containing modules for use by the Buddhist
Digital Resource Center. It is offered to the public under the MIT License <https://mit-license.org>
__. This document describes its
contents and features.
Although publicly available, BDRC does not support this project for use by others. We will not respond to questions about its features and functionality.
Development
archive-ops uses python packages from archive-ops/venv
###
Deployment
.. code:: shell
be in project main dir
python -m setup bdist_wheel
test
twine upload --verbose -r testpypi dist/bdrc_util-x.MM.mm-py3-none-any.whl
prod
twine upload --verbose dist/bdrc_util-x.MM.mm-py3-none-any.whl
Installation
pyPI.org bdrc-util <https://pypi.org/project/bdrc-util/>
__ ### Debian
requirements You need this (and its dependencies) for the pip component
mysqlclient to install sudo apt install default-libmysqlclient-dev
MacOS requirements You need this (and its dependencies) for the pip
component mysqlclient to install brew install mysql
## Contents ###
Publicly available scripts As defined in setup.py ### locators Maps a
work and a destination parent to a specific directory using various BDRC
mapping schemes ### migrate works Scripts to migrate and log works into
BDRC’s 2021 Archival strategy ### log_dip Log creation and distribution
of Distribution Information Packages (DIPs). DIP is an OAIS term to
describe a unit of publication. ## User Guides ### log_dip
The
command log_dip
is intended for use by BDRC staff to instrument
their publication activities. log_dip
takes arguments from the shell
and transfers them into a database table.
Synopsis ^^^^^^^^
::
log_dip --help usage: DipLog.py | -d DBAppSection:DbAppFile DipLog.py
Logs a number of different publication strategies
positional arguments: dip_source_path Source path - string, (optional) dip_dest_path Destination path (optional) - string
optional arguments: -h, --help show this help message and exit -d DRSDBCONFIG, --drsDbConfig DRSDBCONFIG specify section:configFileName -l {info,warning,error,debug,critical}, --log-level {info,warning,error,debug,critical} choice values are from python logging module -a {DRS,IA,BUDA,DEEP_ARCHIVE,ARCHIVE}, --activity_type {DRS,IA,BUDA,DEEP_ARCHIVE,ARCHIVE} Destination repository -w WORK_NAME, --work_name WORK_NAME work being distributed -i DIP_ID, --dip_id DIP_ID ID to update -r ACTIVITY_RETURN_CODE, --activity_return_code ACTIVITY_RETURN_CODE Integer result of operation. -b BEGIN_TIME, --begin_time BEGIN_TIME time of beginning - ')yyyy-mm-dd hh:mm:ss bash format date +'%Y-%m-%d %R:%S' -e END_TIME, --end_time END_TIME time of end.Default is invocation time. yyyy-mm-dd hh:mm:ss bash format date + '%Y-%m-%d %R:%S' -c COMMENT, --comment COMMENT Any text up to 4GB in length
Argument structure ^^^^^^^^^^^^^^^^^^
log_dip creates a database record that captures the beginning or end of a DIP event.
All its operations return an opaque identifier which can reference the record. In bash, this would be invoked as
You reference the record later by one of two methods: * passing in the id from the initial (or subsequent calls):
.. code:: shell
dip_id=$(dip_log --drsDbConfig sec:some.config --begin_time "2021-05-11 01:23:45" --activity_type DRS --work_name W12345)
dip_log -d sec:some.config --activity_return_code 42 --end_time "2021-05-11 12:34:56" --dip_id $dip_id
- using the work Id, Activity type and begin time:
.. code:: shell
dip_log -d sec:some.config -b "2021-05-11 01:23:45" -a DRS -w W12345
dip_log -d sec:some.config -b "2021-05-11 01:23:45" -a DRS -w W12345 -r 42 -e "2021-05-11 12:34:56"
Both of the above examples perform the same function:
- log the start of a DRS job for work W12345 at “2021-05-11 01:23:45”
- log the end_time of the job at “2021-05-11 12:34:56” , with a return code of 42
Argument hints ^^^^^^^^^^^^^^
- to give an end time, you must give all the job id information, either in the id, or with the (work_name, begin_time, activity_id) tuple
- You can add as much information as you want in one call. If you’ve captured the begin time, you can create a call which logs them all at the same time (this is not the best practice, because it eliminates the system’s ability to check for in-progress jobs). This is perfectly legal:
.. code:: shell
dip_log -d sec:some.config -b "2021-05-11 01:23:45" -a DRS -w W12345 -r 42 -e "2021-05-11 12:34:56 -c "Hi Mom, Im re-writing history"
-
Begin and end dates are fussy: in shell, the format for generating the date dip_log requires is:
date +%Y-%m-%d %R:%S
(for Mac with GNU core, GNU Linuxes) -
you can update some DIP log properties:
- comments
- end time
- operation return code
-
Obviously, since these are the tuple which identifies the transaction, you cannot modify:
- work name
- begin time
- activity type
In this example, the comments field is updated.
.. code:: shell
dip_log_id=$( dip_log -d sec:some.config -b "2021-05-11 01:23:45" -a DRS -w W12345 -r 42 -e "2021-05-11 12:34:56 -c "Experienced some discomfort") dip_log -d sec:some.config -i $dip_log_id -c "But it passed.")
-
Any property not given in the command line is preserved. (The example above preserves the begin and end times of the DIP transaction.)
-
the comment field is a free-form text field of up to 4GB in length. You can store XML or JSON data in it for later use. (such as any error messages or summary information about the process or the objects being processed)
Changelog
======= ========================================= version Comments ======= ========================================= 0.9.38 Added RST documentation to setup. \ Added minimum requirement for bdrc-db-lib ======= =========================================
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for bdrc_util-0.9.38-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2ec21db7e52853141cc651cf1f04fa06936e9c944cab79ba4f5ec351943dd8d |
|
MD5 | 16ed01722f088bacac0ddd2924761895 |
|
BLAKE2b-256 | 9e0ca56d2d4d8d1f9b5ff9d68c031ec8ee40498f69d344341d129a36170f0567 |