Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
The cliopts package is a Python library for parsing command line arguments. It provides a simpler and more intuitive API with less code and easy cli argument parsing.
The Cliopts Library is a Python library designed to simplify the process of parsing command-line arguments. It provides a straightforward and intuitive API, reducing the amount of code required for CLI argument parsing.
To install the Cliopts Library, run the following command in your terminal (cmd, bash, PowerShell, etc.):
pip install cliopts
To use the library in your code, follow these steps:
Import the CliArguments
class from the cliopts
module:
from cliopts import CliArguments
Create an instance of CliArguments
and pass a list of argument names or a dictionary of argument names and their shorthand notations, along with optional parameters such as options_desc
and version
.
Using a list of options:
args = CliArguments(
options=["filename", "count", "verbose"],
options_desc={
"filename": "Specify the filename",
"count": "Specify the count",
"verbose": "Enable verbose output"
},
version="v1.0.0"
)
Using a dictionary of options with shorthand notations:
args = CliArguments(
options={
"filename": "f",
"count": "c",
"verbose": "v"
},
options_desc={
"filename": "Specify the filename",
"count": "Specify the count",
"verbose": "Enable verbose output"
},
version="v1.0.0"
)
Access the parsed command-line arguments as a dictionary using the to_dict()
method:
print(args.to_dict())
The to_dict()
method returns a dictionary containing the parsed arguments.
Run your Python script and pass command-line arguments using the specified options and their shorthand notations:
py test.py --filename="filename.txt" --count=5 --verbose=True
py test.py -f "filename.txt" -c 5 -v True
Replace test.py
with the name of your script file and filename.txt
with the desired value for the argument.
Let's consider an example to illustrate how to use the Cliopts Library. Suppose we are creating a Python script that takes a filename, count, and a verbose flag as input from the command line.
In script.py
file:
from cliopts import CliArguments
# Define the desired arguments: filename, count, verbose
args = CliArguments(
options={
"filename": "f",
"count": "c",
"verbose": "v"
},
options_desc={
"filename": "Specify the filename",
"count": "Specify the count",
"verbose": "Enable verbose output"
},
version="v1.0.0"
)
print(args.to_dict())
In the command line:
py script.py --filename='/files/filename.txt' --count=5 --verbose=True
py script.py -f '/files/filename.txt' -c 5 -v True
The output of args.to_dict()
will be:
{
"filename": "/files/filename.txt",
"count": 5,
"verbose": True
}
Type: Iterable[str] | dict[str, str]
Description: A list or dictionary of command-line options. If using a dictionary, the keys are the full option names and the values are their shorthand notations.
Type: dict[str, str]
Optional: Yes
Description: A dictionary with descriptions for each option. Defaults to an empty dictionary.
Type: str
Optional: Yes
Description: The version of the program. Defaults to None
.
Type: (dict[str, str]) -> Any
Optional: Yes
Description: A function to display help information. This function takes options_desc
as its argument. If not provided, the default help function is triggered utilizing options_desc
.
Type: bool
Optional: Yes
Description: Whether to throw an error on invalid arguments. Defaults to True
.
Type: str
Optional: Yes
Description: The name of the program. Defaults to "python-program"
.
Type: str
Optional: Yes
Description: The description of the program. Defaults to None
.
If the --help
flag is used, the default help function displays the following information:
Usage: python-program [options]
Options:
filename : Specify the filename
count : Specify the count
verbose : Enable verbose output
--version : Show version
If you want your script to return a version number when prompted with --version
, you can easily achieve that by passing a version string as the version
parameter when creating an instance of CliArguments
.
Example in script.py
file:
from cliopts import CliArguments
args = CliArguments(
options=["filename", "count", "verbose"],
version="v1.0.0"
)
You can now check the script version using the following command:
py script.py --version
The output will be v1.0.0
, matching the version parameter.
For any inquiries or assistance, you can contact the developer at ssanmeet123@gmail.com. Feel free to reach out with any questions or feedback you may have.
FAQs
The cliopts package is a Python library for parsing command line arguments. It provides a simpler and more intuitive API with less code and easy cli argument parsing.
We found that cliopts demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.