Metadata-Version: 2.4
Name: hilinkapi
Version: 0.1.0
Summary: Modern Python API for Huawei HiLink modems
Home-page: https://github.com/yourusername/hilinkapi
Author: HiLink API Contributors
Author-email: 
License: MIT
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.31.0
Requires-Dist: xmltodict>=0.13.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: urllib3>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=22.0.0; extra == "dev"
Requires-Dist: flake8>=5.0.0; extra == "dev"
Requires-Dist: mypy>=0.990; extra == "dev"
Requires-Dist: sphinx>=5.0.0; extra == "dev"
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints>=1.19.0; extra == "dev"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# Huawei HiLink Python 3 API #

This will provide a Python 3 API to manage HiLink based Huawei USB modems,

* E8372h-320
* E8372h-155
* E3372h-320
* E3372h-153

having WebUI version 10.xx.xx, 17.xxx.xx and 21.xxx.xx variants.

Choose the best rotation method suppport with your mobile carrier.


## Python packages ##
Following python package installations are required apart from defaults
```bash   
pip3 install requests
pip3 install xmltodict
pip3 install beautifulsoup4
pip3 install uuid
```

## API Test ##
Run apiTest.py python script to test functionalities.
Example provided for 4 modem types supporting using both with and without authentication
```bash   
python3 apiTest.py
```

## Native compilation using Cython ##

This is for building native linux libraries build from python sources

Have to add python source files into cythonNativeCompile.py
```python
ext_modules = [
...
Extension("HiLinkAPI",  ["HiLinkAPI.py"]),
...
]
```

### Python packages ###
Cython has to be install prior to native compilation.
```bash   
pip3 install cython
```

### Compile ###
Run following to build native libraries from python source
```bash   
python3 cythonNativeCompile.py build_ext --inplace

```

## Test results ##

| E3372h-153 | E3372h-320 | E8372h-320 |
|------------|----------- |------------|
| <img src="https://github.com/chanakalin/hilinkapi/blob/production/images/E3372h-153.png" width="250"> | <img src="https://github.com/chanakalin/hilinkapi/blob/production/images/E3372h-320.png" width="250"> | <img src="https://github.com/chanakalin/hilinkapi/blob/production/images/E8372h-320.png" width="250"> | 

## License ##
This piece of software API is licensed under MIT license.<br/><br/>
Huawei and HiLink are registered trademarks/products of [Huawei Technologies Co. Ltd](https://www.huawei.com) and/or its parents organizations.


