basel


Namebasel JSON
Version 1.1.2 PyPI version JSON
download
home_page
SummaryReport Architecture Data
upload_time2024-02-16 17:18:19
maintainer
docs_urlNone
authorIram Luis Morales Santos
requires_python>=3.10,<4.0
license
keywords report
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Basel Library

![Basel Logo](https://github.com/iramluism/basel/raw/main/docs/images/logo.png)

Basel Library is a powerful tool designed for calculating, reporting, and analyzing the architecture of a project.

## Key Concepts

* **Abstraction**: Level of definition vs implementation inside a component.
* **Stability**: Level of incoming and outgoing dependencies that a component has.

## Installation

```bash
pip install basel
```

## Reports
Abstract/Instability and Component Relationship reports are the main data you can obtain from an architecture. To generate each one, you can use the report and rel options.

### Abstraction/Stability (AE) Report
```
basel report --path ./path/to/project
```
Output:
```
Component                                   I     A     E
----------------------------------------  ----  ----  ----
path/to/project/module1                  0.75   0.2   0.05
path/to/project/module2                     1   0.8   0.8
path/to/project/module3                   0.5     1   0.5
----------------------------------------  ----  ----  ----
Mean                                     0.75  0.67  0.45
```

### Component Relationship (CRel) Report
This report uses a binary matrix, where 1 represents a relation, and 0 does not. All components are assigned to an index. Check the legend below the report to identify each component.

```
basel rel --path ./path/to/project
```
Output:
```
  Components    1    2    3  
------------  ---  ---  ---
           1    0    1    0  
           2    0    0    1  
           3    0    0    0  

Labels:
1: path/to/project/module1
2: path/to/project/module2
3: path/to/project/module3
```

## Formatting
To define a format use the `--format` or the abbreviation `-fmt`.

| Format        | Reports  | Description               |
|:------------- |:--------:|--------------------------:|
| basic         | AE, CRel | Basic and default format  |
| html          | AE, CRel | HTML format               |
| mean_i        | AE       | Only Instability Mean     | 
| mean_a        | AE       | Only Abstraction Mean     |
| mean_e        | AE       | Only Error Mean           |
| mean          | AE       | Only Error Mean           |
| uml           | CRel     | UML code                  |


## Excluding 
You can exclude components in your project, which can be helpful to define boundaries. To exclude, you can use the `-e` or `--exclude` argument.


## Filtering 
Is posible that the report results are very long, to get your desired components you can use the `-f` or `--filter` arguments.


## Contributing

We welcome contributions! If you'd like to contribute to Basel, please follow these guidelines:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them with clear messages.
4. Submit a pull request.

Thank you for your contribution!

## Contact

If you have any questions or suggestions, feel free to insert new issue.


## License

This project is licensed under the [MIT License](LICENSE).


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "basel",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<4.0",
    "maintainer_email": "",
    "keywords": "report",
    "author": "Iram Luis Morales Santos",
    "author_email": "iramluism@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6c/e8/990f045eff036099d1ab2e122152a15421bc63d00a3334c46aa8ee5a97ed/basel-1.1.2.tar.gz",
    "platform": null,
    "description": "# Basel Library\n\n![Basel Logo](https://github.com/iramluism/basel/raw/main/docs/images/logo.png)\n\nBasel Library is a powerful tool designed for calculating, reporting, and analyzing the architecture of a project.\n\n## Key Concepts\n\n* **Abstraction**: Level of definition vs implementation inside a component.\n* **Stability**: Level of incoming and outgoing dependencies that a component has.\n\n## Installation\n\n```bash\npip install basel\n```\n\n## Reports\nAbstract/Instability and Component Relationship reports are the main data you can obtain from an architecture. To generate each one, you can use the report and rel options.\n\n### Abstraction/Stability (AE) Report\n```\nbasel report --path ./path/to/project\n```\nOutput:\n```\nComponent                                   I     A     E\n----------------------------------------  ----  ----  ----\npath/to/project/module1                  0.75   0.2   0.05\npath/to/project/module2                     1   0.8   0.8\npath/to/project/module3                   0.5     1   0.5\n----------------------------------------  ----  ----  ----\nMean                                     0.75  0.67  0.45\n```\n\n### Component Relationship (CRel) Report\nThis report uses a binary matrix, where 1 represents a relation, and 0 does not. All components are assigned to an index. Check the legend below the report to identify each component.\n\n```\nbasel rel --path ./path/to/project\n```\nOutput:\n```\n  Components    1    2    3  \n------------  ---  ---  ---\n           1    0    1    0  \n           2    0    0    1  \n           3    0    0    0  \n\nLabels:\n1: path/to/project/module1\n2: path/to/project/module2\n3: path/to/project/module3\n```\n\n## Formatting\nTo define a format use the `--format` or the abbreviation `-fmt`.\n\n| Format        | Reports  | Description               |\n|:------------- |:--------:|--------------------------:|\n| basic         | AE, CRel | Basic and default format  |\n| html          | AE, CRel | HTML format               |\n| mean_i        | AE       | Only Instability Mean     | \n| mean_a        | AE       | Only Abstraction Mean     |\n| mean_e        | AE       | Only Error Mean           |\n| mean          | AE       | Only Error Mean           |\n| uml           | CRel     | UML code                  |\n\n\n## Excluding \nYou can exclude components in your project, which can be helpful to define boundaries. To exclude, you can use the `-e` or `--exclude` argument.\n\n\n## Filtering \nIs posible that the report results are very long, to get your desired components you can use the `-f` or `--filter` arguments.\n\n\n## Contributing\n\nWe welcome contributions! If you'd like to contribute to Basel, please follow these guidelines:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Make your changes and commit them with clear messages.\n4. Submit a pull request.\n\nThank you for your contribution!\n\n## Contact\n\nIf you have any questions or suggestions, feel free to insert new issue.\n\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Report Architecture Data",
    "version": "1.1.2",
    "project_urls": null,
    "split_keywords": [
        "report"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "89fec52594523e2b49f12a15374c20e29d5f25a3b0b24fe73971b88e8078d13d",
                "md5": "1518adfd0af83ae6b4f2de426af7d88f",
                "sha256": "f020b157c0b86c0fd079716f4b36424e75a8b3e84335138892e7816a0a39b956"
            },
            "downloads": -1,
            "filename": "basel-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1518adfd0af83ae6b4f2de426af7d88f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4.0",
            "size": 17420,
            "upload_time": "2024-02-16T17:18:17",
            "upload_time_iso_8601": "2024-02-16T17:18:17.778607Z",
            "url": "https://files.pythonhosted.org/packages/89/fe/c52594523e2b49f12a15374c20e29d5f25a3b0b24fe73971b88e8078d13d/basel-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6ce8990f045eff036099d1ab2e122152a15421bc63d00a3334c46aa8ee5a97ed",
                "md5": "456f79602441f1685dde50e5ead1f965",
                "sha256": "80548a85572136c59a73348429166b0737d8291b6da922b701de3f5bf0445883"
            },
            "downloads": -1,
            "filename": "basel-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "456f79602441f1685dde50e5ead1f965",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4.0",
            "size": 12833,
            "upload_time": "2024-02-16T17:18:19",
            "upload_time_iso_8601": "2024-02-16T17:18:19.313684Z",
            "url": "https://files.pythonhosted.org/packages/6c/e8/990f045eff036099d1ab2e122152a15421bc63d00a3334c46aa8ee5a97ed/basel-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-16 17:18:19",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "basel"
}
        
Elapsed time: 0.19225s