Skip to main content

FOSSLight Util

FOSSLight Util is released under the Apache-2.0. Current python package version. REUSE status

It is a package that supports common utils used by FOSSLight Scanner.

Features

  1. It simplifies the logger setup.
  2. It provides a simple function to create a output file.
  3. It provides a spdx license list with json format.
  4. It defines common constant variables.
  5. It provides a thread that prints the spinner.
  6. 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

  1. Try git clone. 1-1. If the link is ssh-url, convert to https-url.
  2. If git clone fails, download it with wget and extract the compressed file.
  3. 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.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fosslight-util 2.2.15
File Size Uploaded
fosslight_util-2.2.15.tar.gz 975.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fosslight-util 2.2.15
File Interpreter ABI Platform
fosslight_util-2.2.15-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / fosslight_util-2.2.15.tar.gz

Download URL fosslight_util-2.2.15.tar.gz
Size 975.0 kB
Tags Source
SHA-256 checksum
How to use checksums
601aedf45302dac254c653a8982094ab0804fe60dda8b052ba6d37d40dcddccb
BLAKE2b-256 checksum
How to use checksums
709e42a7dde62f0e9a31847fafedb45055909e420177853069a4f2e02815230c
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.15-py3-none-any.whl

Download URL fosslight_util-2.2.15-py3-none-any.whl
Size 973.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eed645b2178ee63a111d6e46fe91482e07b948902dd9d33e9a6b9bd36af92f6f
BLAKE2b-256 checksum
How to use checksums
73befe5cef940481e97f5fe505c87bef9ac2bc5d6a1f4b4fb3d1b247efa142bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

2.2.15 This release

2 release files

2.2.14

2 release files

2.2.13

2 release files

2.2.10

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.61

2 release files

2.1.59

2 release files

2.1.58

2 release files

2.1.57

2 release files

2.1.56

2 release files

2.1.53

2 release files

2.1.52

2 release files

2.1.51

2 release files

2.1.50

2 release files

2.1.49

2 release files

2.1.48

2 release files

2.1.45

2 release files

2.1.44

2 release files

2.1.43

2 release files

2.1.39

2 release files

2.1.38

2 release files

2.1.37

2 release files

2.1.36

2 release files

2.1.35

2 release files

2.1.34

2 release files

2.1.33

2 release files

2.1.32

2 release files

2.1.30

2 release files

2.1.27

2 release files

2.1.25

2 release files

2.1.24

2 release files

2.1.23

2 release files

2.1.21

2 release files

2.1.20

2 release files

2.1.19

2 release files

2.1.17

2 release files

2.1.16

2 release files

2.1.15

2 release files

2.1.13

2 release files

2.1.10

2 release files

2.1.9

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.4.48

2 release files

1.4.47

2 release files

1.4.46

2 release files

1.4.45

2 release files

1.4.44

2 release files

1.4.43

2 release files

1.4.40

2 release files

1.4.39

2 release files

1.4.38

2 release files

1.4.37

2 release files

1.4.36

2 release files

1.4.35

2 release files

1.4.34

2 release files

1.4.33

2 release files

1.4.31

2 release files

1.4.30

2 release files

1.4.29

2 release files

1.4.28

2 release files

1.4.27

2 release files

1.4.26

2 release files

1.4.24

2 release files

1.4.23

2 release files

1.4.18

2 release files

1.4.17

2 release files

1.4.16

2 release files

1.4.15

2 release files

1.4.14

2 release files

1.4.13

2 release files

1.4.12

2 release files

1.4.11

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.20

2 release files

1.3.19

2 release files

1.3.17

2 release files

1.3.16

2 release files

1.3.15

2 release files

1.3.14

2 release files

1.3.13

2 release files

1.3.12

2 release files

1.3.11

2 release files

1.3.10

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.13

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page