eraXplor


NameeraXplor JSON
Version 3.0.2 PyPI version JSON
download
home_pageNone
SummaryA Python CLI tool for exporting cost reports over Multi-providers AWS/Azure.
upload_time2025-07-20 20:43:26
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12.3
licenseApache-2.0
keywords cli ascii art
VCS
bugtrack_url
requirements boto3 pyfiglet python-dateutil termcolor rich azure.identity azure.mgmt.costmanagement
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Welcome to eraXplor

Cost Export Tool for automated cost reporting and analysis.

**eraXplor** is an automated cost reporting tool designed for assest DevOps and FinOps teams fetching and sorting AWS and Azure Cost Explorer.
it extracts detailed cost data by calling nativly cloud provider APIs directly and Transform result into CSV file.
`eraXplor` gives you the ability to sort the cost with wide range of options:

- For **AWS** you able to sort cost by Account, Service, Usage Type or even By Purchase Type; as well as format and separate the result by Monthly or Daily.
- For **Azure** you able to sort cost by Subscription, as well as format and separate the result by Monthly or Daily.
</br>

_azure still under development, more features will be added soon._

## Key Features

- ✅ **Cloud provider Separated tools**: Separated tool for each cloud provider (AWS and Azure) avoiding complexty.
- ✅ **Flexible Date Ranges**: Custom start/end dates with validation.
- ✅ **Multi-Profile Support**: Works with all configured AWS profiles.
- ✅ **CSV Export**: Ready-to-analyze reports in CSV format.
- ✅ **Cross-platform CLI Interface**: Simple terminal-based workflow, and **Cross OS** platform.
- ✅ **Documentation Ready**: Well explained documentations assest you kick start rapidly.
- ✅ **Open-Source**: the tool is open-source under Apache 2.0 license, which enables your to enhance it for your purpose.

## Table Of Contents

Quickly find what you're looking for depending on
your use case by looking at the different pages.

### AWS (eraXplor)

1. [Overview](https://mohamed-eleraki.github.io/eraXplor/aws/)
2. [Tutorials](https://mohamed-eleraki.github.io/eraXplor/aws/tutorials/)
3. [How-To Guides](https://mohamed-eleraki.github.io/eraXplor/aws/how-to-guides/)
5. [Concepts & Explanation](https://mohamed-eleraki.github.io/eraXplor/aws/explanation/)

### Azure (eraXplor_az)

1. [Overview](https://mohamed-eleraki.github.io/eraXplor/azure/)
2. [Tutorials](https://mohamed-eleraki.github.io/eraXplor/azure/tutorials/)
3. [How-To Guides](https://mohamed-eleraki.github.io/eraXplor/azure/how-to-guides/)
5. [Concepts & Explanation](https://mohamed-eleraki.github.io/eraXplor/azure/explanation/)
</br>

- [Reference](https://mohamed-eleraki.github.io/eraXplor/reference/)

# How-To Guides

## Check installed Python version

- Ensure you Python version is >= 3.12.3 by:

```bash
python --version

# Consider update Python version if less than 3
```

## Install eraXplor

- Install eraxplor too by:

```bash
pip install eraXplor
```

## How-To-Guide - AWS

### AWS profile configuration

- Install [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) - Command line tool.
- Create an AWS AMI user then extract Access ID & key.
- Configure AWS CLI profile by:

```bash
aws configure <--profile [PROFILE_NAME]>
# ensure you set a defalut region.
```

### How-To use - AWS

`eraXplor` have multiple arguments set with a default values _-explained below-_, Adjsut these arguments as required.

```bash
eraXplor <--start-date [yyyy-MM-DD]> <--end-date [yyyy-MM-DD]> \
<--profile [PROFILE-NAME]> \
<--groupby [LINKED_ACCOUNT | SERVICE | PURCHASE_TYPE | USAGE_TYPE]> \
<--out [file.csv]>
<--granularity [DAILY | MONTHLY]>
```

### Argument Reference - AWS

- `--start-date`, `-s`: **_(Not_Required)_** Default value set as six months before.
- `--end-date`, `-e`: **_(Not_Required)_** Default value set as Today date.
- `--profile`, `-p`: **_(Not_Required)_** Default value set as `default`.
- `--groupby`, `-g`: **_(Not_Required)_** Default value set as LINKED_ACCOUNT.
    The available options are (`LINKED_ACCOUNT`, `SERVICE`, `PURCHASE_TYPE`, `USAGE_TYPE`)
- `--out`, `-o`: **_(Not_Required)_** Default value set as `cost_repot.csv`.
- `--granularity`, `-G`: **_(Not_Required)_** Default value set as `MONTHLY`.
    The available options are (`MONTHLY`, `DAILY`)

---

## How-To-Guide - Azure

## Azure CLI Authentication

- Install [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?view=azure-cli-latest&pivots=apt) - Command line tool by specifing your attended OS.
- ensure your account have sufficient permission as `Billing Reader` or `Usage Billing Contributor` to manage Azure billing.
- Check installed package by:

```bash
az --version
```

- Authenticate using your Azure account:

```bash
az login
```

This will open the portal in your default browser to authenticate.

### How-To use - Azure

`eraXplor_az` have multiple arguments set with a default values _-explained below-_, Adjsut these arguments as required.

```bash
eraXplor_az <--start-date [yyyy,MM,DD]> <--end-date [yyyy,MM,DD]> \
<--subscription_id [SUBSCRIPTION_ID]> \
<--granularity [DAILY | MONTHLY]> \
<--output [FILE_NAME.CSV]>
```

### Argument Reference - Azure

- `--start-date` or `-s`: **_(Optional)_** Default value set as three months before.
- `--end-date` or `-e`: **_(Optional)_** Default value set as Today date.
- `--subscription_id` or `-S`: **_(Required)_** subscription id.
- `--out` or `-o`: **_(Optional)_** Default value set as `az_cost_report.csv`.
- `--granularity` or `-g`: **_(Optional)_** Default value set as `MONTHLY`.
    The available options are (`MONTHLY`, `DAILY`)

---

For Windows/PowerShell users restart your terminal, and you may need to use the following command:

```bash
python -m eraXplor

# Or
python -m eraXplor_az  # for auzre

# to avoid using this command, apend the eraXplor to your paths.
# Normaly its under: C:\Users\<YourUser>\AppData\Local\Programs\Python\Python<version>\Scripts\
```

## About the Author

<details open>
<summary><strong>👋Show/Hide Author Details👋</strong></summary>

**Mohamed eraki**  
_Cloud & DevOps Engineer_

[![Email](https://img.shields.io/badge/Contact-mohamed--ibrahim2021@outlook.com-blue?style=flat&logo=mail.ru)](mailto:mohamed-ibrahim2021@outlook.com)  
[![LinkedIn](https://img.shields.io/badge/Connect-LinkedIn-informational?style=flat&logo=linkedin)](https://www.linkedin.com/in/mohamed-el-eraki-8bb5111aa/)  
[![Twitter](https://img.shields.io/badge/Twitter-Follow-blue?style=flat&logo=twitter)](https://x.com/__eraki__)  
[![Blog](https://img.shields.io/badge/Blog-Visit-brightgreen?style=flat&logo=rss)](https://eraki.hashnode.dev/)

### Project Philosophy

> "I built eraXplor to solve real-world cloud cost visibility challenges — the same pain points I encounter daily in enterprise environments. This tool embodies my belief that financial accountability should be accessible to every technical team."

</details>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "eraXplor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12.3",
    "maintainer_email": null,
    "keywords": "CLI, ASCII Art",
    "author": null,
    "author_email": "Mohamed eraki <mohamed-ibrahim2021@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/42/f1/376801e88ac8f074c8e774d9fe9f42828b6217d43d1614bb65ae2c99d325/eraxplor-3.0.2.tar.gz",
    "platform": null,
    "description": "# Welcome to eraXplor\n\nCost Export Tool for automated cost reporting and analysis.\n\n**eraXplor** is an automated cost reporting tool designed for assest DevOps and FinOps teams fetching and sorting AWS and Azure Cost Explorer.\nit extracts detailed cost data by calling nativly cloud provider APIs directly and Transform result into CSV file.\n`eraXplor` gives you the ability to sort the cost with wide range of options:\n\n- For **AWS** you able to sort cost by Account, Service, Usage Type or even By Purchase Type; as well as format and separate the result by Monthly or Daily.\n- For **Azure** you able to sort cost by Subscription, as well as format and separate the result by Monthly or Daily.\n</br>\n\n_azure still under development, more features will be added soon._\n\n## Key Features\n\n- \u2705 **Cloud provider Separated tools**: Separated tool for each cloud provider (AWS and Azure) avoiding complexty.\n- \u2705 **Flexible Date Ranges**: Custom start/end dates with validation.\n- \u2705 **Multi-Profile Support**: Works with all configured AWS profiles.\n- \u2705 **CSV Export**: Ready-to-analyze reports in CSV format.\n- \u2705 **Cross-platform CLI Interface**: Simple terminal-based workflow, and **Cross OS** platform.\n- \u2705 **Documentation Ready**: Well explained documentations assest you kick start rapidly.\n- \u2705 **Open-Source**: the tool is open-source under Apache 2.0 license, which enables your to enhance it for your purpose.\n\n## Table Of Contents\n\nQuickly find what you're looking for depending on\nyour use case by looking at the different pages.\n\n### AWS (eraXplor)\n\n1. [Overview](https://mohamed-eleraki.github.io/eraXplor/aws/)\n2. [Tutorials](https://mohamed-eleraki.github.io/eraXplor/aws/tutorials/)\n3. [How-To Guides](https://mohamed-eleraki.github.io/eraXplor/aws/how-to-guides/)\n5. [Concepts & Explanation](https://mohamed-eleraki.github.io/eraXplor/aws/explanation/)\n\n### Azure (eraXplor_az)\n\n1. [Overview](https://mohamed-eleraki.github.io/eraXplor/azure/)\n2. [Tutorials](https://mohamed-eleraki.github.io/eraXplor/azure/tutorials/)\n3. [How-To Guides](https://mohamed-eleraki.github.io/eraXplor/azure/how-to-guides/)\n5. [Concepts & Explanation](https://mohamed-eleraki.github.io/eraXplor/azure/explanation/)\n</br>\n\n- [Reference](https://mohamed-eleraki.github.io/eraXplor/reference/)\n\n# How-To Guides\n\n## Check installed Python version\n\n- Ensure you Python version is >= 3.12.3 by:\n\n```bash\npython --version\n\n# Consider update Python version if less than 3\n```\n\n## Install eraXplor\n\n- Install eraxplor too by:\n\n```bash\npip install eraXplor\n```\n\n## How-To-Guide - AWS\n\n### AWS profile configuration\n\n- Install [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) - Command line tool.\n- Create an AWS AMI user then extract Access ID & key.\n- Configure AWS CLI profile by:\n\n```bash\naws configure <--profile [PROFILE_NAME]>\n# ensure you set a defalut region.\n```\n\n### How-To use - AWS\n\n`eraXplor` have multiple arguments set with a default values _-explained below-_, Adjsut these arguments as required.\n\n```bash\neraXplor <--start-date [yyyy-MM-DD]> <--end-date [yyyy-MM-DD]> \\\n<--profile [PROFILE-NAME]> \\\n<--groupby [LINKED_ACCOUNT | SERVICE | PURCHASE_TYPE | USAGE_TYPE]> \\\n<--out [file.csv]>\n<--granularity [DAILY | MONTHLY]>\n```\n\n### Argument Reference - AWS\n\n- `--start-date`, `-s`: **_(Not_Required)_** Default value set as six months before.\n- `--end-date`, `-e`: **_(Not_Required)_** Default value set as Today date.\n- `--profile`, `-p`: **_(Not_Required)_** Default value set as `default`.\n- `--groupby`, `-g`: **_(Not_Required)_** Default value set as LINKED_ACCOUNT.\n    The available options are (`LINKED_ACCOUNT`, `SERVICE`, `PURCHASE_TYPE`, `USAGE_TYPE`)\n- `--out`, `-o`: **_(Not_Required)_** Default value set as `cost_repot.csv`.\n- `--granularity`, `-G`: **_(Not_Required)_** Default value set as `MONTHLY`.\n    The available options are (`MONTHLY`, `DAILY`)\n\n---\n\n## How-To-Guide - Azure\n\n## Azure CLI Authentication\n\n- Install [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux?view=azure-cli-latest&pivots=apt) - Command line tool by specifing your attended OS.\n- ensure your account have sufficient permission as `Billing Reader` or `Usage Billing Contributor` to manage Azure billing.\n- Check installed package by:\n\n```bash\naz --version\n```\n\n- Authenticate using your Azure account:\n\n```bash\naz login\n```\n\nThis will open the portal in your default browser to authenticate.\n\n### How-To use - Azure\n\n`eraXplor_az` have multiple arguments set with a default values _-explained below-_, Adjsut these arguments as required.\n\n```bash\neraXplor_az <--start-date [yyyy,MM,DD]> <--end-date [yyyy,MM,DD]> \\\n<--subscription_id [SUBSCRIPTION_ID]> \\\n<--granularity [DAILY | MONTHLY]> \\\n<--output [FILE_NAME.CSV]>\n```\n\n### Argument Reference - Azure\n\n- `--start-date` or `-s`: **_(Optional)_** Default value set as three months before.\n- `--end-date` or `-e`: **_(Optional)_** Default value set as Today date.\n- `--subscription_id` or `-S`: **_(Required)_** subscription id.\n- `--out` or `-o`: **_(Optional)_** Default value set as `az_cost_report.csv`.\n- `--granularity` or `-g`: **_(Optional)_** Default value set as `MONTHLY`.\n    The available options are (`MONTHLY`, `DAILY`)\n\n---\n\nFor Windows/PowerShell users restart your terminal, and you may need to use the following command:\n\n```bash\npython -m eraXplor\n\n# Or\npython -m eraXplor_az  # for auzre\n\n# to avoid using this command, apend the eraXplor to your paths.\n# Normaly its under: C:\\Users\\<YourUser>\\AppData\\Local\\Programs\\Python\\Python<version>\\Scripts\\\n```\n\n## About the Author\n\n<details open>\n<summary><strong>\ud83d\udc4bShow/Hide Author Details\ud83d\udc4b</strong></summary>\n\n**Mohamed eraki**  \n_Cloud & DevOps Engineer_\n\n[![Email](https://img.shields.io/badge/Contact-mohamed--ibrahim2021@outlook.com-blue?style=flat&logo=mail.ru)](mailto:mohamed-ibrahim2021@outlook.com)  \n[![LinkedIn](https://img.shields.io/badge/Connect-LinkedIn-informational?style=flat&logo=linkedin)](https://www.linkedin.com/in/mohamed-el-eraki-8bb5111aa/)  \n[![Twitter](https://img.shields.io/badge/Twitter-Follow-blue?style=flat&logo=twitter)](https://x.com/__eraki__)  \n[![Blog](https://img.shields.io/badge/Blog-Visit-brightgreen?style=flat&logo=rss)](https://eraki.hashnode.dev/)\n\n### Project Philosophy\n\n> \"I built eraXplor to solve real-world cloud cost visibility challenges \u2014 the same pain points I encounter daily in enterprise environments. This tool embodies my belief that financial accountability should be accessible to every technical team.\"\n\n</details>\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "A Python CLI tool for exporting cost reports over Multi-providers AWS/Azure.",
    "version": "3.0.2",
    "project_urls": {
        "Issues": "https://github.com/Mohamed-Eleraki/eraXplor/issues",
        "Repository": "https://github.com/Mohamed-Eleraki/eraXplor.git"
    },
    "split_keywords": [
        "cli",
        " ascii art"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "64d478a5e6324beb744e0c8770d26b76e9e92a5086d945a672ef070f68edce38",
                "md5": "733b877fb2824c243164ef18cfe02f48",
                "sha256": "22ece6c6e5b10a19b894e66f940d668f343a8f6d96cf567e4b3ff6c4e154c226"
            },
            "downloads": -1,
            "filename": "eraxplor-3.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "733b877fb2824c243164ef18cfe02f48",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12.3",
            "size": 16637,
            "upload_time": "2025-07-20T20:43:22",
            "upload_time_iso_8601": "2025-07-20T20:43:22.639469Z",
            "url": "https://files.pythonhosted.org/packages/64/d4/78a5e6324beb744e0c8770d26b76e9e92a5086d945a672ef070f68edce38/eraxplor-3.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "42f1376801e88ac8f074c8e774d9fe9f42828b6217d43d1614bb65ae2c99d325",
                "md5": "1d54531e0e66126e19875f3c3179b096",
                "sha256": "9bb347ee05655e8242f353549901b028a130584c02ba4685b348f83306b264d3"
            },
            "downloads": -1,
            "filename": "eraxplor-3.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "1d54531e0e66126e19875f3c3179b096",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12.3",
            "size": 20620,
            "upload_time": "2025-07-20T20:43:26",
            "upload_time_iso_8601": "2025-07-20T20:43:26.028428Z",
            "url": "https://files.pythonhosted.org/packages/42/f1/376801e88ac8f074c8e774d9fe9f42828b6217d43d1614bb65ae2c99d325/eraxplor-3.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-20 20:43:26",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Mohamed-Eleraki",
    "github_project": "eraXplor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "boto3",
            "specs": [
                [
                    ">=",
                    "1.37.0"
                ]
            ]
        },
        {
            "name": "pyfiglet",
            "specs": [
                [
                    ">=",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    ">=",
                    "2.9.0"
                ]
            ]
        },
        {
            "name": "termcolor",
            "specs": [
                [
                    ">=",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    ">=",
                    "13.7.1"
                ]
            ]
        },
        {
            "name": "azure.identity",
            "specs": [
                [
                    ">=",
                    "1.23.0"
                ]
            ]
        },
        {
            "name": "azure.mgmt.costmanagement",
            "specs": [
                [
                    ">=",
                    "4.0.1"
                ]
            ]
        }
    ],
    "lcname": "eraxplor"
}
        
Elapsed time: 2.82389s