CLI part of Linking Software Artifacts project
Project description
LSA (Linking Software Artifacts) CLI
The part of LSA project,
this CLI tool is used to parse annotations from source code and convert them
to entities. Entities are then used to visualize the codebase on the
webpage.
Installation
pip install lsa-cli
Usage
lsa-cli <option>
Options:
-p, --path Parse path
-a, --annotations Save intermediate annotations model as JSON
-c, --config Path to the configuration file
-v, --validate Validate and compare two model files (JSON). Provide two file paths.
Example
The CLI tool parses the source code:
// @lc-entity
// @lc-identifier :Annotation
// @lc-name Annotation
// @lc-description Base class for all annotations.
export interface IAnnotation {
// @lc-property
// @lc-name name
name: string
// @lc-property
// @lc-name value
value: string | null
// @lc-property
// @lc-name annotationStartPos
startPos: number
// @lc-property
// @lc-name annotationEndPos
endPos: number
// @lc-property
// @lc-name annotationLine
lineNumber: number
}
And generates the entities model by lsa-cli -p source-file.ts:
{
"entities": [
{
"name": "Annotation",
"instances": [
{
"from_file": "source-file.ts",
"identifier": ":Annotation",
"description": "Base class for all annotations.",
"properties": [
{
"name": "name",
"description": null
},
{
"name": "value",
"description": null
},
{
"name": "annotationstartpos",
"description": null
},
{
"name": "annotationendpos",
"description": null
},
{
"name": "annotationline",
"description": null
}
]
}
]
}
]
}
Additionally, you can save the intermediate annotations model as JSON:
{
"filesAnnotations": [
{
"relativeFilePath": "./source-file.ts",
"annotations": [
{
"name": "entity",
"value": null,
"lineNumber": 1
},
{
"name": "identifier",
"value": ":Annotation",
"lineNumber": 2
},
{
"name": "name",
"value": "Annotation",
"lineNumber": 3
},
...
Configuration file
Default configuration file is .lsa-config.json in the current working directory.
You can specify the path to the configuration file using the -c option.
lsa-cli -c <path-to-config-file> -p <path-to-source-code>
If the file is not found, default configuration is used:
{
"markers": {
"prefix": "@lc-",
"identifier": "identifier",
"name": "name",
"type": "type",
"description": "description",
"entity": "entity",
"property": "property",
"method": "method",
"source": "source"
},
"parser": {
"output": {
"entities": "entities.json",
"annotations": "annotations.json"
},
"exclude": [],
"extend": {}
},
}
<prefix><marker>- Defines the annotations, whereprefix- Prefix for the annotations.markers- Annotation markers (for example,<prefix>entity).
parser- Parser settings for the CLI.-
output- Output files for the CLI. -
exclude- Paths to exclude from parsing."exclude": ["node_modules", ".git", ".venv"]
-
extend- File extensions to extend the parser. Where the key is the extension and the value is the MIME type ( you can see the list of supported MIME types here)."extend": { "cjs": "application/javascript", "mjs": "application/javascript", "jsx": "application/javascript" }
-
Development
Installation
poetry install
Usage
poetry run lsa-cli
Testing
pytest -c pyproject.toml
Formatting
poetry run poe format-code
Pre-commit
poetry shell
pre-commit install
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lsa_cli-1.0.0.tar.gz.
File metadata
- Download URL: lsa_cli-1.0.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.10 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1941ea7b960eb7b1700468cd68a41045d8ec50693779154e246b193f1798754f
|
|
| MD5 |
3f9de716a02ab3aef430e1f385d645e3
|
|
| BLAKE2b-256 |
00697294eda664268c6b95c8010eb7cf0520ca4bb053524569e62de32034039d
|
File details
Details for the file lsa_cli-1.0.0-py3-none-any.whl.
File metadata
- Download URL: lsa_cli-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.10 Darwin/24.3.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54de7e656aa67c5ae37101b1ddded5410117afc9d6891e683ee4b3f411c88280
|
|
| MD5 |
6dc0564351623132f5aeeeb3c4ec6802
|
|
| BLAKE2b-256 |
17ccae890ec47b483e6900ee50259023c364321a209c0282ea15117eb3df7910
|