amlctor


Nameamlctor JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryAML Pipeline Constructor
upload_time2023-04-30 17:51:05
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9,<3.11
licenseNone
keywords azure machine leaning aml pipeline
VCS
bugtrack_url
requirements adal antlr4-python3-runtime appdirs applicationinsights apsw apturl argcomplete attrs azure-appconfiguration azure-batch azure-cli azure-cli-core azure-cli-telemetry azure-common azure-core azure-cosmos azure-data-tables azure-datalake-store azure-graphrbac azure-identity azure-keyvault azure-keyvault-administration azure-keyvault-keys azure-loganalytics azure-mgmt-advisor azure-mgmt-apimanagement azure-mgmt-appconfiguration azure-mgmt-applicationinsights azure-mgmt-authorization azure-mgmt-batch azure-mgmt-batchai azure-mgmt-billing azure-mgmt-botservice azure-mgmt-cdn azure-mgmt-cognitiveservices azure-mgmt-compute azure-mgmt-consumption azure-mgmt-containerinstance azure-mgmt-containerregistry azure-mgmt-containerservice azure-mgmt-core azure-mgmt-cosmosdb azure-mgmt-databoxedge azure-mgmt-datalake-analytics azure-mgmt-datalake-nspkg azure-mgmt-datalake-store azure-mgmt-datamigration azure-mgmt-deploymentmanager azure-mgmt-devtestlabs azure-mgmt-dns azure-mgmt-eventgrid azure-mgmt-eventhub azure-mgmt-extendedlocation azure-mgmt-hdinsight azure-mgmt-imagebuilder azure-mgmt-iotcentral azure-mgmt-iothub azure-mgmt-iothubprovisioningservices azure-mgmt-keyvault azure-mgmt-kusto azure-mgmt-loganalytics azure-mgmt-managedservices azure-mgmt-managementgroups azure-mgmt-maps azure-mgmt-marketplaceordering azure-mgmt-media azure-mgmt-monitor azure-mgmt-msi azure-mgmt-netapp azure-mgmt-network azure-mgmt-nspkg azure-mgmt-policyinsights azure-mgmt-privatedns azure-mgmt-rdbms azure-mgmt-recoveryservices azure-mgmt-recoveryservicesbackup azure-mgmt-redhatopenshift azure-mgmt-redis azure-mgmt-relay azure-mgmt-resource azure-mgmt-search azure-mgmt-security azure-mgmt-servicebus azure-mgmt-servicefabric azure-mgmt-servicefabricmanagedclusters azure-mgmt-servicelinker azure-mgmt-signalr azure-mgmt-sql azure-mgmt-sqlvirtualmachine azure-mgmt-storage azure-mgmt-synapse azure-mgmt-trafficmanager azure-mgmt-web azure-multiapi-storage azure-nspkg azure-storage-common azure-synapse-accesscontrol azure-synapse-artifacts azure-synapse-managedprivateendpoints azure-synapse-spark azureml-automl-core azureml-core azureml-dataprep azureml-dataprep-native azureml-dataprep-rslex azureml-dataset-runtime azureml-pipeline azureml-pipeline-core azureml-pipeline-steps azureml-telemetry azureml-train-automl-client azureml-train-core azureml-train-restclients-hyperdrive backcall backports.tempfile backports.weakref bcrypt beautifulsoup4 beniget blinker Brlapi Brotli certifi cffi chardet charset-normalizer click cloudpickle colorama command-not-found contextlib2 cramjam cryptography css-parser cssselect cssutils cupshelpers cycler dbus-python decorator defer Deprecated distro distro-info dnspython docker dotnetcore2 duplicity fabric fasteners fastparquet feedparser fonttools fs fsspec future gast html2text html5-parser html5lib httplib2 humanfriendly idna ifaddr importlib-metadata invoke ipython isodate javaproperties jedi jeepney Jinja2 jmespath jsondiff jsonpickle jsonschema keyring kiwisolver knack language-selector launchpadlib lazr.restfulclient lazr.uri lockfile louis lxml lz4 macaroonbakery Mako Markdown MarkupSafe matplotlib matplotlib-inline mechanize monotonic more-itertools mpmath msal msal-extensions msgpack msrest msrestazure ndg-httpsclient netifaces numpy oauthlib olefile packaging pandas paramiko parso pathlib2 pathspec pexpect pickleshare Pillow pkginfo ply portalocker prompt-toolkit protobuf psutil ptyprocess py7zr pyarrow pyasn1 pycairo pychm pycparser pycryptodomex pycups pydantic PyGithub Pygments PyGObject PyJWT pymacaroons PyMySQL PyNaCl pyOpenSSL pyparsing PyQt5 PyQt5-sip PyQtWebEngine pyRFC3339 pyrsistent PySocks python-apt python-dateutil python-debian python-dotenv pythran pytz pyxdg PyYAML regex reportlab repoze.lru requests requests-oauthlib requests-toolbelt Routes scipy scp SecretStorage semver sgmllib3k six soupsieve sshtunnel sympy systemd-python tabulate texttable traitlets typing_extensions ubuntu-advantage-tools ubuntu-drivers-common ufoLib2 ufw unattended-upgrades unicodedata2 urllib3 usb-creator wadllib wcwidth webencodings WebOb websocket-client wrapt xdg xkit xmltodict zeroconf zipp
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AMLCTOR

## Azure Machine Learning Pipeline Constructor

