FOSSLight Util
It is a package that supports common utils used by FOSSLight Scanner.
Features
- It simplifies the logger setup.
- It provides a simple function to create a output file.
- It provides a spdx license list with json format.
- It defines common constant variables.
- It provides a thread that prints the spinner.
- Download source code.
Contents
📋 Prerequisite
FOSSLight Util needs a Python 3.10+.
🎉 How to install
It can be installed using pip3.
$ pip3 install fosslight_util
🚀 How to use
Three modules can be called. Please refer to each file for detailed calling method.
1. Setup logger (tests/test_log.py)
from fosslight_util.set_log import init_log
# 1st param : log file path
# 2nd param : create file (True/False)
# 3rd param : stream log level
# 4th param : file log level
# =>log level(CRITICAL:50, ERROR:40, WARNING:30, INFO:20, DEBUG:10, NOTSET:0)
# 5th param : package name of fosslight scanners (fosslight_source / fosslight_dependency / fosslight_reuse)
# 6th param : path to analyze
#
# 1st return value : a logger
# 2nd return value : log items to print
def test():
logger, log_item = init_log("test_result/log_file1.txt", True, 30, 20)
logger.warning("TESTING - Print log")
2. Write result files (tests/test_output_format.py)
from fosslight_util.output_format import write_output_file
# 2nd param : output file format
# => file format(excel: .xlsx, csv: .csv, opossum: .json)
def test():
sheet_contents = {'SRC':[['run_scancode.py', 'fosslight_source',
'3.0.6', 'Apache-2.0', 'https://github.com/LGE-OSS/fosslight_source', 'https://github.com/LGE-OSS/fosslight_source', 'Copyright (c) 2021 LG Electronics, Inc.', 'Exclude', 'Comment message'],
['dependency_unified.py', 'fosslight_dependency',
'3.0.6', 'Apache-2.0', 'https://github.com/LGE-OSS/fosslight_dependency', 'https://github.com/LGE-OSS/fosslight_dependency', 'Copyright (c) 2020 LG Electronics, Inc.', '', '']],
'BIN':[['askalono.exe', 'askalono',
'0.4.3', 'Apache-2.0', 'https://github.com/jpeddicord/askalono', '', 'Copyright (c) 2018 Amazon.com, Inc. or its affiliates.', '', '']]}
success, msg = write_output_file('test_result/excel/FOSSLight-Report', '.xlsx', sheet_contents)
3. Get spdx licenses (tests/test_spdx_licenses.py)
from fosslight_util.spdx_licenses import get_spdx_licenses_json
def test():
success, error_msg, licenses = get_spdx_licenses_json()
4. Load common constant (tests/_print_log_with_another_logger.py)
import fosslight_util.constant as constant
logger = logging.getLogger(constant.LOGGER_NAME)
logger.warning("Get a logger after init_log is called once.")
5. Call a spinner (tests/test_timer.py)
from fosslight_util.timer_thread import TimerThread
timer = TimerThread()
timer.setDaemon(True)
timer.start()
6. Download the source code (tests/test_download.py)
If you give a link, the source is downloaded to the target directory through git clone or wget.
How it works
- Try git clone. 1-1. If the link is ssh-url, convert to https-url.
- If git clone fails, download it with wget and extract the compressed file.
- After extracting the compressed file, delete the compressed file.
Parameters
| Parameter | Argument | Description |
|---|---|---|
| h | None | Print help message. |
| s | String | Link to download. |
| t | String | Path to download and extract. |
| d | String | Path to save a log file. |
How to run
$ fosslight_download -s "https://github.com/LGE-OSS/example" -t target_dir/
Limit download size (GB) with --size-limit / -l (omit for unlimited):
$ fosslight_download -s "https://github.com/LGE-OSS/example" -t target_dir/ -l 5
If you want to try with private repository, set your github token like below.
$ fosslight_download -s "https://my_github_token@github.com/Foo/private_repo -t target_dir/"
📝 How to report issue
Please report any ideas or bugs to improve by creating an issue in fosslight_util repository. Then there will be quick bug fixes and upgrades. Ideas to improve are always welcome.
👏 Contributing Guide
We always welcome your contributions. Please see the CONTRIBUTING guide for how to contribute.
📄 License
FOSSLight Util is released under Apache-2.0.
Metadata
Release files for fosslight-util 2.2.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fosslight_util-2.2.14.tar.gz | 969.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fosslight_util-2.2.14-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / fosslight_util-2.2.14.tar.gz
| Download URL | fosslight_util-2.2.14.tar.gz |
|---|---|
| Size | 969.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
23a43007b545005eb59dd0be31ce918ccdb4328e79d70a3c3998bec9cc7f7067
|
|
BLAKE2b-256 checksum How to use checksums |
8f40d249410cda076df952dbd78f7155d811b85ad64506c7b5fb6f449dbdbc8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / fosslight_util-2.2.14-py3-none-any.whl
| Download URL | fosslight_util-2.2.14-py3-none-any.whl |
|---|---|
| Size | 971.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4d5c6a3b0829f078498d15bd06d846981774c4b241613d528d52d4de5d31f44
|
|
BLAKE2b-256 checksum How to use checksums |
ecc7c13ee2c9806572114e959a83dd42b0bfb3233c5e6a3197f31e104e1c8038
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|