Metadata-Version: 1.2
Name: fleep
Version: 1.0.1
Summary: File format determination library
Home-page: https://github.com/floyernick/fleep
Author: Mykyta Paliienko
Author-email: floyernick@gmail.com
License: MIT
Description-Content-Type: UNKNOWN
Description: fleep
        =====
        
        File format determination library for Python
        
        |pypi version| |python version| |license|
        
        Getting Started
        ---------------
        
        **fleep** is a library that determines file format by file signature (also known as "magic number").
        
        Installation
        ------------
        
        You can install fleep using *pip*. Simply run in CLI:
        
        ::
        
            pip install fleep
        
        Requirements
        ------------
        
        -  Python >= 3.1
        
        In Use
        ------
        
        fleep has main function *get()* that determines file format. It takes byte sequence (128 bytes are enough) as an argument and returns an instance of class *Info* with the following arguments:
        
        -  *type* -> list of suitable file types
        -  *extension* -> list of suitable file extensions
        -  *mime* -> list of suitable file MIME types
        
        You may presume that first element in list will be the most suitable.
        
        Also an instance of class *Info* has the following methods:
        
        -  *type_matches()* -> checks if file type matches with given type as an argument
        -  *extension_matches()* -> checks if file extension matches with given extension as an argument
        -  *mime_matches()* -> checks if file MIME type matches with given MIME type as an argument
        
        There are 3 more functions:
        
        -  *supported_types()* -> returns a list of supported file types
        -  *supported_extensions()* -> returns a list of supported file extensions
        -  *supported_mimes()* -> returns a list of supported file MIME types
        
        Examples
        --------
        
        You can find examples in *examples* folder. There is a simple example:
        
        .. code:: python
        
            import fleep
        
            with open("png_image", "rb") as file:
                info = fleep.get(file.read(128))
        
            print(info.type)  # prints ['raster-image']
            print(info.extension)  # prints ['png']
            print(info.mime)  # prints ['image/png']
        
            print(info.type_matches("raster-image"))  # prints True
            print(info.extension_matches("gif"))  # prints False
            print(info.mime_matches("image/png"))  # prints True
        
        Tests
        -----
        
        You can find tests in *tests* folder. There are results of speed test:
        
        **Workstation**
        
        -  Python 3.6 x64 bit
        -  Windows 10 Home x64 bit
        -  Intel Pentium G4620 3.70GHz
        -  Kingston DDR4-2400 8192MB
        -  Kingston SSD 120GB 550MB/s
        
        **Results**
        
        *Note:* 0.0012345 -> time in seconds
        
        +-----------+---------+-----------+-----------+
        | Iteration | Minimum | Maximum   | Average   |
        +===========+=========+===========+===========+
        | 1         | 0.0     | 0.0005312 | 0.0000851 |
        +-----------+---------+-----------+-----------+
        | 2         | 0.0     | 0.0005360 | 0.0000858 |
        +-----------+---------+-----------+-----------+
        | 3         | 0.0     | 0.0005236 | 0.0000837 |
        +-----------+---------+-----------+-----------+
        | 4         | 0.0     | 0.0005035 | 0.0000833 |
        +-----------+---------+-----------+-----------+
        | 5         | 0.0     | 0.0005295 | 0.0000835 |
        +-----------+---------+-----------+-----------+
        
        Supported Formats
        -----------------
        
        There is a list of supported formats (in alphabetical order):
        
        *Raster Image:*
        
        -  BMP
        -  GIF
        -  ICO
        -  JP2
        -  JPEG
        -  PNG
        -  PSD
        -  TIFF
        -  WEBP
        
        *Raw Image:*
        
        -  ARW
        -  CR2
        -  CRW
        -  DNG
        -  ERF
        -  NEF
        -  NRW
        -  ORF
        -  PEF
        -  RAF
        -  RAW
        -  RW2
        -  SRW
        -  X3F
        
        *Vector Image:*
        
        -  AI
        -  EPS
        
        *3D Image:*
        
        -  C4D
        -  FBX
        -  MA
        -  MS3D
        -  MTL
        -  OBJ
        -  PLY
        -  WRL
        -  X3D
        -  XSI
        
        *Audio:*
        
        -  AAC
        -  AC3
        -  AIFF
        -  AMR
        -  AU
        -  FLAC
        -  M4A
        -  MIDI
        -  MKA
        -  MP3
        -  OGA
        -  RA
        -  VOC
        -  WAV
        -  WMA
        
        *Video:*
        
        -  3G2
        -  3GP
        -  ASF
        -  AVI
        -  FLV
        -  M4V
        -  MKV
        -  MOV
        -  MP4
        -  MPG
        -  OGV
        -  SWF
        -  VOB
        -  WEBM
        -  WMV
        
        *Document:*
        
        -  DOC
        -  DOCX
        -  EPUB
        -  KEY
        -  NUMBERS
        -  ODP
        -  ODS
        -  ODT
        -  PAGES
        -  PDF
        -  PPS
        -  PPT
        -  PPTX
        -  RTF
        -  XLS
        -  XLSX
        -  XML
        
        *Archive:*
        
        -  7Z
        -  DMG
        -  GZ
        -  ISO
        -  RAR
        -  TAR.Z
        -  ZIP
        
        *Executable:*
        
        -  COM
        -  EXE
        -  JAR
        
        *Font:*
        
        -  OTF
        -  TTF
        -  WOFF
        -  WOFF2
        
        *System:*
        
        -  CAB
        -  CAT
        -  DLL
        -  DRV
        -  REG
        -  SDB
        -  SYS
        
        *Database:*
        
        -  SQLITE
        
        Changelog
        ---------
        
        You can find changelog in *CHANGELOG.md* file.
        
        License
        -------
        
        This project is licensed under the *MIT License*.
        
        Authors
        -------
        
        **Mykyta Paliienko** - `GitHub profile`_
        
        .. _GitHub profile: https://github.com/floyernick
        
        .. |pypi version| image:: https://img.shields.io/badge/pypi-v1.0.1-blue.svg
           :target: https://pypi.python.org/pypi/fleep
        .. |python version| image:: https://img.shields.io/badge/python-3-blue.svg
        .. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
           :target: https://github.com/floyernick/fleep/blob/master/LICENSE
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
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
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development
Requires-Python: >=3.1
