Metadata-Version: 1.2
Name: ufotest
Version: 0.8.1
Summary: CLI for setting up ufo camera test station
Home-page: https://github.com/the16thpythonist/ufotest
Author: Jonas Teufel
Author-email: jonseb1998@gmail.com
License: MIT license
Description: =======
        ufotest
        =======
        
        .. image:: ../logo.png
                :alt: Logo
        
        .. image:: https://img.shields.io/pypi/v/ufotest.svg
                :target: https://pypi.python.org/pypi/ufotest
        
        .. image:: https://img.shields.io/travis/the16thpythonist/ufotest.svg
                :target: https://travis-ci.com/the16thpythonist/ufotest
        
        .. image:: https://readthedocs.org/projects/ufotest/badge/?version=latest
                :target: https://ufotest.readthedocs.io/en/latest/?badge=latest
                :alt: Documentation Status
        
        
        The ufotest project provides a command line interface to install and test the UFO camera, which was developed at the
        Institute of Data Processing (IPE) of the Karlsruhe Institute of Technology (KIT).
        
        * Free software: MIT license
        * Documentation: https://ufotest.readthedocs.io.
        
        Installation
        ------------
        
        The easiest way to install this package is by using PIP. This will automatically install all the requirements and
        also register the CLI commands to be usable.
        (Note that the "sudo" is important to make the commands register correctly within the operating system)
        
        .. code-block:: console
        
            $ pip3 install ufotest
            $ export PATH=$PATH:$HOME/.local/bin
            $ ufotest init
        
        Usage
        -----
        
        The command line can be accessed through the `ufotest` command within the console. Use the `--help` option to display
        a list of all available commands or consilt the Documentation for a more detailed explanation
        
        .. code-block:: console
        
            $ ufotest --help
        
        Features
        --------
        
        - Global configuration file
        - Automatic installation of all dependencies for a barebones operation of the UFO camera
        
        Credits
        -------
        
        The following software was used in the creation of the project:
        
        * Cookiecutter_: A CLI tool for project templating
        * `audreyr/cookiecutter-pypackage`_: A basic template for python package projects
        
        .. _Cookiecutter: https://github.com/audreyr/cookiecutter
        .. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage
        
        
        =======
        History
        =======
        
        0.1.0 (2020-08-13)
        ------------------
        
        - First release on PyPI.
        
        0.2.0 (2020-08-23)
        ------------------
        
        - First actual release with content
            - "install" command to install ufotest command automatically
            - "config" command to edit global configuration file
            - "frame" command to acquire and display a single frame
        
        0.3.0 (2020-08-24)
        ------------------
        
        - Added additional package for SUSE which installs c++ compiler
        - Fixed unhandled exception in "frame"
        - Added additional output if a cmake installation fails
        - fixed readme
        - Added "init" command, which will setup the installation folder and the config file
        
        0.3.1 (2020-08-25)
        ------------------
        
        - Small adjustments to the documentation
        - Added "status.sh" and "reset.sh" scripts from michele to the main code folder.
        
        0.4.0 (2020-08-27)
        ------------------
        
        - Added installation packages for OpenSUSE to the documentation
        - Copied the power up and power down scripts from the IPE
        - Copied the vivado start script from the IPE
        - Now checking for a valid ufotest installation before every command, thus preventing running into an obvious exception.
        - Added jinja2 to the requirements
        - Added module "camera.py" instead of "capture.py" to contain all the camera related functionality
        - Modified config file
            - Added "scripts" section, which allows the user to register custom commands.
        - Added the "script" command: Executes (bash) scripts, which were registered in the project
        - Added functions which setup and teardown the camera state
            - Execute them in "frame" command
        - Added an option to "config" which allows to specify the editor
        
        0.4.1 (2020-08-27)
        ------------------
        
        - Fixed the MANIFEST.in file, which did not include the bash scripts in the distribution package
        
        0.4.2 (2020-09-01)
        ------------------
        
        - Removed the setup and teardown process from the "frame" command, because as of right now,
          the power up and down should not be called too often, because there are problems with the FPGA regarding that.
        - registered 2 new scripts
            - pcie_init
            - reset_fpga
        - Changed the parameter type for the output of the frame command from Path to File in the hopes of making it
          able to overwrite like this
        - Fixed the image display using matplotlib
        
        0.5.0 (2020-09-01)
        ------------------
        
        - Moved the code to import a number N of raw images from a file to it's own function in camera.py
        - Added commands:
            - setup: Will enable the camera to work
            - teardown: Will disable the camera to work. Be careful not to use this while the FPGA still has problems with
              power down
            - list-scripts: Displays a list of all scripts
        - Registered scripts
            - reset_tp: Resets the fpag and enables the test pattern
            - reset_dma: Resets the DMA settings of the fpga
        - Moved the scripts into their own folder
        - Removed the installation of vivado. This is the responsibility of the user. Installation path can be given in the
          config file
        - Added the necessary scripts for the flashing of the fpga
        - changed "execute_script" so that changes folder to the script folder first
        
        0.5.1 (2020-09-01)
        ------------------
        
        - Enabled Sphinx autodoc
        - The "frame" command now removes the prior frame buffer file before saving the new one
        - Updated the "usage" section of the documentation
        
        0.5.2 (2020-09-10)
        ------------------
        
        - Added the file "VERSION" which will be used to set the current version of the project. This file will also be read
          used for the setup.py. The reasoning to create this is that it can also be used for a --version option for the CLI
        - Added the option "--version" to the cli group
        
        0.5.3 (2020-09-10)
        ------------------
        
        - Fixed the inclusion of the VERSION file into the code package
        
        
        0.6.0 (2020-09-10)
        ------------------
        
        - Changed the config names "camera_height" and "camera_width" to "sensor_height" and "sensor_width"
        - moved the "package_install" section within the config to the individual sections for the OS's. So now this does not
          have to be changed by the user, but instead is specific for the chosen operating system.
        - Added the new "flash" command which can be used to flash a new .BIT file to the fpga
            - It uses the "vivado" command from an existing vivado installation to flash the bit file.
        - extended the "usage" section of the documentation with the new flash command
        
        
        0.7.0 (2020-09-18)
        ------------------
        
        - Added the new "test" command, which will execute a camera test procedure
            - Added the "tests" subfolder within the package, which will hold files that define these kind of test routines.
            - Added the TestRunner class which will be used to execute all these tests
            - Added the AbstractTest class, which will act as the base class for defining new camera tests
            - Added the TestReport class, which will wrap the results of the execution of a TestRunner
            - Added the TestSuite class, which will represent a test suite consisting of multiple tests
        - Added the "tests" section in the config file.
        - Fixed the "camera_height" to "sensor_height" in the camera.py module
        - Added the module "_testing.py", which provides utilities for unittesting of the project
            - Added the UfotestTestCase as a extension of the default unittest TestCase, which sets up the project installation
              folder within a temporary folder
        - Tests
            - Fixed the errors within "test_ufotest"
            - Added "test_testing" which contains test cases for testing the TestRunner class
        - Added a "--force" flag to the "init" command, which will delte the entire installation tree first and then reinstalls
          it
        
        
        0.8.0 (2020-09-23)
        ------------------
        
        - Fixes
            - Fixed a broken dict index in install command
            - Fixed wrong config in _testing.py
            - Fixed naming error in default.toml
        - Documentation
            - Added a short description for the items in the table of contents
            - Added a stub for an additional section which will contain notes about the camera itself
            - Changed the recommended way of installation to "from source" because then you could also run
              the unittests, which is pretty important
        - Added the "archive" folder to be created with the "init" command. This folder will contain the results of
          the execution of a test runner.
        - Added the "Config" singleton class, which should be used for config access in the future...
        - Added a "general" section in the config file, which will store the date time format configuration for now, but
          will be used in the future for all configuration, which is not bound to any particular topic.
        - Added the class "AbstractRichOutput", which will serve as an interface for all classes (mainly related to the
          testing functionality) which are supposed to implement plaintext, markdown and latex conversions...+
        - Using jinja2 for templating in the project now
        - Added the "templates" folder to the project. This folder will contain jinja2 templates, which will be used to
          generate the output for the test reports etc.
        - Implemented Markdown conversion for TestReport and TestMetadata. The markdown versions of the test reports are now
          saved in an archive
        - Added pytest to the requirements.txt
        
        0.8.1 (2020-09-23)
        ------------------
        
        - Fixes
            - Changed the file mode of the templates
            - Fixed the way to acces the sensor dimensions in the install.py module
        - Documentation
            - Added the installation of python tkinter as a requirement
            - Changed the installation instructions to not use sudo anymore, but instead to modify PATH
        - Added a "debian" option as operating system in the config file
        
        
        TODO
        ----
        
        - Document camera properties "Notes"
        - Change all usages from config to singleton class
        - Write a test function, which will take a frame and check it for some properties
            - In general I should think about how I want to deal with the tests in a broader conceptional context
              Maybe write some base classes etc?
        - Auto detect the operating system?
        - I could write a "Camera" context manager object...?
        - Make "init" add the necessary stuff to the bashrc file. use jinja2?
        - EEPROM Programmierung
        - tcl Sprache
        
Keywords: ufotest
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5
