Metadata-Version: 2.1
Name: hks_pylib
Version: 0.0.7
Summary: A python utility library is written by huykingsofm
Home-page: https://github.com/huykingsofm/hks_pylib
Author: huykingsofm
Author-email: huykingsofm@gmail.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/huykingsofm/hks_pylib/issues
Description: # hks_pylib
        A Python 3 utility library of [huykingsofm](https://github.com/huykingsofm). It has some modules, including:
        - `logger`: A module is used to print notifications to the console screen or write logs to file. It is special because you can disable the print/write statement by modifying a few parameters without commenting or deleting them manually. 
        - `cryptography`: A wrapper crypto module bases on and is followed by the implementation style of [cryptography](https://pypi.org/project/cryptography/). It is easier to use than the original one and fits many procedures in our projects.
        - `done`: A module defines a class (`Done`) for returning complex values more conveniently.
        - `http`: A module is used to parse or generate raw HTTP packets.
        - `math`: A module implements some no-builtin mathematic operations.
        - `hksenum`: A wrapper module of `Enum` is more convenient than the original.
        - `files`: A file processing module.
        
        # How to build
        Our library is only supported by Python>=3.7.1. Now we test it only on Python 3.7.1. If you meet any problems, even if with other versions, you could [create an issue](https://github.com/huykingsofm/hks_pylib/issues) to notify us. We will solve them as quickly as possible.  
        
        ## Create Virtual Environment (optional but IMPORTANT)
        *If you had your virtual environment, you can ignore this step.* 
        
        You ought to create a virtual environment to avoid conflicting with other applications on your machine when installing our module. The virtual environment must be installed with [Python 3](https://www.python.org/downloads).  
        I highly recommend you to use [Anaconda](https://www.anaconda.com/products/individual) because of its utilities. The command of creating a virtual environment in Anaconda is:
        ```bash
        $ conda create -n your_venv_name python=3.7.1
        $ conda activate your_venv_name
        (your_venv_name) $ _ 
        ```
        
        Or use `Python venv`:
        ```bash
        $ python -m venv path/to/your/venv
        $ path/to/your/venv/Scripts/activate.bat
        (your_venv_name) $ _
        ```
        
        ## Method 1: Install the stablest version (PyPI)
        ```bash
        (your_venv_name) $ pip install hks_pylib
        ```
        
        ## Method 2: Install the newest version (Github)
        
        ```bash
        (your_venv_name) $ git clone https://github.com/huykingsofm/hks_pylib.git
        (your_venv_name) $ cd hks_pylib
        (your_venv_name) hks_pylib $ pip install -e .
        ```
        
        # How to use
        Just use `import` statement and enjoy it. We will write documentation and tutorials as soon as possible so that you can understand our library easier.
        
        ```python
        # A Done object can be used to substitute 
        # complex return values
        from hks_pylib.done import Done
        # Example: return Done(True, reason="OK")
        
        # A class is used to print/write 
        # logs to console/file
        from hks_pylib.logger import StandardLogger  
        
        # A class is used to generate StandardLogger objects.
        # You should use this class instead of 
        # using StandardLogger directly
        from hks_pylib.logger import StandardLoggerGenerator
        
        # You may use our console_output instead of print builtin function
        # in a multithread program
        from hks_pylib.logger import acprint
        acprint("Something")
        
        # Some common ciphers
        from hks_pylib.cipher import NoCipher, AES_CBC, HybridCipher 
        
        # You can parse or generate raw HTTP packets with these class
        from hks_pylib.http import HTTPParser, HTTPPacket  
        
        # You can encrypt or decrypt your data with our cryptography module
        from hks_pylib.cryptography.ciphers.symmetrics import AES_CTR, AES_CBC
        from hks_pylib.cryptography.ciphers.asymmetrics import RSAKey, RSACipher
        # or hash functions
        from hks_pylib.cryptography.hashes import SHA1, SHA256
        # or Diffie Hellman
        from hks_pylib.cryptography.protocols import DiffieHellmanExchange
        ```
        
        # Change log
        ## Version 0.0.7
        + Fix the error of `InvisibleLogger`.
        + Fix `reset()` in `AES_CTR` and `AES_CBC`.
        + Fix `save...()` and `load...()` in `RSAKey`.
        + Add the `acprint(.)` for avoid conflicting print.
        + Add `@as_object` decorator.
        + Add `MD5` to `hashes`.
        + Add `KeyGenerator` to `ciphers`.
        
        
        ## Version 0.0.6
        + Change .gitignore to template of Python.
        + Change the `http` style.
        + Change the `logger` to `HKSEnum` style.
        + Add `InvisibleLoggerGenerator`, `InvisibleLogger` for more convenient.
        + Add some utility methods to `HKSEnum` and `Done`.
        + Change many error types and replace some errors to `hkserror`.
        <!---Commit at 02/05/2021 8:00:00-->
        
        ## Version 0.0.5
        + Change allmost all generic exceptions to highly identified exceptions (in modules of `hks_pylib.errors`).
        + Add the `Output` class to `hks_pylib.logger.config`. Now logger can easily avoid conflicting in printing.
        + Add a wrapper module `hks_pylib.hksenum` of builtin python class `Enum`. Change many constants to `HKSEnum` type.
        + Divide module `hks_pylib.cryptography.ciphers` into multiple submodules and move them to folder `cryptography/ciphers/`.
        + Divide module `hks_pylib.logger` into multiple submodules and move them to folder `logger/`.
        + Remove `requirements.txt`.
        + Add `Bitwise` operator to `math`.
        + Add [`batchcrypt`](https://www.usenix.org/conference/atc20/presentation/zhang-chengliang) module to `hks_pylib.cryptography`.
        + Add an example of `batchcrypt` in folder `examples/`.
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7.1
Description-Content-Type: text/markdown
