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

Tools

Syntax Check

Introduction

Check the syntax of a code.

Request

Check the syntax of a code. The /ai/tools/syntax-check API accepts requests in the following format:

BasicFilesRequest Model - Request to process files.
language string Enum
required
example: Py

Programming language. Options : ['C#', 'Py']
files File Array
required
example: [{"name": "file.py", "content": "fileContent"}]

Files to process.
Example
{
  "language": "Py",
  "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/syntax-check API provides a response in the following format:

200 Success

SyntaxCheckResponse Model - Response to a syntax check request.
state string
example: End

State of the syntax check.
version string
example: 2.0

Version of the response.
payload string Array
Code completion suggestions.
payloadType string
example: StringArray

Type of the payload, e.g. StringArray.
Example
{
  "state": "End",
  "version": 2.0,
  "payload": [
    "string"
  ],
  "payloadType": "StringArray"
  ]
}

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 syntax checking of 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())

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


### Syntax Check
# Send a POST request to the /ai/tools/syntax-check endpoint to check code syntax if appropriate
response = post(f'{BASE_URL}/ai/tools/syntax-check', headers=get_headers(), json={
    "language": "Python",  # Programming language of the code
    "files": [  # List of files to check
        {
            "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 syntax check results
if result['success']:
    print("Syntax Check 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: