book
Checkout our new book! Hands on AI Trading with Python, QuantConnect, and AWS Learn More arrow

Tools

PEP8 Conversion

Introduction

Ensure a Python code follows PEP8 style.

Request

Ensure a Python code follows PEP8 style. The /ai/tools/pep8-convert API accepts requests in the following format:

PEP8ConvertRequest Model - Request to convert Python code to PEP8 style.
files File Array
required
example: [{"name": "file.py", "content": "fileContent"}]

Files present in the project in which the algorithm is.
Example
{
  "files": "[{"name": "file.py", "content": "fileContent"}]"
  ]
}
File Model - File for a AI.
name string
Name of a file.
content string
Contents of the file.
Example
{
  "name": "string",
  "content": "string"
}

Responses

The /ai/tools/pep8-convert API provides a response in the following format:

200 Success

PEP8ConvertResponse Model - Response to a PEP8 conversion request.
state string
example: End

State of PEP8 conversion.
version string
example: 2.0

Version of the response.
payload dict
example: {'utils.py': 'def add(a,b):\n return a+b\n'}

PEP8 converted code.
payloadType string
example: StringDict

Type of the payload, e.g. StringDict.
Example
{
  "state": "End",
  "version": 2.0,
  "payload": {
    "utils.py": "def add(a,b):\n    return a+b\n"
},
  "payloadType": "StringDict"
}

401 Authentication Error

UnauthorizedError Model - Unauthorized response from the API. Key is missing, invalid, or timestamp is too old for hash.
www_authenticate string
Header

Examples

The following example demonstates PEP8 conversion of python codes through the cloud API.

from base64 import b64encode
from hashlib import sha256
from time import time
from requests import get, post
BASE_URL = 'https://www.quantconnect.com/api/v2/'

# You need to replace these with your actual credentials.
# You can request your credentials at https://www.quantconnect.com/settings/
# You can find our organization ID at https://www.quantconnect.com/organization/ 
USER_ID = 0
API_TOKEN = '____'
ORGANIZATION_ID = '____'

def get_headers():
    # Get timestamp
    timestamp = f'{int(time())}'
    time_stamped_token = f'{API_TOKEN}:{timestamp}'.encode('utf-8')

    # Get hased API token
    hashed_token = sha256(time_stamped_token).hexdigest()
    authentication = f'{USER_ID}:{hashed_token}'.encode('utf-8')
    authentication = b64encode(authentication).decode('ascii')

    # Create headers dictionary.
    return {
        'Authorization': f'Basic {authentication}',
        'Timestamp': timestamp
    }

# Authenticate to verify credentials
response = post(f'{BASE_URL}/authenticate', headers = get_headers())
print(response.json())

# --------------------


### PEP8 Conversion
# Send a POST request to the /ai/tools/pep8-convert endpoint to convert code to PEP8 syntax
response = post(f'{BASE_URL}/ai/tools/pep8-convert', headers=get_headers(), json={
    "files": [  # List of files to convert
        {
            "name": "utils.py",  # Name of the file
            "content": '''
# region imports
from AlgorithmImports import *
# endregion

class Project(QCAlgorithm):

    def Initialize(self):
        self.AddEquity("SPY", Resolution.Minute)
'''  # Content of the file (Python code)
        }
    ]
})
# Parse the JSON response into python managable dict
result = response.json()
# Check if the request was successful and print the PEP8 conversion results
if result['success']:
    print("PEP8 Conversion Results:")
    print(result)

You can also see our Videos. You can also get in touch with us via Discord.

Did you find this page helpful?

Contribute to the documentation: