AI Tools
Syntax Check
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 Programming language. Options : ['C#', 'Py'] |
| files | File Array 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 State of the syntax check. |
| version | string Version of the response. |
| payload | string Array Code completion suggestions. |
| payloadType | string 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)