`amlctor` allows you to create Azure Machine Learning(shortly - `AML`)  [Pipeline](https://learn.microsoft.com/en-us/azure/machine-learning/concept-ml-pipelines?view=azureml-api-2). `amlctor` based on the [Azure Machine Learning SDK](https://learn.microsoft.com/en-us/azure/machine-learning/v1/how-to-create-machine-learning-pipelines?view=azureml-api-1&preserve-view=true), and implements main operations of the Pipeline creation. You can create pipelines with AML Steps, which can take DataInputs.
In amlctor pipeline creation consists of 3 steps:

### 0. Preporation

It's highly recommended to create separated folder your pipeline projects. And also, virtual environment(venv). You can create separated venv for future AML projects. It's specially useful if you are working with different kinds of libraries: data science oriented, web and so on.

### 1. Pipeline initialisation

Something like project initialisation. You choose pipeline name, directory and credential `.env` file. For storing amlctor has denv storage - or **EnvBank**. Initialise pipeline as:

```bash
python -m amlctor init -n myfirstpipe -p . -e denv_name
```

Here `-n` shows pipeline name, `-p` - directory in which pipeline will be created, `-e` - dotenv name. I will talk about denv's a little bit later. After this, in the passed directory will be created named as pipeline passed name.

```directory
myfirstpipe
---|settings/
------|settings.py
------|.amlignore
------|.env
------|conda_dependencies.yml
```

 Inside the directory `settings` directory which contains: `settings.py`, `.amlignore`, `.env` and `conda_dependencies.yml` files. `conda_dependencies.yml` will be used for environment creation on AML side. `.amlignore` something like `.gitignore` but for AML. `.env` is file form of our EnvBank instance. `-e` is optional, if it's skipped, will be created `.env` template with necessary fields, which you have to fill before *running* pipeline.

 **`settings.py`**:

 This module contains all necessary configuractions:

 ```python
from amlctor.input import FileInputSchema, PathInputSchema
from amlctor.core import StepSchema

# --------------------------| Module Names |----------------------------
AML_MODULE_NAME: str =       'aml'
SCRIPT_MODULE_NAME: str =    'script'
DATALOADER_MODULE_NAME: str = 'data_loader'



# ---------------------------| General |---------------------------------

NAME = "{{pipe_name}}"
DESCRIPTION = "Your pipeline description"


# ---------------------------| DataInputs |-------------------------------

file = FileInputSchema(
                        name='name', 
                        datastore_name='datastore', 
                        path_on_datastore='', 
                        files = ['file.ext'], 
                        data_reference_name = ''
    )

path = PathInputSchema(
                        name='name', 
                        datastore_name='datastore', 
                        path_on_datastore='',
                        data_reference_name=''
    )
# ---------------------------| Steps |---------------------------------
step1 = StepSchema(
                        name='step_name', 
                        compute_target='compute_name', 
                        input_data=[file, path], 
                        allow_reuse=False
            )
STEPS = [step1, ]

# ---------------------------| extra |---------------------------------


EXTRA = {
            'continue_on_step_failure': False,
}
 ```

Lets look at the variables we have here.

`AML_MODULE_NAME` - initially, pipeline project has 3 main scripts: `dataloader.py` - loads all the DataInputs into the pipeline, `aml.py` - main script of the pipeline, loaded data inputs imported here automaticaly, `script.py` - just empty script for implement your deep logic. You are free for remove this module or add so many as you need, however - the entry point of project is `aml.py`. `AML_MODULE_NAME` is the name of aml.py module. And the same thing for `DATALOADER_MODULE_NAME` and `SCRIPT_MODULE_NAME`.

`NAME` - name of your pipeline.

`DESCRIPTION` - description of the pipeline.

`PathInputSchema` and `FileInputSchema` DataInput of your pipeline. You create instances of the classes and pass into `StepSchema` class. Each `StepSchema` class is abstraction of [`PythonScriptStep`](https://learn.microsoft.com/en-us/python/api/azureml-pipeline-steps/azureml.pipeline.steps.python_script_step.pythonscriptstep?view=azure-ml-py). All steps must be inside `STEPS` list.

After filling settings, you have to apply your settings.

### 2. **Apply** Settings

```bash
python -m amlctor apply -p <path_to_pipeline>
```

Applying pipeline means - create structure based on the `settings.py` module. For each step will be created directory inside pipeline directory and each directory will contain: `aml.py`, `dataloader.py` and `script.py`. **Note**: names of the modules setted in the `settings.py` module.

### 3. **Run** Pipeline

```bash
python -m amlctor run -p <path_to_pipeline>
```

This command will publish your pipeline into your AML.

## EnvBank

For work on AML pipeline you have to use your credentials: `workspace_name`, `resource_group`, `subscription_id`, `build_id`, `environment_name` and `tenant_id`. In amltor these variables store as instances of `EnvBank`, which is encrypted jsonlike file. You can create, retrieve or remove `EnvBank` instances(I'll name it as `denv`). In this purpose you've to use `denv` command.

### **Create denv**

You can create denv in 2 ways: pass path of existing `.env` file or in interactive mode - via terminal. In the first case:

```bash
python -m amlctor denv create -p <path_to_.env file> -n <new_name>
```

Then you'll type new password twise for encryption. After that, denv will save into local storage and you will be able to use it for future pipeline creation.

For create denv in interactive mode, you have to pass `-i` or `--interactive` arg:

```bash
python -m amlctor denv create -i
```

After that you have to type each asked field and set password.

### Get denv

For retrieve denv use:

```bash
python -m amlctor denv get -n <name_of_denv>
```

For list all existing denv names add -`-all` argument:

```bash
python -m amlctor denv get --all
```

**Note**: *for view the denv, you have to type password*.

### Remove denv

For removing denv:

```bash
python -m amlctor denv rm -n <name_of_denv>
```

## DataInputs

DataInputs can be files or paths from [AML Datastore](https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.core.datastore.datastore?view=azure-ml-py). Whole process is creating [DataReference](https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.data.data_reference.datareference?view=azure-ml-py) object behind the scenes... All inputs will be loaded in the `dataloader.py` and imported into `aml.py` module. Lets look at `amlctor` DataInputs.

### PathInputSchema

Allows you to create data reference link to any directory inside the datastore. class looks like this:

```python
class PathInputSchema:
    name: str
    datastore_name: str
    path_on_datastore: str
    data_reference_name: str
```

Where: `name` name of your PathInput, this name will be used as variable name for importing. `datastore_name` - Datastore name, `path_on_datastore` - target path related to the Datastore. `data_reference_name` - data reference name for `DataReference` class, optional - if empty, will be used name.

### FileInputSchema

Allows you to mount files from Datastore. Behind the scines, very similar to PathInput, but with *file oriented* additions.

```python
class FileInputSchema:
    name: str
    datastore_name: str
    path_on_datastore: str
    data_reference_name: str
    files: List[str]
```

First 4 fields as previous. `files` - you can list file or files as list, which will be mounted from Datastore. If you want to get one file, pass as string, for more files - list of strings. When you pass multiple filename, they must be on the same path.

**Supported file types**: `amlctor` uses `pandas` read methods for read the mounted files. At the moment, suported file types:

```directory
csv, parquet, excell sheet, json
```

Slugged file names will be used as variable names for importing files.

## Other commands

### Update

You can update `dataloader` according to the `settings.py` module. It can be useful when you maked some changes into `settings.py` and don't want to overwrite whole pipeline structure by scratch, in this case you can use `update`:

```bash
python -m amlctor update -p <path_to_pipe> -s step_name [Optional]
```

`step_name` argument is optional, if not passed, updating will apply for all steps, otherwise - only for passed step.

### Rename

```bash
python -m amlctor rename -p <path_to_pipe> -n <new_name>
```

Renames pipeline into `new_name`. Renaming pipeline means: rename pipeline project directory, change `NAME` variable in `settings.py` and edit `ENVIRONMENT_FILE` in the `.env` file.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "amlctor",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9,<3.11",
    "maintainer_email": null,
    "keywords": "azure,machine leaning,aml,pipeline",
    "author": null,
    "author_email": "Aziz Nadirov <aziznadirov@yahoo.com>",
    "download_url": "https://files.pythonhosted.org/packages/ba/db/5445c839e637aa83e1faa7319bb318ea9280688191ebda02d471e909681b/amlctor-0.0.2.tar.gz",
    "platform": null,
    "description": "# AMLCTOR\n\n## Azure Machine Learning Pipeline Constructor\n\n`amlctor` allows you to create Azure Machine Learning(shortly - `AML`)  [Pipeline](https://learn.microsoft.com/en-us/azure/machine-learning/concept-ml-pipelines?view=azureml-api-2). `amlctor` based on the [Azure Machine Learning SDK](https://learn.microsoft.com/en-us/azure/machine-learning/v1/how-to-create-machine-learning-pipelines?view=azureml-api-1&preserve-view=true), and implements main operations of the Pipeline creation. You can create pipelines with AML Steps, which can take DataInputs.\nIn amlctor pipeline creation consists of 3 steps:\n\n### 0. Preporation\n\nIt's highly recommended to create separated folder your pipeline projects. And also, virtual environment(venv). You can create separated venv for future AML projects. It's specially useful if you are working with different kinds of libraries: data science oriented, web and so on.\n\n### 1. Pipeline initialisation\n\nSomething like project initialisation. You choose pipeline name, directory and credential `.env` file. For storing amlctor has denv storage - or **EnvBank**. Initialise pipeline as:\n\n```bash\npython -m amlctor init -n myfirstpipe -p . -e denv_name\n```\n\nHere `-n` shows pipeline name, `-p` - directory in which pipeline will be created, `-e` - dotenv name. I will talk about denv's a little bit later. After this, in the passed directory will be created named as pipeline passed name.\n\n```directory\nmyfirstpipe\n---|settings/\n------|settings.py\n------|.amlignore\n------|.env\n------|conda_dependencies.yml\n```\n\n Inside the directory `settings` directory which contains: `settings.py`, `.amlignore`, `.env` and `conda_dependencies.yml` files. `conda_dependencies.yml` will be used for environment creation on AML side. `.amlignore` something like `.gitignore` but for AML. `.env` is file form of our EnvBank instance. `-e` is optional, if it's skipped, will be created `.env` template with necessary fields, which you have to fill before *running* pipeline.\n\n **`settings.py`**:\n\n This module contains all necessary configuractions:\n\n ```python\nfrom amlctor.input import FileInputSchema, PathInputSchema\nfrom amlctor.core import StepSchema\n\n# --------------------------| Module Names |----------------------------\nAML_MODULE_NAME: str =       'aml'\nSCRIPT_MODULE_NAME: str =    'script'\nDATALOADER_MODULE_NAME: str = 'data_loader'\n\n\n\n# ---------------------------| General |---------------------------------\n\nNAME = \"{{pipe_name}}\"\nDESCRIPTION = \"Your pipeline description\"\n\n\n# ---------------------------| DataInputs |-------------------------------\n\nfile = FileInputSchema(\n                        name='name', \n                        datastore_name='datastore', \n                        path_on_datastore='', \n                        files = ['file.ext'], \n                        data_reference_name = ''\n    )\n\npath = PathInputSchema(\n                        name='name', \n                        datastore_name='datastore', \n                        path_on_datastore='',\n                        data_reference_name=''\n    )\n# ---------------------------| Steps |---------------------------------\nstep1 = StepSchema(\n                        name='step_name', \n                        compute_target='compute_name', \n                        input_data=[file, path], \n                        allow_reuse=False\n            )\nSTEPS = [step1, ]\n\n# ---------------------------| extra |---------------------------------\n\n\nEXTRA = {\n            'continue_on_step_failure': False,\n}\n ```\n\nLets look at the variables we have here.\n\n`AML_MODULE_NAME` - initially, pipeline project has 3 main scripts: `dataloader.py` - loads all the DataInputs into the pipeline, `aml.py` - main script of the pipeline, loaded data inputs imported here automaticaly, `script.py` - just empty script for implement your deep logic. You are free for remove this module or add so many as you need, however - the entry point of project is `aml.py`. `AML_MODULE_NAME` is the name of aml.py module. And the same thing for `DATALOADER_MODULE_NAME` and `SCRIPT_MODULE_NAME`.\n\n`NAME` - name of your pipeline.\n\n`DESCRIPTION` - description of the pipeline.\n\n`PathInputSchema` and `FileInputSchema` DataInput of your pipeline. You create instances of the classes and pass into `StepSchema` class. Each `StepSchema` class is abstraction of [`PythonScriptStep`](https://learn.microsoft.com/en-us/python/api/azureml-pipeline-steps/azureml.pipeline.steps.python_script_step.pythonscriptstep?view=azure-ml-py). All steps must be inside `STEPS` list.\n\nAfter filling settings, you have to apply your settings.\n\n### 2. **Apply** Settings\n\n```bash\npython -m amlctor apply -p <path_to_pipeline>\n```\n\nApplying pipeline means - create structure based on the `settings.py` module. For each step will be created directory inside pipeline directory and each directory will contain: `aml.py`, `dataloader.py` and `script.py`. **Note**: names of the modules setted in the `settings.py` module.\n\n### 3. **Run** Pipeline\n\n```bash\npython -m amlctor run -p <path_to_pipeline>\n```\n\nThis command will publish your pipeline into your AML.\n\n## EnvBank\n\nFor work on AML pipeline you have to use your credentials: `workspace_name`, `resource_group`, `subscription_id`, `build_id`, `environment_name` and `tenant_id`. In amltor these variables store as instances of `EnvBank`, which is encrypted jsonlike file. You can create, retrieve or remove `EnvBank` instances(I'll name it as `denv`). In this purpose you've to use `denv` command.\n\n### **Create denv**\n\nYou can create denv in 2 ways: pass path of existing `.env` file or in interactive mode - via terminal. In the first case:\n\n```bash\npython -m amlctor denv create -p <path_to_.env file> -n <new_name>\n```\n\nThen you'll type new password twise for encryption. After that, denv will save into local storage and you will be able to use it for future pipeline creation.\n\nFor create denv in interactive mode, you have to pass `-i` or `--interactive` arg:\n\n```bash\npython -m amlctor denv create -i\n```\n\nAfter that you have to type each asked field and set password.\n\n### Get denv\n\nFor retrieve denv use:\n\n```bash\npython -m amlctor denv get -n <name_of_denv>\n```\n\nFor list all existing denv names add -`-all` argument:\n\n```bash\npython -m amlctor denv get --all\n```\n\n**Note**: *for view the denv, you have to type password*.\n\n### Remove denv\n\nFor removing denv:\n\n```bash\npython -m amlctor denv rm -n <name_of_denv>\n```\n\n## DataInputs\n\nDataInputs can be files or paths from [AML Datastore](https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.core.datastore.datastore?view=azure-ml-py). Whole process is creating [DataReference](https://learn.microsoft.com/en-us/python/api/azureml-core/azureml.data.data_reference.datareference?view=azure-ml-py) object behind the scenes... All inputs will be loaded in the `dataloader.py` and imported into `aml.py` module. Lets look at `amlctor` DataInputs.\n\n### PathInputSchema\n\nAllows you to create data reference link to any directory inside the datastore. class looks like this:\n\n```python\nclass PathInputSchema:\n    name: str\n    datastore_name: str\n    path_on_datastore: str\n    data_reference_name: str\n```\n\nWhere: `name` name of your PathInput, this name will be used as variable name for importing. `datastore_name` - Datastore name, `path_on_datastore` - target path related to the Datastore. `data_reference_name` - data reference name for `DataReference` class, optional - if empty, will be used name.\n\n### FileInputSchema\n\nAllows you to mount files from Datastore. Behind the scines, very similar to PathInput, but with *file oriented* additions.\n\n```python\nclass FileInputSchema:\n    name: str\n    datastore_name: str\n    path_on_datastore: str\n    data_reference_name: str\n    files: List[str]\n```\n\nFirst 4 fields as previous. `files` - you can list file or files as list, which will be mounted from Datastore. If you want to get one file, pass as string, for more files - list of strings. When you pass multiple filename, they must be on the same path.\n\n**Supported file types**: `amlctor` uses `pandas` read methods for read the mounted files. At the moment, suported file types:\n\n```directory\ncsv, parquet, excell sheet, json\n```\n\nSlugged file names will be used as variable names for importing files.\n\n## Other commands\n\n### Update\n\nYou can update `dataloader` according to the `settings.py` module. It can be useful when you maked some changes into `settings.py` and don't want to overwrite whole pipeline structure by scratch, in this case you can use `update`:\n\n```bash\npython -m amlctor update -p <path_to_pipe> -s step_name [Optional]\n```\n\n`step_name` argument is optional, if not passed, updating will apply for all steps, otherwise - only for passed step.\n\n### Rename\n\n```bash\npython -m amlctor rename -p <path_to_pipe> -n <new_name>\n```\n\nRenames pipeline into `new_name`. Renaming pipeline means: rename pipeline project directory, change `NAME` variable in `settings.py` and edit `ENVIRONMENT_FILE` in the `.env` file.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AML Pipeline Constructor ",
    "version": "0.0.2",
    "project_urls": {
        "Source": "https://github.com/AzizNadirov/amlctor"
    },
    "split_keywords": [
        "azure",
        "machine leaning",
        "aml",
        "pipeline"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7e8a04d48138ff6bc2f883ac648237cf5be2a808981da645f0fd4e7e04878484",
                "md5": "ddd7b58552463c9ce39df615423fd408",
                "sha256": "99e32b1bda696b3bd48ad442bf050bcf10d3bb2e5ad488ebcdfd8ee34f3e7374"
            },
            "downloads": -1,
            "filename": "amlctor-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ddd7b58552463c9ce39df615423fd408",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<3.11",
            "size": 33225,
            "upload_time": "2023-04-30T17:50:57",
            "upload_time_iso_8601": "2023-04-30T17:50:57.618745Z",
            "url": "https://files.pythonhosted.org/packages/7e/8a/04d48138ff6bc2f883ac648237cf5be2a808981da645f0fd4e7e04878484/amlctor-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "badb5445c839e637aa83e1faa7319bb318ea9280688191ebda02d471e909681b",
                "md5": "ef65ebc8cf4169944a1bc2577ac96a1e",
                "sha256": "243e946a8548cad9471ec07d0d578ae00440db5bbe551aa35b96e60b0d1367f6"
            },
            "downloads": -1,
            "filename": "amlctor-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ef65ebc8cf4169944a1bc2577ac96a1e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<3.11",
            "size": 29882,
            "upload_time": "2023-04-30T17:51:05",
            "upload_time_iso_8601": "2023-04-30T17:51:05.096944Z",
            "url": "https://files.pythonhosted.org/packages/ba/db/5445c839e637aa83e1faa7319bb318ea9280688191ebda02d471e909681b/amlctor-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-30 17:51:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "AzizNadirov",
    "github_project": "amlctor",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "adal",
            "specs": [
                [
                    "==",
                    "1.2.7"
                ]
            ]
        },
        {
            "name": "antlr4-python3-runtime",
            "specs": [
                [
                    "==",
                    "4.9.3"
                ]
            ]
        },
        {
            "name": "appdirs",
            "specs": [
                [
                    "==",
                    "1.4.4"
                ]
            ]
        },
        {
            "name": "applicationinsights",
            "specs": [
                [
                    "==",
                    "0.11.10"
                ]
            ]
        },
        {
            "name": "apsw",
            "specs": [
                [
                    "==",
                    "3.36.0.post1"
                ]
            ]
        },
        {
            "name": "apturl",
            "specs": [
                [
                    "==",
                    "0.5.2"
                ]
            ]
        },
        {
            "name": "argcomplete",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "21.2.0"
                ]
            ]
        },
        {
            "name": "azure-appconfiguration",
            "specs": [
                [
                    "==",
                    "1.1.1"
                ]
            ]
        },
        {
            "name": "azure-batch",
            "specs": [
                [
                    "==",
                    "13.0.0"
                ]
            ]
        },
        {
            "name": "azure-cli",
            "specs": [
                [
                    "==",
                    "2.45.0"
                ]
            ]
        },
        {
            "name": "azure-cli-core",
            "specs": [
                [
                    "==",
                    "2.45.0"
                ]
            ]
        },
        {
            "name": "azure-cli-telemetry",
            "specs": [
                [
                    "==",
                    "1.0.8"
                ]
            ]
        },
        {
            "name": "azure-common",
            "specs": [
                [
                    "==",
                    "1.1.28"
                ]
            ]
        },
        {
            "name": "azure-core",
            "specs": [
                [
                    "==",
                    "1.26.3"
                ]
            ]
        },
        {
            "name": "azure-cosmos",
            "specs": [
                [
                    "==",
                    "3.2.0"
                ]
            ]
        },
        {
            "name": "azure-data-tables",
            "specs": [
                [
                    "==",
                    "12.4.0"
                ]
            ]
        },
        {
            "name": "azure-datalake-store",
            "specs": [
                [
                    "==",
                    "0.0.52"
                ]
            ]
        },
        {
            "name": "azure-graphrbac",
            "specs": [
                [
                    "==",
                    "0.60.0"
                ]
            ]
        },
        {
            "name": "azure-identity",
            "specs": [
                [
                    "==",
                    "1.12.0"
                ]
            ]
        },
        {
            "name": "azure-keyvault",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "azure-keyvault-administration",
            "specs": [
                [
                    "==",
                    "4.0.0b3"
                ]
            ]
        },
        {
            "name": "azure-keyvault-keys",
            "specs": [
                [
                    "==",
                    "4.8.0b2"
                ]
            ]
        },
        {
            "name": "azure-loganalytics",
            "specs": [
                [
                    "==",
                    "0.1.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-advisor",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-apimanagement",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-appconfiguration",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-applicationinsights",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-authorization",
            "specs": [
                [
                    "==",
                    "0.61.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-batch",
            "specs": [
                [
                    "==",
                    "17.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-batchai",
            "specs": [
                [
                    "==",
                    "7.0.0b1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-billing",
            "specs": [
                [
                    "==",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-botservice",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-cdn",
            "specs": [
                [
                    "==",
                    "12.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-cognitiveservices",
            "specs": [
                [
                    "==",
                    "13.3.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-compute",
            "specs": [
                [
                    "==",
                    "29.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-consumption",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-containerinstance",
            "specs": [
                [
                    "==",
                    "9.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-containerregistry",
            "specs": [
                [
                    "==",
                    "10.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-containerservice",
            "specs": [
                [
                    "==",
                    "21.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-core",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "azure-mgmt-cosmosdb",
            "specs": [
                [
                    "==",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-databoxedge",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-datalake-analytics",
            "specs": [
                [
                    "==",
                    "0.2.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-datalake-nspkg",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-datalake-store",
            "specs": [
                [
                    "==",
                    "0.5.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-datamigration",
            "specs": [
                [
                    "==",
                    "10.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-deploymentmanager",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-devtestlabs",
            "specs": [
                [
                    "==",
                    "4.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-dns",
            "specs": [
                [
                    "==",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-eventgrid",
            "specs": [
                [
                    "==",
                    "10.2.0b2"
                ]
            ]
        },
        {
            "name": "azure-mgmt-eventhub",
            "specs": [
                [
                    "==",
                    "10.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-extendedlocation",
            "specs": [
                [
                    "==",
                    "1.0.0b2"
                ]
            ]
        },
        {
            "name": "azure-mgmt-hdinsight",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-imagebuilder",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-iotcentral",
            "specs": [
                [
                    "==",
                    "10.0.0b2"
                ]
            ]
        },
        {
            "name": "azure-mgmt-iothub",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-iothubprovisioningservices",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-keyvault",
            "specs": [
                [
                    "==",
                    "10.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-kusto",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-loganalytics",
            "specs": [
                [
                    "==",
                    "13.0.0b4"
                ]
            ]
        },
        {
            "name": "azure-mgmt-managedservices",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-managementgroups",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-maps",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-marketplaceordering",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-media",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-monitor",
            "specs": [
                [
                    "==",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-msi",
            "specs": [
                [
                    "==",
                    "6.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-netapp",
            "specs": [
                [
                    "==",
                    "9.0.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-network",
            "specs": [
                [
                    "==",
                    "21.0.1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-nspkg",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "azure-mgmt-policyinsights",
            "specs": [
                [
                    "==",
                    "1.1.0b4"
                ]
            ]
        },
        {
            "name": "azure-mgmt-privatedns",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-rdbms",
            "specs": [
                [
                    "==",
                    "10.2.0b6"
                ]
            ]
        },
        {
            "name": "azure-mgmt-recoveryservices",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-recoveryservicesbackup",
            "specs": [
                [
                    "==",
                    "5.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-redhatopenshift",
            "specs": [
                [
                    "==",
                    "1.2.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-redis",
            "specs": [
                [
                    "==",
                    "14.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-relay",
            "specs": [
                [
                    "==",
                    "0.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-resource",
            "specs": [
                [
                    "==",
                    "21.1.0b1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-search",
            "specs": [
                [
                    "==",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-security",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-servicebus",
            "specs": [
                [
                    "==",
                    "8.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-servicefabric",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-servicefabricmanagedclusters",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-servicelinker",
            "specs": [
                [
                    "==",
                    "1.2.0b1"
                ]
            ]
        },
        {
            "name": "azure-mgmt-signalr",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-sql",
            "specs": [
                [
                    "==",
                    "4.0.0b7"
                ]
            ]
        },
        {
            "name": "azure-mgmt-sqlvirtualmachine",
            "specs": [
                [
                    "==",
                    "1.0.0b4"
                ]
            ]
        },
        {
            "name": "azure-mgmt-storage",
            "specs": [
                [
                    "==",
                    "21.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-synapse",
            "specs": [
                [
                    "==",
                    "2.1.0b5"
                ]
            ]
        },
        {
            "name": "azure-mgmt-trafficmanager",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-mgmt-web",
            "specs": [
                [
                    "==",
                    "7.0.0"
                ]
            ]
        },
        {
            "name": "azure-multiapi-storage",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "azure-nspkg",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "azure-storage-common",
            "specs": [
                [
                    "==",
                    "1.4.2"
                ]
            ]
        },
        {
            "name": "azure-synapse-accesscontrol",
            "specs": [
                [
                    "==",
                    "0.5.0"
                ]
            ]
        },
        {
            "name": "azure-synapse-artifacts",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "azure-synapse-managedprivateendpoints",
            "specs": [
                [
                    "==",
                    "0.3.0"
                ]
            ]
        },
        {
            "name": "azure-synapse-spark",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "azureml-automl-core",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-core",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-dataprep",
            "specs": [
                [
                    "==",
                    "4.9.1"
                ]
            ]
        },
        {
            "name": "azureml-dataprep-native",
            "specs": [
                [
                    "==",
                    "38.0.0"
                ]
            ]
        },
        {
            "name": "azureml-dataprep-rslex",
            "specs": [
                [
                    "==",
                    "2.16.2"
                ]
            ]
        },
        {
            "name": "azureml-dataset-runtime",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-pipeline",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-pipeline-core",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-pipeline-steps",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-telemetry",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-train-automl-client",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-train-core",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "azureml-train-restclients-hyperdrive",
            "specs": [
                [
                    "==",
                    "1.49.0"
                ]
            ]
        },
        {
            "name": "backcall",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "backports.tempfile",
            "specs": [
                [
                    "==",
                    "1.0"
                ]
            ]
        },
        {
            "name": "backports.weakref",
            "specs": [
                [
                    "==",
                    "1.0.post1"
                ]
            ]
        },
        {
            "name": "bcrypt",
            "specs": [
                [
                    "==",
                    "3.2.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.10.0"
                ]
            ]
        },
        {
            "name": "beniget",
            "specs": [
                [
                    "==",
                    "0.4.1"
                ]
            ]
        },
        {
            "name": "blinker",
            "specs": [
                [
                    "==",
                    "1.4"
                ]
            ]
        },
        {
            "name": "Brlapi",
            "specs": [
                [
                    "==",
                    "0.8.3"
                ]
            ]
        },
        {
            "name": "Brotli",
            "specs": [
                [
                    "==",
                    "1.0.9"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2020.6.20"
                ]
            ]
        },
        {
            "name": "cffi",
            "specs": [
                [
                    "==",
                    "1.15.1"
                ]
            ]
        },
        {
            "name": "chardet",
            "specs": [
                [
                    "==",
                    "3.0.4"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.0.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.0.3"
                ]
            ]
        },
        {
            "name": "cloudpickle",
            "specs": [
                [
                    "==",
                    "2.2.1"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.4"
                ]
            ]
        },
        {
            "name": "command-not-found",
            "specs": [
                [
                    "==",
                    "0.3"
                ]
            ]
        },
        {
            "name": "contextlib2",
            "specs": [
                [
                    "==",
                    "21.6.0"
                ]
            ]
        },
        {
            "name": "cramjam",
            "specs": [
                [
                    "==",
                    "2.6.2"
                ]
            ]
        },
        {
            "name": "cryptography",
            "specs": [
                [
                    "==",
                    "39.0.1"
                ]
            ]
        },
        {
            "name": "css-parser",
            "specs": [
                [
                    "==",
                    "1.0.7"
                ]
            ]
        },
        {
            "name": "cssselect",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "cssutils",
            "specs": [
                [
                    "==",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "cupshelpers",
            "specs": [
                [
                    "==",
                    "1.0"
                ]
            ]
        },
        {
            "name": "cycler",
            "specs": [
                [
                    "==",
                    "0.11.0"
                ]
            ]
        },
        {
            "name": "dbus-python",
            "specs": [
                [
                    "==",
                    "1.2.18"
                ]
            ]
        },
        {
            "name": "decorator",
            "specs": [
                [
                    "==",
                    "4.4.2"
                ]
            ]
        },
        {
            "name": "defer",
            "specs": [
                [
                    "==",
                    "1.0.6"
                ]
            ]
        },
        {
            "name": "Deprecated",
            "specs": [
                [
                    "==",
                    "1.2.13"
                ]
            ]
        },
        {
            "name": "distro",
            "specs": [
                [
                    "==",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "distro-info",
            "specs": [
                [
                    "===",
                    "1.1build1"
                ]
            ]
        },
        {
            "name": "dnspython",
            "specs": [
                [
                    "==",
                    "2.1.0"
                ]
            ]
        },
        {
            "name": "docker",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "dotnetcore2",
            "specs": [
                [
                    "==",
                    "3.1.23"
                ]
            ]
        },
        {
            "name": "duplicity",
            "specs": [
                [
                    "==",
                    "0.8.21"
                ]
            ]
        },
        {
            "name": "fabric",
            "specs": [
                [
                    "==",
                    "2.7.1"
                ]
            ]
        },
        {
            "name": "fasteners",
            "specs": [
                [
                    "==",
                    "0.14.1"
                ]
            ]
        },
        {
            "name": "fastparquet",
            "specs": [
                [
                    "==",
                    "2023.2.0"
                ]
            ]
        },
        {
            "name": "feedparser",
            "specs": [
                [
                    "==",
                    "6.0.8"
                ]
            ]
        },
        {
            "name": "fonttools",
            "specs": [
                [
                    "==",
                    "4.29.1"
                ]
            ]
        },
        {
            "name": "fs",
            "specs": [
                [
                    "==",
                    "2.4.12"
                ]
            ]
        },
        {
            "name": "fsspec",
            "specs": [
                [
                    "==",
                    "2023.1.0"
                ]
            ]
        },
        {
            "name": "future",
            "specs": [
                [
                    "==",
                    "0.18.2"
                ]
            ]
        },
        {
            "name": "gast",
            "specs": [
                [
                    "==",
                    "0.5.2"
                ]
            ]
        },
        {
            "name": "html2text",
            "specs": [
                [
                    "==",
                    "2020.1.16"
                ]
            ]
        },
        {
            "name": "html5-parser",
            "specs": [
                [
                    "==",
                    "0.4.10"
                ]
            ]
        },
        {
            "name": "html5lib",
            "specs": [
                [
                    "==",
                    "1.1"
                ]
            ]
        },
        {
            "name": "httplib2",
            "specs": [
                [
                    "==",
                    "0.20.2"
                ]
            ]
        },
        {
            "name": "humanfriendly",
            "specs": [
                [
                    "==",
                    "10.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.3"
                ]
            ]
        },
        {
            "name": "ifaddr",
            "specs": [
                [
                    "==",
                    "0.1.7"
                ]
            ]
        },
        {
            "name": "importlib-metadata",
            "specs": [
                [
                    "==",
                    "4.6.4"
                ]
            ]
        },
        {
            "name": "invoke",
            "specs": [
                [
                    "==",
                    "1.7.3"
                ]
            ]
        },
        {
            "name": "ipython",
            "specs": [
                [
                    "==",
                    "7.31.1"
                ]
            ]
        },
        {
            "name": "isodate",
            "specs": [
                [
                    "==",
                    "0.6.1"
                ]
            ]
        },
        {
            "name": "javaproperties",
            "specs": [
                [
                    "==",
                    "0.5.2"
                ]
            ]
        },
        {
            "name": "jedi",
            "specs": [
                [
                    "==",
                    "0.18.0"
                ]
            ]
        },
        {
            "name": "jeepney",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "Jinja2",
            "specs": [
                [
                    "==",
                    "3.1.2"
                ]
            ]
        },
        {
            "name": "jmespath",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "jsondiff",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "jsonpickle",
            "specs": [
                [
                    "==",
                    "2.2.0"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.17.3"
                ]
            ]
        },
        {
            "name": "keyring",
            "specs": [
                [
                    "==",
                    "23.5.0"
                ]
            ]
        },
        {
            "name": "kiwisolver",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "knack",
            "specs": [
                [
                    "==",
                    "0.10.1"
                ]
            ]
        },
        {
            "name": "language-selector",
            "specs": [
                [
                    "==",
                    "0.1"
                ]
            ]
        },
        {
            "name": "launchpadlib",
            "specs": [
                [
                    "==",
                    "1.10.16"
                ]
            ]
        },
        {
            "name": "lazr.restfulclient",
            "specs": [
                [
                    "==",
                    "0.14.4"
                ]
            ]
        },
        {
            "name": "lazr.uri",
            "specs": [
                [
                    "==",
                    "1.0.6"
                ]
            ]
        },
        {
            "name": "lockfile",
            "specs": [
                [
                    "==",
                    "0.12.2"
                ]
            ]
        },
        {
            "name": "louis",
            "specs": [
                [
                    "==",
                    "3.20.0"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    "==",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "lz4",
            "specs": [
                [
                    "==",
                    "3.1.3+dfsg"
                ]
            ]
        },
        {
            "name": "macaroonbakery",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "Mako",
            "specs": [
                [
                    "==",
                    "1.1.3"
                ]
            ]
        },
        {
            "name": "Markdown",
            "specs": [
                [
                    "==",
                    "3.3.6"
                ]
            ]
        },
        {
            "name": "MarkupSafe",
            "specs": [
                [
                    "==",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.5.1"
                ]
            ]
        },
        {
            "name": "matplotlib-inline",
            "specs": [
                [
                    "==",
                    "0.1.3"
                ]
            ]
        },
        {
            "name": "mechanize",
            "specs": [
                [
                    "==",
                    "0.4.7"
                ]
            ]
        },
        {
            "name": "monotonic",
            "specs": [
                [
                    "==",
                    "1.6"
                ]
            ]
        },
        {
            "name": "more-itertools",
            "specs": [
                [
                    "==",
                    "8.10.0"
                ]
            ]
        },
        {
            "name": "mpmath",
            "specs": [
                [
                    "==",
                    "0.0.0"
                ]
            ]
        },
        {
            "name": "msal",
            "specs": [
                [
                    "==",
                    "1.20.0"
                ]
            ]
        },
        {
            "name": "msal-extensions",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "msgpack",
            "specs": [
                [
                    "==",
                    "1.0.3"
                ]
            ]
        },
        {
            "name": "msrest",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "msrestazure",
            "specs": [
                [
                    "==",
                    "0.6.4"
                ]
            ]
        },
        {
            "name": "ndg-httpsclient",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "netifaces",
            "specs": [
                [
                    "==",
                    "0.11.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.21.5"
                ]
            ]
        },
        {
            "name": "oauthlib",
            "specs": [
                [
                    "==",
                    "3.2.0"
                ]
            ]
        },
        {
            "name": "olefile",
            "specs": [
                [
                    "==",
                    "0.46"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "21.3"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "1.5.3"
                ]
            ]
        },
        {
            "name": "paramiko",
            "specs": [
                [
                    "==",
                    "2.9.3"
                ]
            ]
        },
        {
            "name": "parso",
            "specs": [
                [
                    "==",
                    "0.8.1"
                ]
            ]
        },
        {
            "name": "pathlib2",
            "specs": [
                [
                    "==",
                    "2.3.7.post1"
                ]
            ]
        },
        {
            "name": "pathspec",
            "specs": [
                [
                    "==",
                    "0.11.0"
                ]
            ]
        },
        {
            "name": "pexpect",
            "specs": [
                [
                    "==",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "pickleshare",
            "specs": [
                [
                    "==",
                    "0.7.5"
                ]
            ]
        },
        {
            "name": "Pillow",
            "specs": [
                [
                    "==",
                    "9.0.1"
                ]
            ]
        },
        {
            "name": "pkginfo",
            "specs": [
                [
                    "==",
                    "1.9.6"
                ]
            ]
        },
        {
            "name": "ply",
            "specs": [
                [
                    "==",
                    "3.11"
                ]
            ]
        },
        {
            "name": "portalocker",
            "specs": [
                [
                    "==",
                    "2.7.0"
                ]
            ]
        },
        {
            "name": "prompt-toolkit",
            "specs": [
                [
                    "==",
                    "3.0.28"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "3.12.4"
                ]
            ]
        },
        {
            "name": "psutil",
            "specs": [
                [
                    "==",
                    "5.9.4"
                ]
            ]
        },
        {
            "name": "ptyprocess",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "py7zr",
            "specs": [
                [
                    "==",
                    "0.11.3+dfsg"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "pyasn1",
            "specs": [
                [
                    "==",
                    "0.4.8"
                ]
            ]
        },
        {
            "name": "pycairo",
            "specs": [
                [
                    "==",
                    "1.20.1"
                ]
            ]
        },
        {
            "name": "pychm",
            "specs": [
                [
                    "==",
                    "0.8.6"
                ]
            ]
        },
        {
            "name": "pycparser",
            "specs": [
                [
                    "==",
                    "2.21"
                ]
            ]
        },
        {
            "name": "pycryptodomex",
            "specs": [
                [
                    "==",
                    "3.11.0"
                ]
            ]
        },
        {
            "name": "pycups",
            "specs": [
                [
                    "==",
                    "2.0.1"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "1.10.5"
                ]
            ]
        },
        {
            "name": "PyGithub",
            "specs": [
                [
                    "==",
                    "1.58.0"
                ]
            ]
        },
        {
            "name": "Pygments",
            "specs": [
                [
                    "==",
                    "2.11.2"
                ]
            ]
        },
        {
            "name": "PyGObject",
            "specs": [
                [
                    "==",
                    "3.42.1"
                ]
            ]
        },
        {
            "name": "PyJWT",
            "specs": [
                [
                    "==",
                    "2.6.0"
                ]
            ]
        },
        {
            "name": "pymacaroons",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "PyMySQL",
            "specs": [
                [
                    "==",
                    "1.0.2"
                ]
            ]
        },
        {
            "name": "PyNaCl",
            "specs": [
                [
                    "==",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "pyOpenSSL",
            "specs": [
                [
                    "==",
                    "23.0.0"
                ]
            ]
        },
        {
            "name": "pyparsing",
            "specs": [
                [
                    "==",
                    "2.4.7"
                ]
            ]
        },
        {
            "name": "PyQt5",
            "specs": [
                [
                    "==",
                    "5.15.6"
                ]
            ]
        },
        {
            "name": "PyQt5-sip",
            "specs": [
                [
                    "==",
                    "12.9.1"
                ]
            ]
        },
        {
            "name": "PyQtWebEngine",
            "specs": [
                [
                    "==",
                    "5.15.5"
                ]
            ]
        },
        {
            "name": "pyRFC3339",
            "specs": [
                [
                    "==",
                    "1.1"
                ]
            ]
        },
        {
            "name": "pyrsistent",
            "specs": [
                [
                    "==",
                    "0.19.3"
                ]
            ]
        },
        {
            "name": "PySocks",
            "specs": [
                [
                    "==",
                    "1.7.1"
                ]
            ]
        },
        {
            "name": "python-apt",
            "specs": [
                [
                    "==",
                    "2.4.0"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.1"
                ]
            ]
        },
        {
            "name": "python-debian",
            "specs": [
                [
                    "===",
                    "0.1.43ubuntu1"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    "==",
                    "0.21.1"
                ]
            ]
        },
        {
            "name": "pythran",
            "specs": [
                [
                    "==",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2022.1"
                ]
            ]
        },
        {
            "name": "pyxdg",
            "specs": [
                [
                    "==",
                    "0.27"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "5.4.1"
                ]
            ]
        },
        {
            "name": "regex",
            "specs": [
                [
                    "==",
                    "2021.11.10"
                ]
            ]
        },
        {
            "name": "reportlab",
            "specs": [
                [
                    "==",
                    "3.6.8"
                ]
            ]
        },
        {
            "name": "repoze.lru",
            "specs": [
                [
                    "==",
                    "0.7"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.2"
                ]
            ]
        },
        {
            "name": "requests-oauthlib",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "0.9.1"
                ]
            ]
        },
        {
            "name": "Routes",
            "specs": [
                [
                    "==",
                    "2.5.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.8.0"
                ]
            ]
        },
        {
            "name": "scp",
            "specs": [
                [
                    "==",
                    "0.13.6"
                ]
            ]
        },
        {
            "name": "SecretStorage",
            "specs": [
                [
                    "==",
                    "3.3.1"
                ]
            ]
        },
        {
            "name": "semver",
            "specs": [
                [
                    "==",
                    "2.13.0"
                ]
            ]
        },
        {
            "name": "sgmllib3k",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "soupsieve",
            "specs": [
                [
                    "==",
                    "2.3.1"
                ]
            ]
        },
        {
            "name": "sshtunnel",
            "specs": [
                [
                    "==",
                    "0.1.5"
                ]
            ]
        },
        {
            "name": "sympy",
            "specs": [
                [
                    "==",
                    "1.9"
                ]
            ]
        },
        {
            "name": "systemd-python",
            "specs": [
                [
                    "==",
                    "234"
                ]
            ]
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "texttable",
            "specs": [
                [
                    "==",
                    "1.6.4"
                ]
            ]
        },
        {
            "name": "traitlets",
            "specs": [
                [
                    "==",
                    "5.1.1"
                ]
            ]
        },
        {
            "name": "typing_extensions",
            "specs": [
                [
                    "==",
                    "4.5.0"
                ]
            ]
        },
        {
            "name": "ubuntu-advantage-tools",
            "specs": [
                [
                    "==",
                    "8001"
                ]
            ]
        },
        {
            "name": "ubuntu-drivers-common",
            "specs": [
                [
                    "==",
                    "0.0.0"
                ]
            ]
        },
        {
            "name": "ufoLib2",
            "specs": [
                [
                    "==",
                    "0.13.1"
                ]
            ]
        },
        {
            "name": "ufw",
            "specs": [
                [
                    "==",
                    "0.36.1"
                ]
            ]
        },
        {
            "name": "unattended-upgrades",
            "specs": [
                [
                    "==",
                    "0.1"
                ]
            ]
        },
        {
            "name": "unicodedata2",
            "specs": [
                [
                    "==",
                    "14.0.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.5"
                ]
            ]
        },
        {
            "name": "usb-creator",
            "specs": [
                [
                    "==",
                    "0.3.7"
                ]
            ]
        },
        {
            "name": "wadllib",
            "specs": [
                [
                    "==",
                    "1.3.6"
                ]
            ]
        },
        {
            "name": "wcwidth",
            "specs": [
                [
                    "==",
                    "0.2.5"
                ]
            ]
        },
        {
            "name": "webencodings",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "WebOb",
            "specs": [
                [
                    "==",
                    "1.8.6"
                ]
            ]
        },
        {
            "name": "websocket-client",
            "specs": [
                [
                    "==",
                    "1.3.3"
                ]
            ]
        },
        {
            "name": "wrapt",
            "specs": [
                [
                    "==",
                    "1.14.1"
                ]
            ]
        },
        {
            "name": "xdg",
            "specs": [
                [
                    "==",
                    "5"
                ]
            ]
        },
        {
            "name": "xkit",
            "specs": [
                [
                    "==",
                    "0.0.0"
                ]
            ]
        },
        {
            "name": "xmltodict",
            "specs": [
                [
                    "==",
                    "0.13.0"
                ]
            ]
        },
        {
            "name": "zeroconf",
            "specs": [
                [
                    "==",
                    "0.38.3"
                ]
            ]
        },
        {
            "name": "zipp",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        }
    ],
    "lcname": "amlctor"
}
        
Elapsed time: 4.12492s