Metadata-Version: 2.1
Name: dctap
Version: 0.3.2
Summary: Validate and debug DCTAP instances.
Home-page: https://github.com/dcmi/dctap-python
Author: DCMI
Author-email: admin@dublincore.net
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: click
Requires-Dist: dataclasses
Requires-Dist: ruamel.base
Requires-Dist: ruamel.yaml
Requires-Dist: sphinx ; extra == "doc"
Requires-Dist: sphinx_rtd_theme ; extra == "doc"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Provides-Extra: doc
Provides-Extra: test

dctap-python
============

Basic validation of a DCTAP instance.

|Tests Badge| |Docs Badge| |Black Badge|

Documentation
-------------

- https://dctap-python.readthedocs.io/en/latest/


Installation
------------

To work correctly, "dctap" requires Python 3.7 or higher. Executing the command ``python3`` should show you if Python 3 is installed on your machine and in which version.

As explained below, the command-line utility can be installed either from the online PyPI repository, using the ``pip`` command, or from a local copy of the project on your own machine.

Installation with pip (ordinary users)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Installing with "pip" pulls the most recently published version of the project from the `PyPI repository <https://pypi.org/project/dctap/>`_ with the following command:

.. code-block:: bash

    python3 -m pip install -U https://github.com/dcmi/dctap-python/archive/main.zip

Installation with pip (developers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

For developers who work alot with Python projects, it is good practice to create and activate a virtual environment so that "dctap", and its dependencies, will not be installed into the global Python environment on your machine. The virtual environment is held in a directory of your choice; in the example below, a hidden directory ``.venv`` is created in ``some_directory`` (your current working directory), and the virtual environment is activated by executing ``source .venv/bin/activate``.

.. code-block:: bash
    
    some_directory$ python3 -m venv .venv
    some_directory$ source .venv/bin/activate
    some_directory$ python3 -m pip install -U https://github.com/dcmi/dctap-python/archive/main.zip

Note that "dctap" will pip-install even without creating and activating a virtual environment, even though this is not considered good practice. If you do install it into a virtual environment, note that the virtual environment must be activated with `source .venv/bin/activate` or "dctap" will not work. The activation of a virtual environment can be automated by adding this command to a shell profile where it will be executed when starting the shell, for example by adding the lines to the file "~/.bash_profile":

.. code-block:: bash

    cd /Users/foo/somedirectory
    source .venv/bin/activate

Installation from a local clone of Git repository
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Cloning the "dctap-python" repository to your machine and installing it from the ``dctap-python`` directory is a good option if you want to keep up-to-date with the latest developments in the project. The following commands install "dctap" for the first time. In order to refresh the project directly from the project repository, you can at any time execute ``git pull`` (from within the repository), which will install the latest features and bug fixes in your local copy.

.. code-block:: bash

    $ git clone https://github.com/dcmi/dctap-python.git
    $ cd dctap-python
    dctap-python$ python -m venv .venv
    dctap-python$ source .venv/bin/activate
    dctap-python$ python3 -m pip install flit Pygments
    dctap-python$ flit install -s

Quick start
-----------

Run without arguments, "dctap" shows what options and commands are available.

.. code-block:: bash

    $ dctap
    Usage: dctap [OPTIONS] COMMAND [ARGS]...
    
      DC Tabular Application Profiles (DCTAP) - base module
    
    Options:
      --version  Show version and exit
      --help     Show help and exit
    
    Commands:
      generate  Given CSV, generate text, JSON, or YAML, with warnings.
      init      Write out starter config file [default: dctap.yml]

To examine a CSV file formatted according to the DCTAP model (here: "some_dctap.csv"), use the ``dctap generate`` command.

.. code-block:: bash
    
    $ dctap generate some_dctap.csv

For more information, see the documentation `on readthedocs.io <https://dctap-python.readthedocs.io/en/latest/>`_.


.. |Docs Badge| image:: https://readthedocs.org/projects/dctap-python/badge/
       :alt: Documentation Status
       :scale: 100%
       :target: https://dctap-python.readthedocs.io
       
.. |Tests Badge| image:: https://github.com/dcmi/dctap-python/actions/workflows/python-tests.yaml/badge.svg
       :alt: Test Status
       :scale: 100%
       :target: https://github.com/dcmi/dctap-python/actions/workflows/python-tests.yaml

.. |Black Badge| image:: https://img.shields.io/badge/code%20style-black-000000.svg
       :alt: Code style: black
       :scale: 100%
       :target: https://github.com/dcmi/dctap-python

