Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/bagit-1.7.0-py3.7.egg-info/PKG-INFO @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/bagit-1.7.0-py3.7.egg-info/PKG-INFO Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,297 @@ +Metadata-Version: 1.1 +Name: bagit +Version: 1.7.0 +Summary: Create and validate BagIt packages +Home-page: https://libraryofcongress.github.io/bagit-python/ +Author: Ed Summers +Author-email: ehs@pobox.com +License: UNKNOWN +Description: bagit-python + ============ + + |Build Status| |Coverage Status| + + bagit is a Python library and command line utility for working with + `BagIt <http://purl.org/net/bagit>`__ style packages. + + Installation + ------------ + + bagit.py is a single-file python module that you can drop into your + project as needed or you can install globally with: + + :: + + pip install bagit + + Python v2.7+ is required. + + Command Line Usage + ------------------ + + When you install bagit you should get a command-line program called + bagit.py which you can use to turn an existing directory into a bag: + + :: + + bagit.py --contact-name 'John Kunze' /directory/to/bag + + Finding Bagit on your system + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + The ``bagit.py`` program should be available in your normal command-line + window (Terminal on OS X, Command Prompt or Powershell on Windows, + etc.). If you are unsure where it was installed you can also request + that Python search for ``bagit`` as a Python module: simply replace + ``bagit.py`` with ``python -m bagit``: + + :: + + python -m bagit --help + + On some systems Python may have been installed as ``python3``, ``py``, + etc. – simply use the same name you use to start an interactive Python + shell: + + :: + + py -m bagit --help + python3 -m bagit --help + + Configuring BagIt + ~~~~~~~~~~~~~~~~~ + + You can pass in key/value metadata for the bag using options like + ``--contact-name`` above, which get persisted to the bag-info.txt. For a + complete list of bag-info.txt properties you can use as commmand line + arguments see ``--help``. + + Since calculating checksums can take a while when creating a bag, you + may want to calculate them in parallel if you are on a multicore + machine. You can do that with the ``--processes`` option: + + :: + + bagit.py --processes 4 /directory/to/bag + + To specify which checksum algorithm(s) to use when generating the + manifest, use the --md5, --sha1, --sha256 and/or --sha512 flags (MD5 is + generated by default). + + :: + + bagit.py --sha1 /path/to/bag + bagit.py --sha256 /path/to/bag + bagit.py --sha512 /path/to/bag + + If you would like to validate a bag you can use the --validate flag. + + :: + + bagit.py --validate /path/to/bag + + If you would like to take a quick look at the bag to see if it seems + valid by just examining the structure of the bag, and comparing its + payload-oxum (byte count and number of files) then use the ``--fast`` + flag. + + :: + + bagit.py --validate --fast /path/to/bag + + And finally, if you'd like to parallelize validation to take advantage + of multiple CPUs you can: + + :: + + bagit.py --validate --processes 4 /path/to/bag + + Using BagIt in your programs + ---------------------------- + + You can also use BagIt programatically in your own Python programs by + importing the ``bagit`` module. + + Create + ~~~~~~ + + To create a bag you would do this: + + .. code:: python + + bag = bagit.make_bag('mydir', {'Contact-Name': 'John Kunze'}) + + ``make_bag`` returns a Bag instance. If you have a bag already on disk + and would like to create a Bag instance for it, simply call the + constructor directly: + + .. code:: python + + bag = bagit.Bag('/path/to/bag') + + Update Bag Metadata + ~~~~~~~~~~~~~~~~~~~ + + You can change the metadata persisted to the bag-info.txt by using the + ``info`` property on a ``Bag``. + + .. code:: python + + # load the bag + bag = bagit.Bag('/path/to/bag') + + # update bag info metadata + bag.info['Internal-Sender-Description'] = 'Updated on 2014-06-28.' + bag.info['Authors'] = ['John Kunze', 'Andy Boyko'] + bag.save() + + Update Bag Manifests + ~~~~~~~~~~~~~~~~~~~~ + + By default ``save`` will not update manifests. This guards against a + situation where a call to ``save`` to persist bag metadata accidentally + regenerates manifests for an invalid bag. If you have modified the + payload of a bag by adding, modifying or deleting files in the data + directory, and wish to regenerate the manifests set the ``manifests`` + parameter to True when calling ``save``. + + .. code:: python + + + import shutil, os + + # add a file + shutil.copyfile('newfile', '/path/to/bag/data/newfile') + + # remove a file + os.remove('/path/to/bag/data/file') + + # persist changes + bag.save(manifests=True) + + The save method takes an optional processes parameter which will + determine how many processes are used to regenerate the checksums. This + can be handy on multicore machines. + + Validation + ~~~~~~~~~~ + + If you would like to see if a bag is valid, use its ``is_valid`` method: + + .. code:: python + + bag = bagit.Bag('/path/to/bag') + if bag.is_valid(): + print("yay :)") + else: + print("boo :(") + + If you'd like to get a detailed list of validation errors, execute the + ``validate`` method and catch the ``BagValidationError`` exception. If + the bag's manifest was invalid (and it wasn't caught by the payload + oxum) the exception's ``details`` property will contain a list of + ``ManifestError``\ s that you can introspect on. Each ManifestError, + will be of type ``ChecksumMismatch``, ``FileMissing``, + ``UnexpectedFile``. + + So for example if you want to print out checksums that failed to + validate you can do this: + + .. code:: python + + + bag = bagit.Bag("/path/to/bag") + + try: + bag.validate() + + except bagit.BagValidationError as e: + for d in e.details: + if isinstance(d, bagit.ChecksumMismatch): + print("expected %s to have %s checksum of %s but found %s" % + (d.path, d.algorithm, d.expected, d.found)) + + To iterate through a bag's manifest and retrieve checksums for the + payload files use the bag's entries dictionary: + + .. code:: python + + bag = bagit.Bag("/path/to/bag") + + for path, fixity in bag.entries.items(): + print("path:%s md5:%s" % (path, fixity["md5"])) + + Contributing to bagit-python development + ---------------------------------------- + + :: + + % git clone git://github.com/LibraryOfCongress/bagit-python.git + % cd bagit-python + # MAKE CHANGES + % python test.py + + Running the tests + ~~~~~~~~~~~~~~~~~ + + You can quickly run the tests by having setuptools install dependencies: + + :: + + python setup.py test + + Once your code is working, you can use + `Tox <https://tox.readthedocs.io/>`__ to run the tests with every + supported version of Python which you have installed on the local + system: + + :: + + tox + + If you have Docker installed, you can run the tests under Linux inside a + container: + + :: + + % docker build -t bagit:latest . && docker run -it bagit:latest + + Benchmarks + ---------- + + If you'd like to see how increasing parallelization of bag creation on + your system effects the time to create a bag try using the included + bench utility: + + :: + + % ./bench.py + + License + ------- + + |cc0| + + Note: By contributing to this project, you agree to license your work + under the same terms as those that govern this project's distribution. + + .. |Build Status| image:: https://travis-ci.org/LibraryOfCongress/bagit-python.svg?branch=master + :target: http://travis-ci.org/LibraryOfCongress/bagit-python + .. |Coverage Status| image:: https://coveralls.io/repos/github/LibraryOfCongress/bagit-python/badge.svg?branch=master + :target: https://coveralls.io/github/LibraryOfCongress/bagit-python?branch=master + .. |cc0| image:: http://i.creativecommons.org/p/zero/1.0/88x31.png + :target: http://creativecommons.org/publicdomain/zero/1.0/ + +Platform: POSIX +Classifier: License :: Public Domain +Classifier: Intended Audience :: Developers +Classifier: Topic :: Communications :: File Sharing +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Classifier: Topic :: System :: Filesystems +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3.1 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6